Провайдеры языковых моделей

Провайдер языковых моделей (LLM) — сохранённое в платформе подключение к сервису, который отдаёт ответы моделей: адрес эндпоинта, способ авторизации, параметры запроса. Провайдеров вы ведёте в разделе Администрирование → LLM и сценарии → Провайдеры LLM (/settings/administration/llm/providers). Провайдер сам по себе не даёт ассистенту модель: чтобы модель появилась в интерфейсе, её нужно завести в реестре AI-модели и привязать к провайдеру — см. Модели и политики. Ключи авторизации платформа хранит в зашифрованном виде и никогда не возвращает в браузер. Из коробки платформа работает с провайдерами Unica AI, которые входят в поставку; если внутри периметра компании уже развёрнут централизованный OpenAI-совместимый API языковых моделей, подключите его кастомным провайдером — платформе всё равно, кто стоит за эндпоинтом.

Что вам понадобится

  • глобальная роль admin: раздел Администрирование открыт только ей;
  • адрес эндпоинта генерации у выбранного сервиса;
  • ключ авторизации или пара client_id:client_secret для OAuth;
  • для закрытого контура — идентификатор рабочего пространства во внешнем сервисе.

Как подключить провайдера языковых моделей

Нажмите Создать провайдер: платформа открывает окно Новый LLM-провайдер с пятью секциями — Основные настройки, Подключение, Модель и доступ, Параметры генерации, Расширенные параметры. Начните с поля Шаблон провайдера: платформа подставляет адреса и режимы, характерные для выбранного сервиса, а вы меняете только отличия.

ШаблонЧто подставляетсяЧто задать вручную
Unica AIБез авторизации, поле workspace_id в дополнительных параметрахАдрес генерации
Кастомный провайдерOpenAI-совместимый контракт и BearerАдреса, ключ, поля контракта

Шаблон — только заготовка: платформа хранит явные настройки провайдера, а не тип шаблона. Перезаполнение формы работает лишь при создании: у сохранённого провайдера смена шаблона не трогает адреса, ключ и параметры.

Шаблон Кастомный провайдер открывает три дополнительных поля, от которых зависит остальная форма.

ПолеЗначенияНа что влияет
Контракт APIOpenAI-compatible, Generic HTTPНабор полей тела запроса и разбор ответа
АвторизацияBearer / API key, OAuth, Без авторизацииНабор полей секции Подключение
Потоковый режимOpenAI SSE, ОтключёнПриходит ли ответ по частям

При контракте Generic HTTP платформа принудительно ставит потоковый режим Отключён: такой провайдер отдаёт ответ целиком.

Примечание. Если конструктор кастомных провайдеров выключен в инсталляции, шаблон называется Другой сервис, а поля Контракт API, Авторизация и Потоковый режим не отображаются.

Как заполнить подключение и авторизацию

Секция Подключение показывает ровно те поля, которые нужны выбранному режиму авторизации. Поле Endpoint генерации ответа обязательно всегда, поля Endpoint получения токена и OAuth scope появляются только при авторизации через OAuth.

ПолеЧто указать
Endpoint получения токенаАдрес выдачи access-токена: https://<хост>/oauth
Endpoint генерации ответаАдрес генерации: https://<хост>/v1/chat/completions
Authorization keyСекрет авторизации: Bearer-токен или пара client_id:client_secret в Base64 для OAuth
OAuth scopeОбласть доступа, если её требует сервис авторизации

Сохранённый ключ платформа обратно не отдаёт: в таблице провайдеров вместо него показан признак Ключ сохранён или Без ключа, а в форме поле остаётся пустым. Пустое поле при сохранении означает «оставить прежний ключ», введённое значение — заменить. Переход в режим Без авторизации удаляет ранее сохранённый ключ.

Важно. Переключатель Отключить проверку сертификата (для самоподписанных) в секции Модель и доступ включайте только для доверенного сервиса внутри контура.

Как открыть провайдера рабочим пространствам

Доступность провайдера задают два переключателя секции Модель и доступ. Провайдер активен решает, используется ли провайдер для новых запросов: отключённый провайдер сохраняет настройки, но не обслуживает запросы. Глобальный провайдер — доступен во всех рабочих пространствах снимает привязку к одному пространству.

Поле Модель по умолчанию задаёт модель, которая уходит в запрос, если вызывающая сторона не выбрала конкретную. У сохранённого провайдера платформа собирает список из моделей реестра, привязанных к этому провайдеру; у нового провайдера список приходит из шаблона или модель вводится вручную.

Основной путь другой: участник выбирает не провайдера, а модель, и модель определяет провайдера. Поэтому после создания провайдера откройте кнопкой AI-модели в шапке страницы реестр моделей и заведите записи каталога. Кнопка Политики LLM открывает страницу, где вы назначаете модель по умолчанию для ассистентов.

Как задать параметры генерации

Секция Параметры генерации задаёт значения, с которыми провайдер обращается к модели, когда ассистент или узел сценария (workflow) не задал свои. Набор полей одинаков для всех шаблонов провайдера.

ПолеДиапазонЧто делает
Системный промптТекстИнструкция, которая уходит в запрос перед сообщением участника
Температура0–2Вариативность ответа: ниже — стабильнее, выше — разнообразнее
Top P0–1Доля распределения, из которой выбираются токены
Presence penaltyот −2 до 2Штраф за повторное обращение к уже затронутым темам
Frequency penaltyот −2 до 2Штраф за повторение одних и тех же токенов
Ключ лимита ответаИмя поля APIКак называется лимит длины ответа в API: max_completion_tokens или max_tokens

Пустое поле означает «не передавать параметр». Само число лимита длины ответа в форме провайдера не задают: провайдер хранит только имя поля, а значение живёт в карточке модели реестра AI-модели. Тонкие настройки генерации участник задаёт в ассистенте — см. Ассистенты.

Карточка провайдера: секция «Параметры генерации» с полями «Системный промпт», «Температура», «Top P», «Ключ лимита ответа»
Секция «Параметры генерации» в карточке LLM-провайдера

Как настроить расширенные параметры запроса

Секция Расширенные параметры нужна, когда сервис ждёт поля, которых нет в форме, или когда провайдер умеет передавать режим рассуждений. Некорректный JSON в любом поле этой секции блокирует сохранение: платформа показывает ошибку и оставляет форму открытой.

Дополнительные поля тела запроса

Поле Дополнительные параметры JSON запроса принимает JSON-объект и добавляет в тело каждого запроса те его поля, которые платформа не заполнила сама.

Для провайдера Unica AI в этом поле обязателен workspace_id — идентификатор рабочего пространства во внешнем сервисе:

{
  "workspace_id": "GENERAL"
}

С версии 1.409 платформа применяет дополнительные поля тела запроса ко всем типам узлов сценария, а не только к чату и узлам Шаг ИИ и Агент. Поле stream из этого JSON не пробрасывается: режим потока задаёт сама платформа для каждого вызова.

Пять полей секции Расширенные параметры видны только у кастомного провайдера с контрактом Generic HTTP. Поле Дополнительные заголовки принимает JSON-объект с HTTP-заголовками, а поля Ключ модели, Ключ массива сообщений, JSON-path ответа и JSON-path токенов описывают, как собрать тело запроса и разобрать ответ.

Режим рассуждений

Переключатель Рассуждения включает поле Конфигурация рассуждений — JSON, который описывает, как передать провайдеру выбранный режим рассуждений и откуда прочитать текст рассуждений из ответа. Готовую заготовку подставляет кнопка Unica рядом с названием поля.

Конфигурация состоит из четырёх частей: request.off.fields уходит только в режиме off, request.mode.path получает выбранный режим, request.defaults применяется во всех режимах кроме off, а response.reasoningText задаёт пути к тексту рассуждений в обычном и потоковом ответе. Настройка провайдера отвечает только за транспорт рассуждений.

Примечание. Какие режимы рассуждений предлагаются участнику, задаёт карточка модели реестра AI-модели: флажок Модель поддерживает рассуждения и поле Конфигурация JSON.

Как отключить или удалить провайдера

Отключить провайдера можно переключателем в колонке Статус прямо из списка: платформа спрашивает подтверждение и предупреждает, что провайдер перестанет использоваться для новых запросов, а его настройки сохранятся. Платформа применяет изменение сразу, отдельного нажатия Сохранить не нужно.

Удаление доступно из меню строки списка и кнопкой Удалить провайдер внизу формы. Платформа блокирует удаление, пока провайдер связан с записями реестра AI-модели, с OCR-провайдерами или с другими настройками, и показывает, что именно мешает. Сначала перенесите зависимости на другого провайдера или удалите их.

Важно. ⚠️ Удаление провайдера необратимо: сохранённый ключ авторизации восстановить нельзя.

Если провайдера параллельно правит другой администратор, платформа не перезаписывает его изменения: при сохранении появляется сообщение «Провайдер был изменён в другой вкладке. Обновите данные и повторите изменения». Откройте провайдера заново и повторите правку.

Частые вопросы

Почему узел сценария сообщает, что провайдер вернул 400

Внешний сервис отклонил запрос до обращения к модели. В закрытом контуре чаще всего не хватает обязательного поля тела запроса. Проверьте:

  • в поле Дополнительные параметры JSON запроса задан workspace_id;
  • в поле Ключ лимита ответа указано имя, которое понимает API сервиса;
  • в дополнительных параметрах нет полей, которых сервис не знает.

Почему ответ приходит целиком, а не по мере генерации

Потоковый режим отключён на уровне провайдера или контракта. Проверьте:

  • у кастомного провайдера поле Потоковый режим установлено в OpenAI SSE;
  • контракт API не Generic HTTP — при нём поток недоступен;
  • сервис поддерживает потоковую отдачу по OpenAI-совместимому контракту.

Почему провайдер не отвечает после смены ключа

Новый ключ не сохранился или не подошёл сервису. Проверьте:

  • в таблице провайдеров у строки стоит признак Ключ сохранён;
  • для OAuth заполнены Endpoint получения токена и OAuth scope;
  • срок действия ключа у поставщика сервиса не истёк.

Почему модель провайдера не появилась у ассистента

Провайдер и реестр моделей — разные сущности. Проверьте:

  • модель заведена на странице AI-модели и привязана к этому провайдеру;
  • в карточке модели включён флажок Модель активна и доступна в реестре;
  • модель включена в блоке Модели ассистентов политики LLM.

Что дальше