Генерируйте структурированные JSON-схемы из образца данных с помощью ИИ, с автоматической самокоррекцией и интеллектуальной постобработкой.
Генерация схемы превращает необработанные данные сущности в типизированную аннотированную JSON-схему, которая точно определяет, какую информацию извлекать в ходе обогащения. Вместо того чтобы писать схемы вручную, вы вставляете образец JSON и позволяете ИИ проанализировать структуру, определить типы, назначить области экспертизы и предложить улучшения.
Генерация — это не один большой промпт, а последовательность небольших узконаправленных вызовов, большинство из которых выполняются параллельно. Именно это позволяет маленьким и дешёвым моделям выдавать пригодную схему: каждый вызов отвечает на один узкий вопрос о материале, который целиком помещается у него перед глазами.
"8.275 h" становится half_life_seconds: 29790), а дата, которую не вмещает ни один встроенный тип, — в целочисленный год. Каждое встреченное значение должно подтвердить это, иначе свойство остаётся текстом. Сохраняется именно переписанный образец.{"en": "...", "fr": "..."}) сворачиваются в одно многоязычное значение.Каждый шаг повторяется самостоятельно (3 попытки), и его ответы накапливаются между попытками, поэтому модель, отвечающая фрагментами, всё равно сходится к результату. После этого шаг принимает то, что получил, а пропуски заполняются детерминированно — слабая модель ухудшает описания, но не срывает генерацию. Прервать весь запуск могут только идентификация и маршрутизация по домену экспертизы. Каждый вызов тарифицируется и логируется как отдельный промпт, поэтому запись показывает, на что именно и сколько было потрачено.
Вместо одного образца вы можете передать несколько образцов сущности одного типа — тогда схема охватывает объединение их полей, всё, что отсутствует в каком-либо образце, становится допускающим null, а встречающиеся в них значения превращаются в реальные примеры. Имена полей должны совпадать: образцы, описывающие сущности разных типов, отклоняются, как и объекты внутри массива, не имеющие ни одного общего поля, поскольку тогда не останется ничего, что позволяло бы идентифицировать их строки. Редактор образцов укажет на любое такое расхождение до того, как вы потратите генерацию.
Значения, содержащие собственную единицу измерения, преобразуются в числа до вывода схемы, поскольку столбец из "8.275 h" и "85 ms" нельзя отсортировать, отфильтровать по диапазону или агрегировать. Единица измерения переносится в имя свойства (half_life_seconds), нечисловая замена вроде "stable" становится null, а даты ранее 1 года превращаются в целочисленный год (отрицательный для дат до н. э.), который не способен хранить ни один тип даты и который текст сортирует неправильно. Панель образца обновляется соответствующим образом, поэтому всегда показывает образец, описываемый схемой. Всё, что преобразование не может прочитать с уверенностью, остаётся точно таким, каким вы его написали.
Поскольку каждый шаг отвечает на один узкий вопрос, и исправление может быть узким: валидатор шага сохраняет всё пригодное из полученного и повторно запрашивает только недостающее. Ничего не генерируется с нуля, поэтому частично верный ответ — это прогресс, а не потраченная впустую попытка.
Восемь правил валидации по-прежнему применяются к собранной схеме как финальная проверка: корректность типов, назначение областей экспертизы, целостность ссылок, полнота. На этом этапе они служат страховкой, а не механизмом исправления. Подробнее о каждом правиле — в руководстве Правила валидации.
Сгенерированная схема — это больше, чем простое определение типов. Каждое свойство включает метаданные, которые направляют процесс обогащения:
Тип схемы JSON (string, number, integer, boolean, array, object)
Контекстное описание, которое указывает ИИ, какую информацию искать
Какая экспертная область (финансовая, нормативная и т. д.) предоставляет это значение
Входит ли это поле в состав того, что идентифицирует экземпляр. Ключи выполняют сразу две задачи: они нацеливают промпт обогащения на нужную сущность, и именно по ним слияние сопоставляет элементы массивов. При этом ключ может допускать null — уточнитель, различающий похожие соседние элементы, остаётся идентифицирующим, даже если у целых семейств он действительно отсутствует
Если значения строки берутся из небольшого, полностью перечислимого набора (статусы, оценки, коды классификации), генерация предлагает его элементы — в том написании, которое используется в ваших образцах, — чтобы обогащение не соскользнуло к синониму
Может ли поле быть null — поля, не допускающие null, обязательны для внесения в базу данных
Должно ли поле обогащаться на нескольких языках
Оставить ли исходное значение без изменений во время обогащения
Реалистичные примеры значений, которые направляют ИИ к правильному формату
Машинно проверяемая форма строковых значений: некорректные ответы отклоняются и запрашиваются заново, а сохранённые значения приводятся к канонической форме. Генерация назначает только тот именованный формат (date, time, date-time, uuid, email, uri, ipv4, ipv6), который подтверждён образцами: регулярное выражение — это предсказание о значениях, которых ещё никто не видел, и ошибочное выражение сломает каждое обогащение поля, поэтому его вы добавляете сами в редакторе
ИИ группирует свойства схемы по областям экспертизы на основе их семантического значения. Например, схема фармацевтической компании может иметь такие области, как «Финансовый аналитик», «Эксперт по нормативным вопросам» и «Корпоративная информация». Эти области используются стратегией мульти-экспертизы для выполнения параллельных специализированных вызовов LLM ради более глубоких результатов.
Количество областей экспертизы автоматически ограничивается на основе числа свойств ваших данных, чтобы предотвратить чрезмерное дробление:
После сборки фрагментов детерминированные шаги решают всё, что не следует оставлять модели, — опираясь на ваши фактические входные данные:
Поле, отсутствующее или равное null хотя бы в одном образце, становится обнуляемым независимо от ответа модели, поэтому неизвестное значение — это допустимый ответ, а не сбой качества данных. Образцы могут только расширять: несколько образцов доказывают наличие поля лишь для этих экземпляров, но никогда — для всех экземпляров типа; поэтому модель тоже голосует, и оба результата объединяются по ИЛИ.
Несовместимые атрибуты согласуются по правилам, а не повторным запросом: preserve побеждает multilingual и nullable, сохранившийся закрытый словарь снимает multilingual, а ключевое свойство никогда не сохраняет enum.
Для каждого объекта внутри массива гарантируется хотя бы одно ключевое свойство — именно по нему слияние выполняет дедупликацию, поэтому элемент массива без ключа сделал бы объединение ответов двух моделей невозможным.
Все уникальные области экспертизы собираются из схемы для метрик и настройки стратегии.
Схема описывает саму себя на некотором языке — имена типов, описания свойств, названия доменов экспертизы и подсказки. Это не то же самое, что языки, на которые вы обогащаете. Укажите язык при генерации или не указывайте — тогда решает язык имён свойств в вашем образце: французский образец больше не порождает английскую схему. Выбор сохраняется, поэтому последующие правки ИИ продолжают писать на том же языке, а не скатываются обратно к английскому.
Чтобы начать, примеры данных не нужны. Опишите тип сущности — при желании приложите документы как основу или включите веб-поиск для сверки с реальностью, — и платформа сама составит примеры. Запросите несколько — и получите несколько разных экземпляров, а не один и тот же в других формулировках.
Первый образец в том же запросе определяет и то, о ком будут остальные. Если N раз независимо просить «пример», вы стабильно получите один и тот же известный экземпляр N раз; именно перечисление всего состава заранее делает образцы разными.
Остальные образцы генерируются параллельно по структуре образца 1 как по контракту, а не просто с просьбой ей соответствовать, — поэтому вариант не может переименовать, добавить или убрать поле. Те, что всё же вернулись дублирующимися или некорректными, запрашиваются заново в ограниченной волне повторов, и если полное количество не достигнуто, вам об этом сообщат, а не молча выдадут меньше.
По умолчанию язык — auto: он определяется по словам вашего запроса, а затем по приложенному документу. Добавленные вами дополнительные инструкции обязательны к исполнению: они либо выполняются, либо ответ сообщает, что именно и почему выполнить не удалось, — но никогда не отбрасываются молча.
Прочитайте имя свойства в контексте родительского объекта и сосчитайте, сколько разных вещей оно может запрашивать. Одна — значит, всё ясно. Две или больше — и каждая модель остановится на своей, так что в колонке смешаются ответы на разные вопросы: annual_revenue у компании может относиться к группе или к самой сущности, быть валовой или чистой, в одной из нескольких валют. Ни одной — имя того, чего у этого родителя попросту нет, — ещё хуже: искать нечего, и модель выдумывает значение.
Генерация борется с этим дважды: сам промпт требует имён, допускающих единственное прочтение, а последующий проход по готовой схеме отмечает те, что этому всё же не соответствуют. На этом этапе средство исправления — переименование: описания были сгенерированы из имён, поэтому описание не может устранить неоднозначность имени, из которого оно получено, и от схемы пока ничего не зависит. Генерация образца выполняет ту же проверку для образца и применяет переименования ещё до того, как вы его увидите. Свободный текст — описание, резюме, заметки — никогда не помечается: формулировки различаются, но заданный вопрос ясен.
Отмеченные свойства получают значок «неоднозначно» в редакторе рабочих процессов со списком прочтений, которые допускает имя. Как только схема запущена, средством исправления становится переписанное описание: оно закрепляет одно значение, не нарушая контракт данных. Полный набор критериев и способов исправления см. в руководстве Проверка неоднозначности.
При генерации образца сущности из описания вы можете включить «Использовать веб-поиск», чтобы модель искала актуальные факты в интернете, а не полагалась только на свои обучающие данные. Это даёт более свежие и точные значения образца — особенно для быстро меняющихся фактов, таких как цены, численность персонала или недавние выпуски. Эта опция доступна только для моделей, чей провайдер поддерживает встроенный веб-поиск, и вызовы поиска тарифицируются провайдером, как и любое другое использование модели.
После генерации вы можете изменять схемы с помощью инструкций на естественном языке. Введите команду, и ИИ применит изменение, сохраняя существующую структуру схемы. Каждое редактирование также создаёт 5 рекомендаций по дальнейшим улучшениям.
Добавить целочисленное поле employee_countСоздать вложенный объект адреса с городом и странойДобавить французские описания ко всем текстовым полямОпределите ссылку на материнскую компанию с помощью $defsОтметьте поле веб-сайта как допускающее nullПравки ИИ проверяются с помощью части правил генерации (проверка типов, целостность ссылок, согласованность экспертизы) без сравнения с входными данными, поскольку вы можете намеренно добавлять или удалять поля.
И генерация схемы, и редактирование с помощью ИИ дают 5 целевых предложений, охватывающих разные категории улучшений:
Предложения появляются в виде кликабельных чипов в Workflow Editor — нажмите на один из них, чтобы автоматически заполнить поле AI-правки и применить её.