Интеллектуальный ассистент на основе технологии 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)
- Клонируйте репозиторий:
git clone <repository-url>
cd <repository-name>- Создайте виртуальное окружение:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows- Установите зависимости:
pip install -r requirements.txt- Создайте файл
.envна основе.env.example:
cp .env.example .env- Заполните
.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-keycd assistant_api
python app.pycd assistant_giga
python app.py- Введите вопрос для получения ответа
stats- просмотр статистики системыclear- очистка кешаexit/quit- выход из программы
- Быстрый старт - запуск за 5 минут
- Структура проекта - обзор файлов и папок
- Руководство по установке
- Руководство по использованию
- API документация
- Архитектура
- FAQ
- Roadmap
. ├── 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.txtassistant_giga/data/docs.txt
Формат: текстовые блоки, разделенные двумя переносами строк.
Настройте параметры в rag_pipeline.py:
model- модель LLMtemperature- температура генерации (0.0-1.0)max_tokens- максимальная длина ответаtop_k- количество релевантных документов
Приветствуются pull requests! Для крупных изменений сначала откройте issue для обсуждения.
- Не коммитьте файл
.envс реальными API ключами - Файлы кеша (
*.db) и векторного хранилища (chroma_db/) автоматически игнорируются - Для работы с GigaChat требуется отключение проверки SSL сертификатов
Если у вас есть вопросы или предложения, создайте issue в репозитории.