Appearance
AI Router
Назначение
Центральный сервис работы с LLM в платформе Unishift. Маршрутизирует запросы к нескольким провайдерам (OpenAI, Anthropic, Google, Ollama), управляет чатами и knowledge base (RAG) на основе векторного поиска через pgvector.
Порты
- HTTP: 8101
- БД:
ai_router_db
Ключевые возможности
- Мультипровайдерность: OpenAI, Anthropic, Google, Ollama за единым API
- Чаты с историей сообщений, стримингом ответа и reasoning (
thinking) - Function calling — вызов инструментов из чата (tool calls)
- RAG / Knowledge base: загрузка документов, чанкование, эмбеддинги и поиск по семантической близости через расширение pgvector
- CRUD провайдеров для администраторов (модели, API-ключи, base URL)
- Учёт вызовов: сохранение истории, токенов, длительности и статистики по пользователю
- Двойная аутентификация: JWT (пользователи) и Service Token (сервисы)
- Ролевая модель: управление провайдерами требует роль
admin - Публикация NATS-событий: стриминг чанков, статусы обработки, tool-call'ы
- Swagger UI, health checks
Конфигурация
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT | 8101 | Порт HTTP-сервера |
DB_* | — | PostgreSQL (DB_NAME=ai_router_db) |
JWT_SECRET | — | Валидация JWT |
AI_DEFAULT_PROVIDER | openai | Провайдер по умолчанию |
AI_REQUEST_TIMEOUT | 120s | Timeout запросов к LLM |
AI_MAX_RETRIES | 3 | Число повторов при ошибке |
EMBEDDING_MODEL | text-embedding-3-small | Модель эмбеддингов |
EMBEDDING_PROVIDER | openai | Провайдер эмбеддингов |
OLLAMA_BASE_URL | http://localhost:11434 | URL Ollama |
OLLAMA_MODEL | ornith | Модель Ollama |
OLLAMA_TIMEOUT | 120s | Timeout Ollama |
OLLAMA_MAX_TOKENS | 4096 | Лимит токенов Ollama |
MESSAGING_URL | nats://localhost:4222 | NATS URL |
SERVER_WRITE_TIMEOUT | 300s | Write timeout (длинный под стриминг) |