LLM-провайдер¶
Synth не поставляет модели и не содержит встроенного LLM. Модель подключается как внешний провайдер: OpenAI-совместимый endpoint, Ollama или Anthropic. Без доступного провайдера работают интерфейс, файлы, история и инструменты, но ответы модели — нет.
Варианты подключения¶
Подходит для корпоративного шлюза, vLLM, LiteLLM, OpenRouter-совместимого API и других реализаций OpenAI API.
synth config provider add \
--name corp \
--type openai \
--url https://llm.<domain>/v1 \
--model <model> \
--api-key '<api-key>'
Базовый URL обычно заканчивается на /v1. Если ваш шлюз использует другой
префикс, укажите его так, как он описан в документации шлюза.
Ollama устанавливается отдельно в том же контуре. Synth обращается к
нативному API /api/chat, поэтому URL указывается без /v1 — так
применяются num_ctx, think и инструменты.
ollama pull <model>
synth config provider add \
--name ollama \
--type ollama \
--url http://127.0.0.1:11434 \
--model <model>
Если Ollama на другом хосте, замените URL на
http://<ollama-host>:11434 и откройте порт 11434 только для Synth.
Модели Ollama скачиваются на хост Ollama отдельно; в поставку Synth они не
входят.
Ollama без интернета
ollama pull требует доступа к реестру моделей. В закрытом контуре
модель переносится на хост Ollama отдельно (например, GGUF-файл и
Modelfile с ollama create); команда ollama pull выше — для хоста,
у которого этот доступ есть.
Переменные окружения¶
Провайдера можно задать без CLI — через SYNTH_PROVIDER_<NAME>_*. Имя
провайдера — в верхнем регистре:
export SYNTH_PROVIDER_CORP_TYPE=openai
export SYNTH_PROVIDER_CORP_URL=https://llm.<domain>/v1
export SYNTH_PROVIDER_CORP_MODEL=<model>
export SYNTH_PROVIDER_CORP_API_KEY='<api-key>'
Для Ollama:
export SYNTH_PROVIDER_OLLAMA_TYPE=ollama
export SYNTH_PROVIDER_OLLAMA_URL=http://127.0.0.1:11434
export SYNTH_PROVIDER_OLLAMA_MODEL=<model>
Ключи не коммитьте и не передавайте в открытом виде. В systemd используйте
EnvironmentFile с правами 0600, в Kubernetes — Secret, в Docker — env-файл
или Secret.
Проверить список провайдеров:
Работающий инстанс
CLI-команда пишет JSON в каталог данных. Если сервер уже запущен, удобнее добавить провайдера через раздел «Провайдеры» в интерфейсе; CLI — хороший способ подготовить конфигурацию до первого старта.
Модель по умолчанию¶
Модель по умолчанию задаётся в админке («Модели») или через API:
curl -X PUT http://127.0.0.1:4300/api/v2/settings/default-model \
-H "Authorization: Bearer <api-key>" \
-H 'Content-Type: application/json' \
-d '{"provider":"corp","model":"<model>"}'
Приоритет: runtime-настройка инстанса выше llm.defaultProvider /
llm.defaultModel из config.yaml. Значение используется новыми сессиями.
CA и TLS¶
Если LLM-endpoint подписан внутренним CA, добавьте его в доверие Synth. Не отключайте проверку сертификата.
config.yaml:
Переменные окружения:
export SYNTH_TLS_CA_FILE=/etc/synth/certs/ca.pem
# или PEM целиком:
# export SYNTH_TLS_CA_PEM="$(cat ca.pem)"
В интерфейсе то же настраивается в разделе «Сеть» → «TLS/CA». TLS применяется при старте: после изменения перезапустите сервис.
Для Helm-развёртывания используйте security.tls.existingSecret (CA и
клиентские сертификаты) или caCert; чарт смонтирует файлы и пропишет пути.
Проверка цепочки:
openssl s_client -connect llm.<domain>:443 -servername llm.<domain> \
-CAfile /etc/synth/certs/ca.pem </dev/null
Не выключайте проверку TLS
rejectUnauthorized: false и curl -k допустимы только как временная
диагностика. В рабочем контуре настройте CA: иначе трафик к LLM не защищён
от подмены.
Прокси¶
Если исходящие запросы идут через прокси, настройте его в config.yaml или в
интерфейсе («Сеть» → «Прокси»):
Переменные окружения:
export SYNTH_PROXY_URL=http://proxy.<domain>:3128
export SYNTH_PROXY_NO_PROXY="127.0.0.1,localhost,.internal"
Приоритет: SYNTH_PROXY_* → runtime-настройка в UI → config.yaml →
стандартные HTTP_PROXY/HTTPS_PROXY/NO_PROXY. Настройка применяется при
старте. Для локальной Ollama добавьте 127.0.0.1,localhost в noProxy, иначе
запрос уйдёт через прокси.
Доменная аутентификация прокси (NTLM/Negotiate/Kerberos) в Synth не реализуется — используйте промежуточный egress-прокси или шлюз, который завершает аутентификацию. SOCKS5 поддерживается best-effort, без target CA/mTLS.
Проверка доступности¶
OpenAI-совместимый endpoint (если поддерживает /models):
Ollama:
Если запрос из shell проходит, а Synth отвечает ошибкой, проверьте:
- тот ли URL и ключ заданы у провайдера;
- не мешает ли прокси (
noProxyдля локального endpoint); - доверяет ли Synth CA endpoint;
- есть ли у сервиса сетевой доступ к хосту/порту.
Офлайн-поведение¶
- Проверка обновлений и обращение к npm-реестру для работы не требуются.
SYNTH_OFFLINE— планируемый флаг явного офлайн-режима; в текущей версии его нет. Не полагайтесь на него в инструкциях по установке.web_searchиweb_fetchтребуют интернета. В закрытом контуре их можно ограничить egress-политикой; на чат и файловые инструменты это не влияет.- Модели не скачиваются при установке Synth и не входят в бандл.