Skip to content

🧠 Smart RAG Chatbot with GPT analysis and Supabase integration - Educational MVP for learning RAG architecture

License

Notifications You must be signed in to change notification settings

AndriiEagle/-smart-rag-chatbot

Repository files navigation

🤖 Smart RAG Chatbot

Python Status License Contributions GitHub stars GitHub forks

Умный чат-бот с продвинутым RAG (Retrieval-Augmented Generation), GPT-анализом метаданных и интеграцией с облачным хранилищем Supabase.

Этот проект позволяет вам загружать документы, обрабатывать их с помощью умного алгоритма разбиения на осмысленные фрагменты (чанки) и вести диалог с чат-ботом, который использует эти документы для ответа на ваши вопросы.

✨ Ключевые возможности

  • 🧠 Умное разбиение документов: Вместо простого разделения текста по количеству символов, система анализирует контент и разбивает его на логические сцены или подсцены, сохраняя контекст.
  • 🤖 Глубокий GPT-анализ: Автоматическое извлечение более 20 типов метаданных из каждого чанка, включая:
    • Персонажи и их состояние
    • Локации и события
    • Эмоциональная окраска и темы
    • Причинно-следственные связи
  • ☁️ Гибкие хранилища: Поддержка как облачного хранилища Supabase для продвинутых запросов и метаданных, так и локального ChromaDB.
  • ⚙️ Настраиваемый поиск: Выбор из нескольких типов ретриверов, включая гибридный поиск и реранкинг для максимальной точности ответов.
  • 🌐 Многоязычность: Интерфейс и ответы ассистента поддерживают несколько языков.
  • 🚀 Поддержка нескольких LLM: Возможность переключаться между провайдерами, такими как OpenAI и Google Generative AI.

🔧 Установка и запуск

Эта инструкция предполагает, что вы уже скачали файлы проекта и находитесь в его корневой директории.

Шаг 1: Создание и активация виртуального окружения

Рекомендуется использовать виртуальное окружение, чтобы изолировать зависимости проекта.

# Создаем окружение
python -m venv smart_rag_env

# Активируем его (для Windows PowerShell)
.\smart_rag_env\Scripts\Activate.ps1

Шаг 2: Установка зависимостей

Установите все необходимые библиотеки с помощью одного файла.

pip install -r requirements_testing.txt

Шаг 3: Настройка ключей API

Для работы чат-бота требуются API-ключи. Они должны храниться в файле .env.

  1. Создайте файл .env в корневой папке проекта.
  2. Скопируйте в него следующее содержимое и замените 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"

Где взять ключи?

🚀 Шаг 4: Запуск приложения

После выполнения всех шагов, запустите 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 для:

  • 🧪 Добавления тестов
  • 🐛 Исправления багов
  • 📚 Улучшения документации
  • ⚡ Оптимизации производительности

About

🧠 Smart RAG Chatbot with GPT analysis and Supabase integration - Educational MVP for learning RAG architecture

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published