Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 2) + демо

Сегодня расскажу о том, как подружил бота с ChatGPT. Получилось быстро и почти без проблем, но есть нюанс, который видно невооружённым взглядом :)

Вчерашний шок-контент от ChatGPT :)
Вчерашний шок-контент от ChatGPT :)

В первой части удалось сделать простого бота с менюшкой и оживить его, не написав ни единой строчки кода своими руками.

Всё придумал ChatGPT, а я только копипастил и следовал инструкциям.

Подключение к ChatGPT

Напомню ключевую механику Фактометра: запрос обрабатывается ИИ-моделью, и пользователь получает результат анализа.

Для начала нужно научить бота общаться с ChatGPT технически: отправлять туда исходящие запросы и принимать входящие.

Обмен данными происходит по API, с чем я и начал разбираться.

Один короткий промпт в ChatGPT, и появилась конкретика:

  • зарегистрироваться на platform.openai.com — новый аккаунт, а не учетка от chatgpt.com
  • привязать карту — по понятным причинам РФ-карта не подходит, но задача решаемая, обойдусь без рекламы
  • пополнить баланс — минимум $5
API-ключ можно создать только после этих манипуляций

Потому что за каждый входящий и исходящий API-запрос OpenAI взимает плату. Цена зависит от крутости модели (самая новая — 5.1), типа запроса (текст, картинка, аудио, видео) и его размера в токенах.

Там же, в личном кабинете OpenAI Platform, в разделе Limits я настроил минимальный лимит расходов, чтобы не оказаться в долгах перед Сэмом Альтманом, если что-то пойдёт не так.

Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 2) + демо

Ага, попался! Статьи клепаешь, а реально ничего не делаешь — сам же показал скрин, где ни копейки не потратил, дурачок!

Вынужден расстроить: тестирую бота на дешёвой модельке gpt-4.1-mini, и к моменту публикации этой статьи на тесты ушло примерно 2500 токенов, что в деньгах означает меньше $0.01.

Один миллион токенов для gpt-4.1-mini стоит максимум $1.6
Один миллион токенов для gpt-4.1-mini стоит максимум $1.6

В общем, всё настроил, создал API-ключ и сохранил его в переменную окружения на сервере — в DO App Platfotm это делается буквально в пару кликов.

Там же указал модель, к которой буду обращаться по API:

Конечно, ключики и переменные зашифрованы
Конечно, ключики и переменные зашифрованы

Повторюсь, для тестов используется дешёвая gpt-4.1-mini — опять же, чтобы не жечь деньги впустую.

Плюс, сейчас мне важно не качество ответов, а чтобы ответы хотя бы начали приходить в бота.

Пора писать код

Точнее, попросить об этом моего ИИ-напарника.

Огромный плюс проектов: ChatGPT «помнит» историю общения.

Благодаря контексту, с первой же попытки получился похожий на правду код:

from openai import OpenAI from .config import settings client = OpenAI(api_key=settings.openai_api_key) async def ask_model(prompt: str) -> str: response = client.responses.create( model=settings.openai_model, input=prompt, max_output_tokens=256, ) text = response.output[0].content[0].text.value return text

Мне даже примерно понятно, что этот код должен делать.

Не зря, получается, говнокодил на питоне в своё время! :)

Далее:

  • Ctrl+C (точнее, клик по виджету с кодом)
  • Ctrl+V
  • коммит и пуш в гитхаб
  • автоматическая сборка на сервере

Иии... не получилось :)

Бот поднялся, но при отправке запроса ничего нового, кроме ошибок в логах, не появилось.

Такое уже проходили: копирую кусок лога с ошибками в ChatGPT, получаю рекомендацию по исправлению, пушу обновления на гитхаб, проект автоматом пересобирается.

И так несколько раз.

В процессе отладки ChatGPT по традиции заявил, что написанный им код и не должен был работать (ha-ha, classic).

А ещё ChatGPT сам предложил добавить к ответу кнопку для генерации отчёта в PDF. Очевидно, вспомнил из истории. Самой генерации ещё нет (это следующий этап), но кнопка пригодится.

Наконец, после очередной сборки бот раздуплился: начал отправлять запросы к ИИ-модели и возвращать ответ пользователю.

Работает!

Кнопка для получения PDF-отчета тоже появилась:

Сегодняшний шок-контент от ChatGPT :)
Сегодняшний шок-контент от ChatGPT :)

Хорошая новость: бот работает и дёргает ИИ по API.

Плохая новость: сегодня 24 ноября 2025, а у ХК «Сибирь» формально нет главного тренера, а есть только и.о. Ярослав Люзенков.

Всё пропало: этот ваш ИИ врёт в простейших ситуациях и порет чушь!

Без паники.

Почему так происходит

Короткий ответ: ИИ-модели обучают на исторических данных и по умолчанию они «не в курсе» происходящего за рамками «окна обучения».

Например, отсечка знаний у GPT-4.1 (и mini) — 1 июня 2024.

А у самой новой модели GPT-5.1 — 30 сентября 2024.

Если интересно, всё это можно узнать здесь.

Вывсёврёти! Я общаюсь с ChatGPT, он ходит в интернет и выдаёт свежую инфу!
Возмущённый читатель

Да, это так, но есть нюанс.

Чат-бот под названием ChatGPT, с которым мы привыкли «общаться», и модель GPT, доступная по API, работают по-разному:

  • у чат-бота уже есть инструкция по поиску в интернете
  • а модель использует только данные, на которых обучена
Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 2) + демо

Выяснилось, что для поиска в интернете модели нужно отдельно сказать, чтобы она поискала в интернете.

Преступление раскрыто, преступления не было.

То есть, «просто запрос» надо превратить в «запрос с использованием Web Search». Пока я это выяснял, ChatGPT опять нёс всякую дичь и придумывал несуществующие сервисы OpenAI, но закончилось всё хорошо:

Ещё ChatGPT предложил новый код с Web Search, но я его не проверял
Ещё ChatGPT предложил новый код с Web Search, но я его не проверял

Решил, что пока не буду тратить время на прикручивание Web Search.

Сделаю позже, когда дойдёт до реального анализа. Вероятно, там придётся прилично повозиться, а я не хочу тормозить основной процесс.

Главное, получилось подружить бота с OpenAI по API.

Конец второй серии

Фактометр обрастает мясом, но по-прежнему доступен только мне, потому что:

  • тестирую сразу на настоящем боте
  • не нужна дополнительная нагрузка
  • не нужны дополнительные расходы (каждый запрос платный)

Но для подтверждения, что я не просто выдумываю, а реально всё это делаю, записал скринкаст:

Если что, ответ обрезан из-за ограничения в коде, но работает это как-то криво :)

Переходите в бота и стартуйте: первые пользователи получат бонус при публичном релизе бота.

Вот прямая ссылка, никаких рефералок и скама:

Бот может тупить, потому что крутится на самом дешёвом сервере.

Напишите в комментариях, долго ли пришлось ждать стартового сообщения.

Если совсем беда, перенесу на более мощную машину.

Текущий прогресс

Уже готово:

  • Подготовка к подготовке
  • Нормальная подготовка
  • Бот, который ничего не умеет
  • Бот умеет общаться с ChatGPT по API

Следующий этап:

Научить бота генерировать PDF-отчёт

По моей задумке, непосредственно в боте пользователь получает краткий анализ запроса, а подробный отчёт доступен в PDF-версии — никакого подвоха, это просто удобней, чем читать простыню текста в телеге.

Опыт взаимодействия с ChatGPT вселяет оптимизм. Думаю, получится, но это не точно.

В телеге тоже подписывайтесь, мне будет радостно.

60
Начать дискуссию