diff --git a/files/bifrost/config.template.json b/files/bifrost/config.template.json index c647697..39f2c72 100644 --- a/files/bifrost/config.template.json +++ b/files/bifrost/config.template.json @@ -16,11 +16,15 @@ thinking-mode gating, корректные reasoning-поля для v4-моделей — issue #3139): не нужны ни custom_provider_config, ни base_url (дефолт api.deepseek.com). - Роутинг — декларативно через governance.routing_rules (требует включённого - config_store). tududi ходит на drop-in эндпоинт /openai и шлёт ЗАХАРДКОЖЕННОЕ - имя модели gpt-4o-mini «голым». Правило ловит его по cel и подменяет на - реальную модель deepseek/deepseek-v4-pro. Фолбэка нет — единственный провайдер. - Чтобы сменить бэкенд-модель, правим ТОЛЬКО этот файл, конфиг tududi не трогаем. + Роутинг правилами больше не нужен: клиенты шлют имя модели с префиксом + провайдера (tududi — deepseek/deepseek-v4-pro на drop-in эндпоинт /openai), + Bifrost резолвит провайдера сам. Раньше здесь жило правило, подменявшее + захардкоженное у tududi gpt-4o-mini; с tududi 1.3.1 модель задаётся переменной. + + routing_rules оставлен ПУСТЫМ МАССИВОМ, а не удалён: при source_of_truth=config.json + авторитетно перезаписываются только присутствующие секции, а отсутствующие + оставляют строки в config.db нетронутыми — удали ключ, и старое правило + продолжило бы жить в БД (config.go, isGovernanceSectionPresent). Эти Jinja-комментарии в готовый config.json не попадают (на выходе чистый JSON). #} { @@ -49,18 +53,6 @@ "config": { "path": "/app/store/logs.db" } }, "governance": { - "routing_rules": [ - { - "id": "tududi-gpt4omini-to-deepseek-pro", - "name": "Tududi gpt-4o-mini -> DeepSeek v4 Pro", - "enabled": true, - "cel_expression": "model == 'gpt-4o-mini'", - "targets": [ - { "provider": "deepseek", "model": "deepseek-v4-pro", "weight": 1 } - ], - "scope": "global", - "priority": 0 - } - ] + "routing_rules": [] } } diff --git a/files/tududi/docker-compose.template.yml b/files/tududi/docker-compose.template.yml index 9dcbcd8..6f4e2cb 100644 --- a/files/tududi/docker-compose.template.yml +++ b/files/tududi/docker-compose.template.yml @@ -69,11 +69,13 @@ services: - FF_ENABLE_MCP=true # AI-фичи через Bifrost (drop-in OpenAI-эндпоинт в общей сети — НЕ localhost, - # это сам контейнер). Модель у tududi захардкожена как gpt-4o-mini; Bifrost - # по governance-правилу роутит её на deepseek-v4-pro. openai-node сам - # подхватывает OPENAI_BASE_URL. - - OPENAI_API_KEY={{ tududi_openai_api_key }} - - OPENAI_BASE_URL=http://bifrost_app:8080/openai + # это сам контейнер). С 1.3.1 модель задаётся переменной, а не захардкожена, + # поэтому шлём deepseek/deepseek-v4-pro сразу: Bifrost резолвит провайдера по + # префиксу, и подменять модель governance-правилом больше не нужно. + # Пара LLM_* имеет приоритет над устаревшей OPENAI_*, значения те же. + - LLM_API_KEY={{ tududi_openai_api_key }} + - LLM_BASE_URL=http://bifrost_app:8080/openai + - LLM_MODEL=deepseek/deepseek-v4-pro networks: web_proxy_network: