Files
rag-service/README.md
2026-01-26 20:17:44 +03:00

93 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RAG Service
Сервис векторного скоринга текстов с использованием ruBERT.
## Возможности
- **Скоринг** — оценка текстов на основе векторного сходства с примерами
- **Примеры** — добавление положительных и отрицательных примеров для обучения
- **Персистентность** — автоматическое сохранение векторов на диск
- **API авторизация** — защита через API ключ
## Быстрый старт
```bash
# Клонировать репозиторий
git clone <repository-url>
cd rag-service
# Создать .env файл
cp env.example .env
# Сгенерировать API ключ
python -c "import secrets; print(secrets.token_urlsafe(32))"
# Добавить ключ в .env (RAG_API_KEY=...)
# Запустить
docker-compose up -d --build
```
## API
### Endpoints
| Метод | URL | Описание | Авторизация |
|-------|-----|----------|-------------|
| GET | `/api/v1/health` | Проверка здоровья | Нет |
| POST | `/api/v1/score` | Расчет скора текста | Да |
| POST | `/api/v1/examples/positive` | Добавить положительный пример | Да |
| POST | `/api/v1/examples/negative` | Добавить отрицательный пример | Да |
| GET | `/api/v1/stats` | Статистика сервиса | Да |
| POST | `/api/v1/warmup` | Прогрев модели | Да |
| POST | `/api/v1/save` | Сохранить векторы | Да |
### Авторизация
Передавать API ключ в заголовке `X-API-Key`:
```bash
curl -H "X-API-Key: YOUR_API_KEY" http://localhost/api/v1/stats
```
### Примеры запросов
```bash
# Health check
curl http://localhost/api/v1/health
# Расчет скора
curl -X POST http://localhost/api/v1/score \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Текст для оценки"}'
# Добавить положительный пример
curl -X POST http://localhost/api/v1/examples/positive \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Хороший пост"}'
```
## Конфигурация
Переменные окружения (см. `env.example`):
| Переменная | Описание | По умолчанию |
|------------|----------|--------------|
| `RAG_API_KEY` | API ключ для авторизации | — |
| `RAG_MODEL` | Модель HuggingFace | `DeepPavlov/rubert-base-cased` |
| `RAG_MAX_EXAMPLES` | Макс. количество примеров | `10000` |
| `RAG_AUTOSAVE_INTERVAL` | Интервал автосохранения (сек) | `600` |
## Swagger UI
Документация API доступна по адресу `/docs`.
## Технологии
- Python 3.11
- FastAPI
- Transformers (ruBERT)
- NumPy
- Docker