Документы + LLM (Telegram-бот)
Назначение
Пользователь загружает в чат документы (текст/PDF и т.п. в зависимости от реализации), бот сохраняет их и позволяет задавать вопросы по содержимому с помощью модели OpenAI.
Потоки работы
- Загрузка — пользователь отправляет файлы; бот сохраняет их в базе и при необходимости извлекает текст для обработки.
- Вопросы по документам — пользователь формулирует вопрос; если задан
OPENAI_API_KEY, ответ строится на основе загруженных материалов (RAG-подобный сценарий). - Без ключа — при отсутствии ключа загрузка может работать, но ответы по LLM недоступны (пользователю показывается понятное сообщение).
Демо-документ при старте
Если в таблице документов пусто, один раз добавляется вымышленный текст «меморандум Clino» (для проверки Q&A в пустой базе). После любого реального документа повторная заливка не делается.
Данные
- SQLite для метаданных и путей к файлам (см.
DATABASE_URL).
Конфигурация
BOT_TOKEN— токен бота (в корневом compose:DOC_BOT_TOKEN→BOT_TOKEN).OPENAI_API_KEY— ключ API OpenAI.OPENAI_MODEL— модель (по умолчаниюgpt-4o-mini).
Технологии
- aiogram, интеграция с OpenAI API.