Skip to content

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

Конфигурация

ПеременнаяПо умолчаниюОписание
PORT8101Порт HTTP-сервера
DB_*PostgreSQL (DB_NAME=ai_router_db)
JWT_SECRETВалидация JWT
AI_DEFAULT_PROVIDERopenaiПровайдер по умолчанию
AI_REQUEST_TIMEOUT120sTimeout запросов к LLM
AI_MAX_RETRIES3Число повторов при ошибке
EMBEDDING_MODELtext-embedding-3-smallМодель эмбеддингов
EMBEDDING_PROVIDERopenaiПровайдер эмбеддингов
OLLAMA_BASE_URLhttp://localhost:11434URL Ollama
OLLAMA_MODELornithМодель Ollama
OLLAMA_TIMEOUT120sTimeout Ollama
OLLAMA_MAX_TOKENS4096Лимит токенов Ollama
MESSAGING_URLnats://localhost:4222NATS URL
SERVER_WRITE_TIMEOUT300sWrite timeout (длинный под стриминг)