This commit is contained in:
2026-08-30 13:12:15 +03:00
parent f213b139da
commit 995c5fba0e
15 changed files with 969 additions and 375 deletions
+11 -22
View File
@@ -1,33 +1,22 @@
# llm-proxy
Прозрачная прослойка OpenAI API перед RouterAI (routerai.ru). Принимает
`/v1/chat/completions` и `/v1/models`, модифицирует запрос и проксирует дальше.
Прозрачная прослойка/роутер OpenAI API. Принимает `/v1/chat/completions` и
`/v1/models`, маршрутизирует между объявленными в YAML апстримами по внутреннему
учёту конкурентности и мержит `patch`-слои (`provider` → `upstream` → `model`) в
тело запроса. Подробная спецификация конфига — в `CONFIG.md`.
## Что добавляет в запрос
## Конфиг
1. **`provider.ignore`** — исключение дорогих провайдеров (список из env
`EXCLUDED_PROVIDERS`, напр. `deepseek`) + `allow_fallbacks: false`
(иначе ignore не жёсткий — RouterAI может уйти на исключённого резервной
попыткой).
2. **`reasoning: {"enabled": false}`** — для моделей с суффиксом `-no-think`
(отключение думанья; проверено на `deepseek/deepseek-v4-flash-0731`:
работает `reasoning.enabled=false`, не работает `include_reasoning=false`).
Суффикс снимается перед отправкой — RouterAI видит оригинальное имя.
## Каталог /v1/models
Модели, чей id содержит любую из подстрок `THINKING_MODELS`, дублируются в
каталоге с суффиксом `-no-think` (напр. `deepseek/deepseek-v4-flash-0731-no-think`).
## Конфиг (env)
Конфигурация — в YAML-файле (по умолчанию `config.yaml` в каталоге проекта,
CWD; переопределяется env `CONFIG_PATH`). Три блока: `providers`, `upstreams`,
`models`. Старый механизм env-переменных (`UPSTREAM_URL`, `ROUTER_API_KEY`,
`EXCLUDED_PROVIDERS`, `THINKING_MODELS`) удалён — его поведение теперь в
декларативном `patch` и блоке `upstreams`.
| Переменная | Default | Описание |
|---|---|---|
| `PORT` | 8100 | Порт сервера |
| `UPSTREAM_URL` | `https://routerai.ru/api/v1` | Куда проксировать |
| `ROUTER_API_KEY` | — (обязателен) | Bearer-ключ RouterAI |
| `EXCLUDED_PROVIDERS` | пусто | slug'и провайдеров через запятую |
| `THINKING_MODELS` | `deepseek/deepseek-v4-flash-0731,deepseek/deepseek-v4-flash` | подстроки id «думающих» моделей |
| `CONFIG_PATH` | `config.yaml` (CWD) | Путь к YAML-конфигу |
## Сборка и деплой