Разделы документации
Администрирование

Свои LLM-провайдеры

Подключение произвольного OpenAI-совместимого или LiteLLM-провайдера — имя модели, base URL, ключи и переменные окружения.

Когда это нужно

Пользовательская модель («Админка → Языковые модели → Пользовательская модель») подключает провайдера, которого нет в стандартном списке: корпоративный шлюз, vLLM-кластер, GigaChat, YandexGPT или любой сервис с OpenAI-совместимым API. Под капотом Charo использует LiteLLM, поэтому поддерживается всё, что поддерживает LiteLLM.

Формат имени модели

Имя модели задаётся в формате LiteLLM — провайдер/имя-модели:

openai/gpt-4o                # любой OpenAI-совместимый API
openai/GigaChat-2-Max        # GigaChat через совместимый шлюз
ollama/qwen2.5:14b           # локальный Ollama

Для OpenAI-совместимых серверов префикс всегда openai/ — он означает протокол, а не компанию: конечная точка задаётся полем Base URL.

Поля формы

ПолеЧто указать
Названиекак провайдер будет виден администраторам
Имя моделив формате провайдер/имя-модели (см. выше)
Base URLадрес API, например https://gigachat.devices.sberbank.ru/api/v1 или http://vllm:8000/v1
API-ключключ провайдера; для локальных серверов можно оставить пустым
Переменные окружениядополнительные параметры LiteLLM (см. ниже)

Переменные окружения

Некоторым провайдерам нужны дополнительные параметры — они передаются как переменные окружения LiteLLM в формате КЛЮЧ=значение, по одной на строку:

AZURE_API_VERSION=2024-06-01
VERTEXAI_LOCATION=europe-west4

Какие переменные понимает конкретный провайдер — в справочнике LiteLLM: найдите своего провайдера и раздел «Environment Variables».

Типовые ошибки подключения

«Connection error» при проверке

Base URL недоступен из контейнеров Charo. Частые причины:

  • указан localhost — из контейнера это сам контейнер, а не хост-машина; используйте имя сервиса Docker-сети или IP-адрес хоста;
  • пропущен путь /v1 в конце URL (для OpenAI-совместимых серверов он обычно обязателен);
  • API доступен только из определённых сетей — проверьте с сервера командой curl.

«404 model not found»

Имя модели не совпадает с тем, что отдаёт сервер. Сверьтесь со списком моделей провайдера — для OpenAI-совместимых серверов его можно получить запросом GET {base_url}/models.

«401/403» при рабочих запросах, хотя проверка прошла

У ключа не хватает прав на выбранную модель, либо шлюз требует дополнительный заголовок — передайте его через переменные окружения LiteLLM (см. справочник провайдера).

Ответы обрываются на середине

Уменьшите максимальную длину ответа в настройках модели или увеличьте лимиты на стороне провайдера/шлюза (таймауты обратного прокси — частая причина для самостоятельно развёрнутых vLLM).