Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 2) + демо
Сегодня расскажу о том, как подружил бота с ChatGPT. Получилось быстро и почти без проблем, но есть нюанс, который видно невооружённым взглядом :)
В первой части удалось сделать простого бота с менюшкой и оживить его, не написав ни единой строчки кода своими руками.
Всё придумал ChatGPT, а я только копипастил и следовал инструкциям.
Подключение к ChatGPT
Напомню ключевую механику Фактометра: запрос обрабатывается ИИ-моделью, и пользователь получает результат анализа.
Для начала нужно научить бота общаться с ChatGPT технически: отправлять туда исходящие запросы и принимать входящие.
Обмен данными происходит по API, с чем я и начал разбираться.
Один короткий промпт в ChatGPT, и появилась конкретика:
- зарегистрироваться на platform.openai.com — новый аккаунт, а не учетка от chatgpt.com
- привязать карту — по понятным причинам РФ-карта не подходит, но задача решаемая, обойдусь без рекламы
- пополнить баланс — минимум $5
API-ключ можно создать только после этих манипуляций
Потому что за каждый входящий и исходящий API-запрос OpenAI взимает плату. Цена зависит от крутости модели (самая новая — 5.1), типа запроса (текст, картинка, аудио, видео) и его размера в токенах.
Там же, в личном кабинете OpenAI Platform, в разделе Limits я настроил минимальный лимит расходов, чтобы не оказаться в долгах перед Сэмом Альтманом, если что-то пойдёт не так.
Ага, попался! Статьи клепаешь, а реально ничего не делаешь — сам же показал скрин, где ни копейки не потратил, дурачок!
Вынужден расстроить: тестирую бота на дешёвой модельке gpt-4.1-mini, и к моменту публикации этой статьи на тесты ушло примерно 2500 токенов, что в деньгах означает меньше $0.01.
В общем, всё настроил, создал API-ключ и сохранил его в переменную окружения на сервере — в DO App Platfotm это делается буквально в пару кликов.
Там же указал модель, к которой буду обращаться по API:
Повторюсь, для тестов используется дешёвая gpt-4.1-mini — опять же, чтобы не жечь деньги впустую.
Плюс, сейчас мне важно не качество ответов, а чтобы ответы хотя бы начали приходить в бота.
Пора писать код
Точнее, попросить об этом моего ИИ-напарника.
Огромный плюс проектов: ChatGPT «помнит» историю общения.
Благодаря контексту, с первой же попытки получился похожий на правду код:
Мне даже примерно понятно, что этот код должен делать.
Не зря, получается, говнокодил на питоне в своё время! :)
Далее:
- Ctrl+C (точнее, клик по виджету с кодом)
- Ctrl+V
- коммит и пуш в гитхаб
- автоматическая сборка на сервере
Иии... не получилось :)
Бот поднялся, но при отправке запроса ничего нового, кроме ошибок в логах, не появилось.
Такое уже проходили: копирую кусок лога с ошибками в ChatGPT, получаю рекомендацию по исправлению, пушу обновления на гитхаб, проект автоматом пересобирается.
И так несколько раз.
В процессе отладки ChatGPT по традиции заявил, что написанный им код и не должен был работать (ha-ha, classic).
А ещё ChatGPT сам предложил добавить к ответу кнопку для генерации отчёта в PDF. Очевидно, вспомнил из истории. Самой генерации ещё нет (это следующий этап), но кнопка пригодится.
Наконец, после очередной сборки бот раздуплился: начал отправлять запросы к ИИ-модели и возвращать ответ пользователю.
Работает!
Кнопка для получения PDF-отчета тоже появилась:
Хорошая новость: бот работает и дёргает ИИ по API.
Плохая новость: сегодня 24 ноября 2025, а у ХК «Сибирь» формально нет главного тренера, а есть только и.о. Ярослав Люзенков.
Всё пропало: этот ваш ИИ врёт в простейших ситуациях и порет чушь!
Без паники.
Почему так происходит
Короткий ответ: ИИ-модели обучают на исторических данных и по умолчанию они «не в курсе» происходящего за рамками «окна обучения».
Например, отсечка знаний у GPT-4.1 (и mini) — 1 июня 2024.
А у самой новой модели GPT-5.1 — 30 сентября 2024.
Если интересно, всё это можно узнать здесь.
Вывсёврёти! Я общаюсь с ChatGPT, он ходит в интернет и выдаёт свежую инфу!
Да, это так, но есть нюанс.
Чат-бот под названием ChatGPT, с которым мы привыкли «общаться», и модель GPT, доступная по API, работают по-разному:
- у чат-бота уже есть инструкция по поиску в интернете
- а модель использует только данные, на которых обучена
Выяснилось, что для поиска в интернете модели нужно отдельно сказать, чтобы она поискала в интернете.
Преступление раскрыто, преступления не было.
То есть, «просто запрос» надо превратить в «запрос с использованием Web Search». Пока я это выяснял, ChatGPT опять нёс всякую дичь и придумывал несуществующие сервисы OpenAI, но закончилось всё хорошо:
Решил, что пока не буду тратить время на прикручивание Web Search.
Сделаю позже, когда дойдёт до реального анализа. Вероятно, там придётся прилично повозиться, а я не хочу тормозить основной процесс.
Главное, получилось подружить бота с OpenAI по API.
Конец второй серии
Фактометр обрастает мясом, но по-прежнему доступен только мне, потому что:
- тестирую сразу на настоящем боте
- не нужна дополнительная нагрузка
- не нужны дополнительные расходы (каждый запрос платный)
Но для подтверждения, что я не просто выдумываю, а реально всё это делаю, записал скринкаст:
Переходите в бота и стартуйте: первые пользователи получат бонус при публичном релизе бота.
Вот прямая ссылка, никаких рефералок и скама:
Бот может тупить, потому что крутится на самом дешёвом сервере.
Напишите в комментариях, долго ли пришлось ждать стартового сообщения.
Если совсем беда, перенесу на более мощную машину.
Текущий прогресс
Уже готово:
- Подготовка к подготовке
- Нормальная подготовка
- Бот, который ничего не умеет
- Бот умеет общаться с ChatGPT по API
Следующий этап:
Научить бота генерировать PDF-отчёт
По моей задумке, непосредственно в боте пользователь получает краткий анализ запроса, а подробный отчёт доступен в PDF-версии — никакого подвоха, это просто удобней, чем читать простыню текста в телеге.
Опыт взаимодействия с ChatGPT вселяет оптимизм. Думаю, получится, но это не точно.
В телеге тоже подписывайтесь, мне будет радостно.