bifrost: добавлен провайдер bothub и срок хранения логов

- bothub заведён custom-провайдером (base_provider_type openai, адрес без /v1):
  из него ходит diet, нативному DeepSeek снимки еды не по силам
- client.log_retention_days = 30: тело запроса пишется в logs.db целиком,
  снимок в 2500 px даёт запись около 911 КБ
This commit is contained in:
av
2026-09-06 11:50:29 +03:00
parent 3b46b97f47
commit 41284ed33f
2 changed files with 290 additions and 246 deletions
+23 -1
View File
@@ -16,6 +16,17 @@
thinking-mode gating, корректные reasoning-поля для v4-моделей issue #3139):
не нужны ни custom_provider_config, ни base_url (дефолт api.deepseek.com).
bothub агрегатор, нативным провайдером Bifrost не является: заводится custom
с base_provider_type=openai и своим base_url. Адрес указывается БЕЗ /v1
версию шлюз дописывает сам. Из него ходит diet: vision-модель читает снимки
еды (нативному DeepSeek такое не по силам), текстовая сводит позиции.
log_retention_days=30 в client: тело запроса пишется в logs.db целиком, а
снимок в 2500 px даёт запись около 911 КБ порядка 0,9 ГБ в месяц. Месяц
выбран потому, что отладка промпта смотрит на вчерашние запросы. Документированный
logs_store.retention_days для SQLite не делает ничего он про ClickHouse.
После чистки файл не уменьшается: auto_vacuum выключен, место переиспользуется.
Роутинг правилами больше не нужен: клиенты шлют имя модели с префиксом
провайдера (tududi deepseek/deepseek-v4-pro на drop-in эндпоинт /openai),
Bifrost резолвит провайдера сам. Раньше здесь жило правило, подменявшее
@@ -32,7 +43,8 @@
"encryption_key": {{ bifrost_encryption_key | to_json }},
"source_of_truth": "config.json",
"client": {
"enable_logging": true
"enable_logging": true,
"log_retention_days": 30
},
"providers": {
"deepseek": {
@@ -40,6 +52,16 @@
{ "name": "deepseek-primary", "value": {{ bifrost_deepseek_api_key | to_json }}, "models": ["*"], "weight": 1.0 }
],
"network_config": { "max_retries": 2 }
},
"bothub": {
"keys": [
{ "name": "bothub-primary", "value": {{ bifrost_bothub_api_key | to_json }}, "models": ["*"], "weight": 1.0 }
],
"custom_provider_config": {
"base_provider_type": "openai",
"allowed_requests": { "chat_completion": true, "list_models": true }
},
"network_config": { "base_url": "https://openai.bothub.chat", "max_retries": 1 }
}
},
"config_store": {