Умный чат-бот с продвинутым RAG (Retrieval-Augmented Generation), GPT-анализом метаданных и интеграцией с облачным хранилищем Supabase.
Этот проект позволяет вам загружать документы, обрабатывать их с помощью умного алгоритма разбиения на осмысленные фрагменты (чанки) и вести диалог с чат-ботом, который использует эти документы для ответа на ваши вопросы.
- 🧠 Умное разбиение документов: Вместо простого разделения текста по количеству символов, система анализирует контент и разбивает его на логические сцены или подсцены, сохраняя контекст.
- 🤖 Глубокий GPT-анализ: Автоматическое извлечение более 20 типов метаданных из каждого чанка, включая:
- Персонажи и их состояние
- Локации и события
- Эмоциональная окраска и темы
- Причинно-следственные связи
- ☁️ Гибкие хранилища: Поддержка как облачного хранилища Supabase для продвинутых запросов и метаданных, так и локального ChromaDB.
- ⚙️ Настраиваемый поиск: Выбор из нескольких типов ретриверов, включая гибридный поиск и реранкинг для максимальной точности ответов.
- 🌐 Многоязычность: Интерфейс и ответы ассистента поддерживают несколько языков.
- 🚀 Поддержка нескольких LLM: Возможность переключаться между провайдерами, такими как OpenAI и Google Generative AI.
Эта инструкция предполагает, что вы уже скачали файлы проекта и находитесь в его корневой директории.
Рекомендуется использовать виртуальное окружение, чтобы изолировать зависимости проекта.
# Создаем окружение
python -m venv smart_rag_env
# Активируем его (для Windows PowerShell)
.\smart_rag_env\Scripts\Activate.ps1Установите все необходимые библиотеки с помощью одного файла.
pip install -r requirements_testing.txtДля работы чат-бота требуются API-ключи. Они должны храниться в файле .env.
- Создайте файл
.envв корневой папке проекта. - Скопируйте в него следующее содержимое и замените
your-...на ваши реальные ключи.
# ОБЯЗАТЕЛЬНО: Ключ для OpenAI
OPENAI_API_KEY="your-openai-api-key-here"
# ОПЦИОНАЛЬНО: Для облачного хранилища Supabase
SUPABASE_URL="your-supabase-url-here"
SUPABASE_SERVICE_ROLE_KEY="your-supabase-service-role-key-here"
# ОПЦИОНАЛЬНО: Для других провайдеров
GOOGLE_API_KEY="your-google-api-key-here"
COHERE_API_KEY="your-cohere-api-key-here"- OpenAI: platform.openai.com/api-keys
- Supabase: supabase.com/dashboard (Project URL и service_role key находятся в
Settings > API) - Google: makersuite.google.com/app/apikey
После выполнения всех шагов, запустите Streamlit-приложение:
streamlit run src/main.pyВ вашем браузере автоматически откроется вкладка с интерфейсом чат-бота.
НИКОГДА не публикуйте ваш .env файл и не добавляйте его в систему контроля версий (например, Git).
Убедитесь, что в вашем файле .gitignore есть следующие строки:
# Игнорировать файлы с переменными окружения
.env
*.env
- 🚀 Базовая функциональность RAG: Загрузка документов, векторизация, поиск и ответы
- 🧠 GPT-4o-mini интеграция: Используется для анализа и генерации ответов
- 🔄 Умное разбиение документов: Интеллектуальное деление на смысловые чанки
- ☁️ Supabase интеграция: Облачное векторное хранилище с метаданными
- 🎛️ Streamlit интерфейс: Готовый веб-интерфейс для работы
- 📊 Поддержка разных форматов: PDF, TXT, DOCX
- 🔍 Различные типы поиска: Similarity, MMR, contextual compression
- 🚫 НЕТ ТЕСТОВ: Отсутствуют unit-тесты и интеграционные тесты
- 🐛 Обработка ошибок: Неполная обработка edge cases и исключений
- 📝 Логирование: Минимальное логирование, трудно дебажить
- 🔧 Зависимости: Некоторые модули имеют circular imports
- 💾 Управление памятью: Может потреблять много ресурсов на больших документах
- 🔑 Управление ключами: API ключи могут "теряться" между сессиями
- Тестирование: pytest, coverage, CI/CD
- Документация: Более детальная документация API
- Performance: Оптимизация скорости обработки
- Reliability: Улучшение стабильности работы
- Error Handling: Graceful degradation при ошибках
- Monitoring: Метрики производительности и качества
Можно использовать прямо сейчас для:
- 📚 Работы с собственными документами и базами знаний
- 🔍 Быстрого поиска информации в больших текстах
- 🤖 Создания чат-бота для FAQ или поддержки
- 📊 Эксперимента с различными RAG стратегиями
- 🎓 Обучения и понимания архитектуры RAG систем
Подходит для:
- 🧪 Исследователей и студентов изучающих RAG
- 🏢 Малый бизнес с простыми требованиями к чат-боту
- 👨💻 Разработчиков как база для собственных решений
- 📖 Личного использования для работы с документами
НЕ подходит для:
- 🏭 Production систем без серьезной доработки
- 💼 Enterprise решений с высокими требованиями к надежности
- 🔒 Критически важных приложений без тестирования
- 🚀 Высоконагруженных систем без оптимизации
Проект нуждается в доработке! Смотрите CONTRIBUTING.md для:
- 🧪 Добавления тестов
- 🐛 Исправления багов
- 📚 Улучшения документации
- ⚡ Оптимизации производительности