Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 3) + демо
Из-за быстрого прогресса на первых этапах я думал, что научить бота генерировать PDF-файлы — очень простая задача. На деле получился тот ещё геморрой.
В предыдущих сериях:
Всё придумал и написал ChatGPT, а я только описывал в промптах желаемую логику работы, следовал инструкциям и копипастил код.
Сегодня расскажу, как прикручивал и настраивал генератор PDF-файлов.
Зачем он нужен
После обработки запроса бот выдаёт пользователю короткий отчет (роценка и резюме) сразу в ответном сообщении.
А все детали (фактографический анализ, поиск первоисточников, цепочки ссылок, технический анализ текста и другие) доступны пользователю в подробном отчёте — его и нужно упаковать в PDF, как минимум, потому что изучать простыню текста в телеге неудобно.
А ещё PDF-отчёт можно скачать, переслать, прикрепить к переписке и даже распечатать.
Делаем
Сначала ChatGPT предложил связку xhtml2pdf и reportlab, но они конфликтовали, и приложение вообще не собиралось.
Первая попытка описана одним предложением, но в реальности правки и пересборки заняли часа 2.5 — целая вечность для вайб-кодинга :)
В итоге ChatGPT устал исправлять сам себя и предложил WeasyPrint, который умеет в CSS, страницы, таблицы, шрифты и т.д.
Приложение завелось с третьей попытки, после того, как ChatGPT подобрал нужное сочетание и версии библиотек.
Кода для генерации PDF из HTML — 3 строчки:
Приятным сюрпризом оказалось, что PDF создаётся в облаке и сразу отправляется в телеграм (никаких временных файлов и мусора).
Результат
Генератор PDF работает:
- ответ ИИ собирается в HTML
- PDF собирается на базе HTML, генерируется в облаке за секунды
- корректно отображается кириллица (подходят не все шрифты)
- Телеграм без проблем принимает файл и отдаёт его юзеру
Плюс, этот модуль можно будет адаптировать под боевую версию отчёта с более сложным форматированием (стили, таблицы).
Потенциальная проблема: вероятно, нужно будет переехать с DO App Platform на обычный VPS. Генератор PDF точно придётся переделать. И не только его.
Ну да ладно, буду решать проблемы по мере их появления.
Скринкаст
Переходите по ссылке и запускайте бота: первые пользователи получат бонус, когда (если) сервис станет публичным.
Бот может тупить, потому что крутится на самом слабом сервере.
Пожалуйста, напишите в комментариях, долго ли бот запускался.
Следующий этап
Самая «интеллектуальная» часть проекта:
Научить бота обрабатывать запрос так, чтобы на выходе получился настоящий качественный анализ
Известно, что это делается с помощью системного промпта — дополнительной инструкции для ИИ-модели.
На этом хорошие новости заканчиваются, потому что:
- Сейчас бот работает с GPT-4.1-mini, которая не ходит в интернет.
- Полная инструкция — 8000 токенов, нужно оптимизировать.
- Нет макета для подробного PDF-отчёта.
То есть, по факту предстоит решить не одну, а 3-4 задачи.
Хорошо, что этим займется ChatGPT.
Подписывайтесь на Чужие грабли в TG.