Decision-модели¶
Decision-модель — это компактная модель, которая быстро принимает решения: отвечает «да/нет», выбирает один вариант из набора или ставит оценку по шкале. Она не пишет текстовых ответов пользователю, а обслуживает рутинные решения внутри платформы — дёшево и без вызова большой модели.
Что это¶
Decision-модели — отдельный класс моделей (семейство System One: Clef, Jev и
совместимые с ним). Вместо генерации текста модель получает state (текст или
структуру) и типизированные вопросы, а возвращает вероятности за один
forward-pass.
| Тип вопроса | Что спрашивает | Что возвращает |
|---|---|---|
noul |
Бинарный вопрос «да/нет» | Вероятность «да» (0–1) |
choice |
Выберите один вариант из набора | Выбранный вариант и вероятности по всем вариантам |
score |
Поставьте оценку | Позицию на шкале и вероятности по всем позициям |
Для вопросов choice и score число вариантов — от 2 до 26.
Это не чат-модель
Decision-модель отвечает только на структурированные вопросы и не генерирует свободный текст. Для ответов пользователю рядом подключается обычная LLM — decision-слой лишь снимает с неё простые решения.
Где используется¶
- Быстрые ответы. В микро-каскаде decision-слой подключается между эмбеддингами и микро-LLM: отвечает на вопрос-выбор и отдаёт метку с уверенностью. Подробнее — Маршрутизация и быстрые ответы.
- Классификация при маршрутизации. Когда словарный классификатор неуверен,
decision-модель определяет категорию запроса —
coding,researchилиchat. - Маршрутизация внешних событий. Decision-модель может выбрать шаблон агента для пришедшего события ( События и автоматизация).
Как подключить¶
Протокол задаётся типом провайдера — путь к сервису провайдер добавляет сам:
Тип (--type) |
Адрес вызова | Для чего |
|---|---|---|
decision |
POST {baseUrl}/decisions |
SystemOne-совместимые API (RouterAI и другие), авторизация по Bearer |
systemone |
POST {baseUrl}/v1/systemone |
Локальный Ollama |
baseUrl — базовый адрес сервиса.
Того же провайдера можно добавить через CLI:
# SystemOne-совместимый API (тип decision)
synth config provider add \
--name routerai --type decision \
--url https://routerai.ru/api/v1 \
--api-key sk-xxx \
--model clef-flash
# Локальный Ollama (тип systemone)
synth config provider add \
--name ollama-local --type systemone \
--url http://localhost:11434 \
--model clef-flash
Подробнее о провайдерах и моделях — Провайдеры и модели.
Эскалация¶
У decision-слоя можно задать вторую пару «провайдер/модель» — тир эскалации.
Работает единый каскад primary → escalation:
- основная модель дала низкую уверенность, невалидную метку, не ответила или упала — запрос уходит на тир эскалации;
- если и там решение не принято, каскад идёт дальше (fail-safe), а не отдаёт сомнительный результат пользователю.
Пара эскалации необязательна: если она не задана, каскад состоит из одной основной модели.
Порог уверенности и точечное отключение¶
Решение принимается только при уверенности не ниже порога
confidenceThreshold (по умолчанию 0.6). Ниже порога, при ошибке или таймауте
уровень считается неуверенным и каскад идёт дальше — безопасный откат к
прежнему поведению.
В настройках сессии есть тумблер «Decision-уровень» (decisionFirst) — это
точечное отключение: выключение принудительно отключает decision-слой в
конкретной сессии, а включение наследует глобальную настройку.
Настройка¶
Общий decision-слой настраивается в админ-разделе «Decision-модели»:
| Параметр | Назначение |
|---|---|
| Мастер-выключатель | Включить или выключить decision-слой целиком |
| Провайдер и модель | Основная пара «провайдер/модель» |
| Модель эскалации | Необязательная вторая пара — тир primary → escalation |
| Порог уверенности | Ниже порога — эскалация и откат |
| Статистика | Счётчики decision-каскада; сброс — кнопкой |
Настройки применяются без перезапуска: изменение сразу подхватывают быстрые ответы, маршрутизация и маршрутизация внешних событий.
API¶
Те же настройки и статистика доступны по API (runtime, изменения без
перезапуска; в командном режиме изменения — за ADMIN):
| Метод | Путь | Назначение |
|---|---|---|
GET |
/api/v2/settings/decision |
Текущие настройки decision-слоя, значения по умолчанию и признак переопределения |
PUT |
/api/v2/settings/decision |
Изменить настройки (live-применение); невалидное значение — 400 |
DELETE |
/api/v2/settings/decision |
Сбросить настройки к значениям по умолчанию |
GET |
/api/v2/settings/decision/metrics |
Снимок агрегатных метрик decision-слоя {metrics, ts} |
DELETE |
/api/v2/settings/decision/metrics |
Сбросить накопители метрик (обнулённый снимок) |
Снимок метрик выглядит так:
{
"calls": 128,
"handled": 104,
"fallback": 24,
"escalated": 6,
"attempts": { "primary": 128, "escalation": 11 },
"rejected": {
"ok": 104,
"low_confidence": 18,
"invalid": 2,
"no_answer": 1,
"no_provider": 0,
"error": 3
},
"by_model": {
"routerai/clef-flash": {
"calls": 128,
"handled": 98,
"latency_ms_avg": 142,
"latency_ms_max": 810
}
}
}
calls— обращения к каскаду;handled— принятые решения;fallback— отказы;escalated— принятые на тире эскалации.attempts— число попыток по тирам;rejected— распределение статусов попыток.by_model— разбивка по моделям (провайдер/модель) с числом обращений, принятых решений и латентностью (latency_ms_avg/latency_ms_max).
Метрики ведутся в памяти и сбрасываются при перезапуске платформы.
Настройки конфигурации
Стартовые значения decision-слоя задаются секцией decision в конфигурации —
см. Конфигурация.
Что дальше¶
- Маршрутизация и быстрые ответы — общий поток запроса и каскад моделей.
- События и автоматизация — маршрутизация внешних событий.
- Провайдеры и модели — подключение провайдеров и моделей.
- Конфигурация — секция
decisionи её поля.