Что такое структурированные выходы
По умолчанию LLM пишет связный текст. Но бизнес-системе нужен не текст, а поля: «сумма — 1 200 000 ₽, срок — 14 дней, тема — перенос срока поставки». Структурированный выход — семейство режимов, при которых модель обязана ответить объектом строго по описанной схеме: JSON Schema с типами полей, обязательностью и перечислениями допустимых значений.
Технически это обеспечивается по-разному: function calling — модель «вызывает функцию» с готовыми аргументами по схеме (поддерживается API GigaChat и YandexGPT); guided decoding — сервер инференса ограничивает генерацию грамматикой схемы (guided_json в vLLM, режим структурных ответов в Ollama); библиотеки-обёртки собирают то же самое поверх обычных вызовов с валидацией и повторами.
Зачем это бизнесу, а не только разработчикам
- 1С получает готовые данные: классификатор обращений возвращает код темы и приоритет — робот сразу создаёт задачу, без «понимания» текста.
- RPA-сценарии: робот извлекает из письма реквизиты (номер, суммы, даты) по схеме — и заполняет форму учётной системы.
- Обработка документов: после OCR модель размечает документ типизированными полями; ошибочные значения отсеиваются валидацией схемы.
- Меньше «галлюцинаций формата»: модель не имеет права ответить анекдотом вместо JSON — отклонение от схемы перехватывается на уровне генерации или валидации.
- Тестируемость: ответы можно автоматически проверять на соответствие схеме и на попадание значений в справочники — QA перестаёт быть ручным.
Как применяем: этапы и схема
- Проектирование схемы. Описываем целевой JSON: поля, типы, обязательность, перечисления. Правило: схема — из потребности системы-потребителя (1С, робот), а не из того, «что модель захочет рассказать».
- Выбор механизма. Облачный сценарий — function calling GigaChat/YandexGPT; локальный — guided decoding vLLM или структурный режим Ollama; смешанный — библиотечная обёртка с валидацией.
- Промпты и примеры. В системный промпт кладём описание полей и few-shot примеры заполнения — включая случаи «данных нет» (пустые значения вместо выдуманных).
- Валидация и повторы. Слой на FastAPI: ответ проверяется схемой; при провале — управляемый повтор с указанием ошибки, максимум 2 попытки, дальше — честный отказ в очередь на оператора.
- Справочники и линтеры. Значения сверяем со справочниками 1С (темы, склады, контрагенты); расхождения логируются и возвращаются в тюнинг промптов.
- Приёмка. Метрика — доля валидных по схеме ответов и доля корректных значений на контрольной выборке; фиксируем в акте.
Текстовая схема: запрос → FastAPI-сервис → промпт + JSON-схема → LLM (function calling / guided decoding) → валидация схемой → сверка со справочниками → потребитель (1С, робот, портал).
| Формат | Цена | Срок |
|---|---|---|
| Проектирование схем и контракта | от 90 000 ₽ | 3–5 рабочих дней |
| Пилот: 2–3 сценария со структурными ответами | от 480 000 ₽ | 4–6 недель |
| Промышленный контур: валидация, мониторинг доли отказов | 0,9–1,2 млн ₽ | 4–6 недель |
| Сопровождение | от 50 000 ₽/мес | ежемесячно |
Совместимость с нашим стеком
Структурные ответы — мост между LLM и системами заказчика. Потребители: 1С (HTTP-сервис + JSON — схема в гайде «Как интегрировать LLM в 1С»), RPA-роботы, порталы. Генераторы: GigaChat API и YandexGPT с function calling, локальные модели через vLLM (guided_json) или Ollama. Слой валидации и повторов — на FastAPI с Pydantic: схема описывается один раз и работает на обе стороны — модели и потребителя.
С RAG связка тоже прямая: найденные фрагменты передаются модели вместе со схемой — модель цитирует источники тоже структурно (массив ссылок), и интерфейс показывает их кнопками, а не текстовой кашей.
Лицензии и импортозамещение
Сам режим структурных ответов не лицензируется — это функция API или сервера инференса. Выбор контура свободен: российские API (GigaChat, YandexGPT) с обработкой данных на стороне оператора по договору, либо полностью локальный вариант — vLLM/Ollama с открытыми моделями, где ничего не покидает периметр. Открытые библиотеки валидации (Pydantic — MIT) и обёртки структурных ответов — тоже MIT/Apache.
Для госсектора это означает: структурный ИИ-контур собирается целиком из российских или открытых компонентов; в реестровых документациях фиксируем состав — API оператора или поставка локального инференс-сервера как изделие.
Тонкости, которые всплывают в проектах
Первая — «данных нет» ≠ ноль: если в документе нет суммы, модель обязана вернуть пустое значение, а не придумать; это лечится примерами и запретом выдумывать в схеме (nullable-поля). Вторая — перечисления держим короткими: чем больше вариантов в enum, тем чаще модель путается; широкие темы рубим на два уровня. Третья — ретраи с умом: бесконечные повторы маскируют проблему данных; после двух неудач — оператору. Четвёртая — версия схемы: как любой контракт, схему версионируем, иначе обновление 1С и промпта разъедутся. Проверку «поняла ли модель схему» делаем до интеграции — это дешевле, чем отладка в бою.
Пример: разбор обращений граждан в заявки
Покажем механику на типовом сценарии. Ведомство принимает обращения через портал и почту; сегодня оператор вручную переносит их в систему. Со структурными выходами контур выглядит так: текст обращения уходит в сервис, модель возвращает объект по схеме — тема (из справочника из 40 значений), подведомственность, срочность, ФИО заявчика, суть в двух предложениях, ссылки на упомянутые документы. Схема жёсткая: недопустимых тем не существует физически — значение либо из перечисления, либо поле пустое и обращение уходит оператору.
Слой валидации делает остальное: ФИО сверяется с маской, срочность — с правилами (обращения с ключевыми словами про угрозу жизни получают высший приоритет всегда, независимо от мнения модели), дубликат проверяется по последним обращениям того же заявителя. Результат: оператор получает не текст, а готовую карточку — подтверждает и отправляет; время обработки падает с минут до секунд, а спорные случаи честно всплывают в очередь ручной обработки.
Метрики такого контура прозрачны: доля ответов, прошедших схему с первой попытки; доля полей, подтверждённых оператором без правок; доля эскалаций. Они снимаются автоматически и показывают реальное качество — в отличие от «модель кажется умной».
Про эволюцию схемы: требования к полям меняются — появляются новые темы обращений, новые разрезы аналитики. Поэтому схему мы версионируем с первого дня: поле «версия» в ответе сервиса, обратная совместимость минимум на одну версию назад, миграционные заметки для потребителей. 1С-команда обновляет обработку по расписанию, а не в авральном порядке в день релиза.
И про мониторинг: доля валидных с первой попытки, среднее число повторов, доля эскалаций на оператора — эти три цифры на дашборде рассказывают о здоровье контура больше, чем любые обсуждения. Их же мы фиксируем в акте приёмки как стартовые значения.
И про границы применимости: структурные ответы не превращают модель в «умную базу данных». Если задача сводится к точному извлечению по жёстким правилам без вариативности формулировок, честнее и дешевле может оказаться обычный парсер или OCR-контур. Модель подключают тогда, когда вход действительно свободный текст, — и тогда структурный выход делает результат машиновоспринимаемым.
Как стартуем
- Пришлите 2–3 сценария «текст → данные» (письма, обращения, документы) — набросаем схему за день.
- За неделю соберём прототип: модель + схема + валидация, прогон на ваших примерах с отчётом по доле валидных.
- Смета пилота — от 480 000 ₽ за 4–6 недель.
Цены сверены с каноном ответов для ИИ new-sst.ru — актуальны на сентябрь 2026.