Skip to content

Интеллектуальный RAG ассистент с поддержкой OpenAI API и GigaChat

License

Notifications You must be signed in to change notification settings

MaxGarAI/PEr08-RAG-assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

RAG Assistant 🤖

Python Version License Code style: black PRs Welcome

Интеллектуальный ассистент на основе технологии RAG (Retrieval-Augmented Generation) с поддержкой двух режимов работы: OpenAI API и GigaChat от Сбера.

English Version | Документация | FAQ

🌟 Особенности

  • Два режима работы: OpenAI API (GPT-4o-mini) и GigaChat
  • Векторное хранилище: ChromaDB для эффективного поиска релевантных документов
  • Кеширование: SQLite-based кеш для оптимизации повторных запросов
  • Консольный интерфейс: Удобное взаимодействие через терминал
  • Статистика: Мониторинг использования системы
  • Оценка качества: Интеграция с RAGAS для оценки RAG pipeline

📋 Требования

  • Python 3.11+
  • API ключи:
    • OpenAI API key (для режима API)
    • GigaChat credentials (для режима GigaChat)

🚀 Установка

  1. Клонируйте репозиторий:
git clone <repository-url>
cd <repository-name>
  1. Создайте виртуальное окружение:
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env на основе .env.example:
cp .env.example .env
  1. Заполните .env своими API ключами:
# OpenAI API (для assistant_api)
OPENAI_API_KEY=your-openai-api-key

# GigaChat API (для assistant_giga)
GIGACHAT_RQUID=your-rquid
GIGACHAT_AUTH_KEY=your-auth-key

💻 Использование

Режим OpenAI API

cd assistant_api
python app.py

Режим GigaChat

cd assistant_giga
python app.py

Команды в консоли

  • Введите вопрос для получения ответа
  • stats - просмотр статистики системы
  • clear - очистка кеша
  • exit / quit - выход из программы

📚 Документация

📁 Структура проекта

. ├── assistant_api/ # Режим OpenAI API │ ├── app.py # Консольное приложение │ ├── rag_pipeline.py # Основной RAG pipeline │ ├── vector_store.py # Векторное хранилище │ ├── cache.py # Система кеширования │ ├── evaluate_ragas.py # Оценка качества │ └── data/ │ └── docs.txt # Документы для индексации │ ├── assistant_giga/ # Режим GigaChat │ ├── app.py # Консольное приложение │ ├── rag_pipeline.py # RAG pipeline для GigaChat │ ├── gigachat_client.py # Клиент GigaChat API │ ├── vector_store.py # Векторное хранилище │ ├── cache.py # Система кеширования │ └── data/ │ └── docs.txt # Документы для индексации │ ├── requirements.txt # Зависимости проекта ├── .env.example # Пример конфигурации ├── .gitignore # Игнорируемые файлы └── README.md # Документация


## 🔧 Архитектура

### RAG Pipeline

1. **Проверка кеша** - поиск ответа в локальном кеше
2. **Векторный поиск** - поиск релевантных документов в ChromaDB
3. **Формирование промпта** - создание контекста для LLM
4. **Генерация ответа** - получение ответа от LLM (OpenAI/GigaChat)
5. **Кеширование** - сохранение результата для будущих запросов

### Компоненты

- **VectorStore**: Управление векторным хранилищем ChromaDB
- **RAGCache**: SQLite-based кеш для оптимизации
- **RAGPipeline**: Основной orchestrator системы
- **GigaChatClient**: Клиент для работы с GigaChat API

## 📊 Оценка качества

Проект включает интеграцию с RAGAS для оценки качества RAG системы:

```bash
cd assistant_api
python evaluate_ragas.py

Метрики:

  • Context Precision
  • Context Recall
  • Faithfulness
  • Answer Relevancy

🛠️ Настройка

Добавление документов

Добавьте свои документы в файлы:

  • assistant_api/data/docs.txt
  • assistant_giga/data/docs.txt

Формат: текстовые блоки, разделенные двумя переносами строк.

Параметры модели

Настройте параметры в rag_pipeline.py:

  • model - модель LLM
  • temperature - температура генерации (0.0-1.0)
  • max_tokens - максимальная длина ответа
  • top_k - количество релевантных документов

🤝 Вклад в проект

Приветствуются pull requests! Для крупных изменений сначала откройте issue для обсуждения.

📝 Лицензия

MIT

🔗 Полезные ссылки

⚠️ Важные замечания

  • Не коммитьте файл .env с реальными API ключами
  • Файлы кеша (*.db) и векторного хранилища (chroma_db/) автоматически игнорируются
  • Для работы с GigaChat требуется отключение проверки SSL сертификатов

📧 Контакты

Если у вас есть вопросы или предложения, создайте issue в репозитории.

About

Интеллектуальный RAG ассистент с поддержкой OpenAI API и GigaChat

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published