Перейти к основному содержимому

Документы + LLM (Telegram-бот)

Назначение

Пользователь загружает в чат документы (текст/PDF и т.п. в зависимости от реализации), бот сохраняет их и позволяет задавать вопросы по содержимому с помощью модели OpenAI.

Потоки работы

  1. Загрузка — пользователь отправляет файлы; бот сохраняет их в базе и при необходимости извлекает текст для обработки.
  2. Вопросы по документам — пользователь формулирует вопрос; если задан OPENAI_API_KEY, ответ строится на основе загруженных материалов (RAG-подобный сценарий).
  3. Без ключа — при отсутствии ключа загрузка может работать, но ответы по LLM недоступны (пользователю показывается понятное сообщение).

Демо-документ при старте

Если в таблице документов пусто, один раз добавляется вымышленный текст «меморандум Clino» (для проверки Q&A в пустой базе). После любого реального документа повторная заливка не делается.

Данные

  • SQLite для метаданных и путей к файлам (см. DATABASE_URL).

Конфигурация

  • BOT_TOKEN — токен бота (в корневом compose: DOC_BOT_TOKENBOT_TOKEN).
  • OPENAI_API_KEY — ключ API OpenAI.
  • OPENAI_MODEL — модель (по умолчанию gpt-4o-mini).

Технологии

  • aiogram, интеграция с OpenAI API.