Настройка AI: провайдеры и пресеты
В FileDB два независимых места конфигурации AI — умышленно разделены, потому что у них разная природа связи с данными.
Глобальные пресеты — для разговорных функций
AI-чат, AI-агент и умный экспорт — обычные stateless-вызовы /chat/completions, без привязки к конкретным данным. Поэтому для них — один глобальный именованный пресет, который легко переключать, хранится в settings_ai.json рядом с исполняемым файлом:
{
"active": "prod-openai",
"presets": [
{"name": "prod-openai", "provider": "openai", "base_url": "https://api.openai.com/v1", "api_key": "sk-...", "model": "gpt-4o-mini"},
{"name": "local-proxy", "provider": "custom", "base_url": "https://api.ai-mediator.ru/v1", "api_key": "...", "model": "claude-sonnet"}
]
}
provider — только подсказка для интерфейса (какие поля показать по умолчанию); реальный вызов всегда идёт по base_url + api_key, так что подойдёт любой OpenAI-совместимый /chat/completions — включая прокси перед Anthropic/другими моделями.
Управление — через API или веб-интерфейс:
curl $URL/api/ai/settings -H "X-Token: $TOK"
curl -X POST $URL/api/ai/preset/save -H "X-Token: $TOK" -d '{"name":"prod-openai","provider":"openai","base_url":"https://api.openai.com/v1","api_key":"sk-...","model":"gpt-4o-mini"}'
curl -X POST $URL/api/ai/preset/activate -H "X-Token: $TOK" -d '{"name":"prod-openai"}'
curl -X POST $URL/api/ai/preset/delete -H "X-Token: $TOK" -d '{"name":"local-proxy"}'
Конфиг эмбеддингов — свой на каждую БД
Эмбеддинги, гибридный поиск и AI-маппинг импорта настраиваются отдельно для каждого .fdb-файла через веб-интерфейс /embeddings — не через settings_ai.json. Причина: вектор жёстко привязан к тому, каким провайдером и моделью он посчитан — если незаметно переключить БД на другого провайдера, векторный поиск начнёт сравнивать несравнимое и тихо вернёт мусор. Поэтому у каждой БД — свой независимый провайдер, модель, ключ и base_url (4 поддерживаемых провайдера — OpenAI/совместимые, Voyage AI, Google Gemini, Yandex Cloud), и смена провайдера на живой базе требует переиндексации.
AI-маппинг импорта переиспользует api_key/base_url из этого per-DB конфига (не из глобального пресета) — см. страницу «Умный экспорт и AI-маппинг импорта».