feat: llm-proxy — OpenAI-прослойка перед RouterAI (provider.ignore + -no-think)
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# llm-proxy
|
||||
|
||||
Прозрачная прослойка OpenAI API перед RouterAI (routerai.ru). Принимает
|
||||
`/v1/chat/completions` и `/v1/models`, модифицирует запрос и проксирует дальше.
|
||||
|
||||
## Что добавляет в запрос
|
||||
|
||||
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)
|
||||
|
||||
| Переменная | 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 «думающих» моделей |
|
||||
|
||||
## Сборка и деплой
|
||||
|
||||
- CI (Gitea Actions, на release): `./gradlew shadowJar` → образ
|
||||
`images.binom.pw/llm-proxy:<tag>` (zot).
|
||||
- Запуск на 76.179 (llm-router): `podman-compose up -d` из `podman-compose.yaml`
|
||||
(образ тянется из `images.binom.pw`, сеть `bifrost_default` — туда же Bifrost
|
||||
ходит по имени `llm-proxy`).
|
||||
- Bifrost: в `config_providers` провайдера `Routerai` `network_config_json.base_url`
|
||||
= `http://llm-proxy:8100` (после смены — рестарт bifrost_gateway).
|
||||
Reference in New Issue
Block a user