Skip to content

Per-model provider routing + truecolor banner#1

Open
klemflex-devops wants to merge 2 commits into
polza-ai:mainfrom
klemflex-devops:main
Open

Per-model provider routing + truecolor banner#1
klemflex-devops wants to merge 2 commits into
polza-ai:mainfrom
klemflex-devops:main

Conversation

@klemflex-devops

Copy link
Copy Markdown

PR: Per-model provider routing + Truecolor banner

Основное: per-model provider routing

config.json теперь принимает опциональную карту modelProviders, позволяющую задавать провайдера индивидуально для каждой модели:

{
  "modelProviders": {
    "deepseek/deepseek-v4-pro": {
      "only": ["DeepSeek"],
      "allow_fallbacks": false
    },
    "xiaomi/mimo-v2.5-pro": {
      "only": ["Xiaomi", "DeepInfra"],
      "allow_fallbacks": true
    }
  }
}

Когда в теле запроса модель совпадает с ключом, proxy подставляет provider из modelProviders, переопределяя глобальный inject.provider. Работает, даже если provider вообще отсутствует в блоке inject. В лог инжекции добавлен флаг modelProvider для отладки.

Зачем: без этого все модели идут через один глобальный фолбэк-порядок. IDE, маршрутизирующие разные модели через прокси (Claude → Anthropic, GPT → OpenAI, DeepSeek → DeepSeek), получают правильного провайдера сразу, минуя лишние фолбэк-хопы и снижая задержку.

Побочное: Truecolor-aware баннер

При COLORTERM=truecolor (или 24bit) логотип рендерится в #39FF14 вместо #B2F72A — более яркий неон, корректный на современных терминалах (Windows Terminal, WezTerm, Kitty). ANSI-фолбэк тоже переведён на динамический цвет вместо хардкода.

Изменённые файлы

Файл Изменение
src/server.js Model-aware applyInjections: приоритет modelProviders над inject.provider, инжекция провайдера даже без глобального inject, флаг modelProvider в логах
src/config.js Новое поле modelProviders в конфиге
config.example.json Примеры modelProviders с only и allow_fallbacks
src/banner.js Детекция truecolor, динамический зелёный hex, динамический ANSI-фолбэк

Полностью обратно совместимо: modelProviders опционален и отсутствует в wizard-генерируемом конфиге. Новых зависимостей нет.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant