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

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

Загружаем изображение…

Состояние системного провайдера языковых моделей и синхронизация каталога.

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

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

Как платформа ведёт модели системного провайдера

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

ВидЗначениеЧто делать
Нейтральная строкав каталоге N моделейНичего: каталог доступен.
Предупреждениешлюз ответил пустым каталогом: моделей этого класса в контуре нетПроверьте, что в контуре развёрнуты модели нужного класса.
Предупреждениешлюз не ответил каталогом, состав моделей оставлен без измененийПовторите синхронизацию; прежний состав сохранён.
Предупреждениекаталог недоступен N проходов подряд — состав моделей не менялсяОбратитесь к тому, кто отвечает за контур.
Предупреждениеадрес шлюза задан неверно — …В интерфейсе исправить нельзя: адрес задают при развёртывании.
Предупреждениезавести провайдера не удалось, платформа повторит попыткуВ интерфейсе исправить нельзя: дождитесь следующей попытки или обратитесь к службе эксплуатации.

Строка показывает время последнего прохода и интервал опроса. Кнопка Синхронизировать сейчас перечитывает каталог немедленно; при успехе платформа показывает уведомление Каталог перечитан, при отказе — Не удалось перечитать каталог. Интервал опроса в интерфейсе не настраивается.

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

Примечание. Если адрес контура не задан при развёртывании, системного провайдера в инсталляции нет: строка состояния не показывается, а состав провайдеров ведут вручную.

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

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

ШаблонЧто подставляетсяЧто задать вручную
Уника 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Область доступа; при авторизации через OAuth поле обязательно

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

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

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

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

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

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

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

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

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

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

Системный промпт ограничен 50 000 символов. Если текст длиннее, платформа не сохраняет провайдера и сообщает о превышении предела.

Загружаем изображение…

Секция «Параметры генерации» в карточке LLM-провайдера

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

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

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

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

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

{
  "workspace_id": "GENERAL"
}

Платформа применяет дополнительные поля тела запроса ко всем типам узлов сценария, а не только к чату и узлам Шаг ИИ и Агент. Поле 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.

Платформа проверяет связку при сохранении: для off должны быть настроены request.off.fields или модельная заплатка request.modePatches.off, для остальных режимов — request.mode.path или заплатка соответствующего режима. Удалить mapping, который нужен уже привязанной reasoning-модели, нельзя. Выбранный уровень применяется одинаково к прямому LLM-вызову и к генерации ответа после RAG-поиска.

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

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

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

У системной строки окно Удалить LLM-провайдер? предупреждает, что платформа заведёт провайдера снова на следующем проходе. Чтобы строка не возвращалась, адрес контура убирают при развёртывании.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что дальше