Задача от клиента: "ИИ чат бот должен добовляться в чат группы и смотреть за документаций и по запросу сообщать какие документы когдаа былим загруженны и на какой стадии сейчас идет процесс работы"
Ключевые решения
1. Интеграция с Gemini AI
Использована модель gemini-2.5-flash-preview-05-20 для анализа документов, ответов на вопросы и генерации структурированных планов.
Системные инструкции включают контекст компании и текущую дату для персонализации ответов.
2. Поддержка множества форматов файлов
Excel: Преобразование в CSV и текстовое представление с помощью pandas.
Word (.docx): Извлечение текста и таблиц с сохранением структуры.
PDF, изображения, XML: Прямая обработка через Gemini AI.
Автоматическое определение типа файла и адаптивная логика обработки.
3. Умное управление контекстом
История чата, файлов и ссылок хранится в SQLite, что позволяет боту учитывать предыдущие обсуждения.
Динамическое формирование контекста для Gemini AI, включая описания файлов и ссылок.
4.Работа с большими файлами
Автоматическая загрузка файлов >20 МБ на серверы Gemini с последующей очисткой временных файлов.
Повторные попытки обработки при ошибках (реализовано через tenacity).
5.Обработка ссылок
Загрузка и анализ содержимого веб-страниц и PDF по URL.
Краткое описание контента с выделением ключевой информации.
6.Оптимизация взаимодействия
Разбивка длинных сообщений на части для удобства чтения.
Логирование всех действий для отладки и анализа работы.
Эффективная аналитика
Бот быстро анализирует документы (планы, сметы, отчёты) и предоставляет структурированные выводы.
Пример: автоматическое создание плана работ с распределением задач между специалистами.
Естественное общение
Поддержка русскоязычных запросов и контекстно-зависимых ответов.
Пример:
Пользователь: "@_bot Напиши план ремонта офиса"
Бот: "1. Демонтаж старых покрытий (2 дня, бригада А). 2. Электромонтаж (3 дня, инженеры Б). 3. Отделка (5 дней, строители В)..."
Надёжность
Обработка ошибок с понятными уведомлениями пользователя.
Пример: "Формат .doc не поддерживается. Конвертируйте файл в .docx."
Масштабируемость
Гибкая архитектура позволяет добавлять новые форматы файлов и функции без переписывания кода.