OpenAI выходит на территорию Jev (API решений)

Опубликовано
7 октября 2026 г.
Продолжительность
8:01
Нажмите, чтобы загрузить плеер YouTube

Сообщение в поддержку с текстом «с моей карты было снято платеж дважды» должно поступить в команду по работе с платежами. Первое автоматическое действие — выбрать эту очередь. Проверка платежа и выдача возврата — это отдельные задачи.

API решений OpenAI может предоставить это небольшое суждение в форме, которую ваше приложение может прочитать. Дайте ему доказательства, определите разрешённые ответы и позвольте вашему коду решать, что произойдет дальше. В этом руководстве создается пример маршрутизации поддержки, расширяется идея для видимых повреждений продукта и объясняется, как оценить результат по отношению к Jev.

Оригинальный пошаговый обзор Mantis охватывает публичную бету. Документация OpenAI, проверенная 28 октября 2026 года, теперь описывает решения как общедоступные, все еще используя gpt-6-luna. Запрос ниже соответствует текущей справочной информации. Это проверенный документацией пример; ни один запрос API или бенчмарк не выполнялся во время подготовки этого руководства. Официальное руководство по решениям.

Определите решение перед выбором модели

Запишите действие, которое будет обрабатывать ответ. Для службы поддержки это может быть «создать тикет в одном из этих очередей». Затем определите, что обрабатывает каждая очередь и что происходит, когда сообщение не подходит.

Предлагаемое первое правило маршрутизации:

ОчередьЧто сюда относитсяПример для проверки
billingСуществующая проблема с оплатой, счетом или возвратом«С меня взяли оплату дважды за один заказ.»
technicalНеисправное поведение продукта, препятствующее его использованию«На оформлении заказа возникает ошибка до оплаты.»
otherЗапросы за пределами определенных очередей«Может кто-то обсудить партнёрство?»
needs_reviewНедостаточно деталей или противоречивые запросы«То, что вы починили, снова сломалось.»

Последняя категория добавлена для этого упражнения. Она предоставляет приложению явное место для размещения сообщения, которому требуется дополнительная информация. Отказ или ошибка запроса также нуждаются в запасном варианте, но ни один из них не является тем же самым, что и выбор модели. needs_review.

Не просите классификатор решать всю жалобу. Ему не нужно писать извинение, проверять платежного процессора или разрешать возврат, чтобы выбрать следующую очередь. Пример с дублирующимся списанием Рона ясно показывает эту границу: действительная категория полезна только в том случае, если она направляет клиента к кому-то, кто может решить проблему. Аккуратно оформленный неправильный ответ всё равно неверно перенаправляет заявку.

Выберите тип ответа, который подходит для задачи

В системе Decisions существует три типа вопросов. Их формы определены заранее, что избавляет ваше приложение от необходимости интерпретировать эссе как инструкцию по маршрутизации.

ТипИспользоватьКак читать это
predicateПроверить одно условие, например, запрашивает ли текст возвратВероятность того, что условие истинно
choiceВыбрать отдел из указанных альтернативВыбранное значение и вероятности по вариантам
scoreПрименить упорядоченные уровни, такие как степень серьезности проблемыОценка, полученная на основе вероятностей уровней

Отдел — это выбор, потому что «биллинг» не более и не менее серьёзен, чем «технический». Степень серьёзности ошибки имеет порядок: косметический дефект, проблема с обходным решением и полная блокировка относятся к разным уровням. Источник противопоставляет слегка смещённую кнопку оформлению заказа, которое не может принимать платежи. Руководство должно объяснять эту разницу, а не оставлять значение «серьёзно» на усмотрение каждого звонка.

Текущая документация определяет оценку как среднее значение индексов уровней с учётом вероятностей, поэтому она может находиться между уровнями. Это не обязательно одна из меток. Decisions предоставляет эти узкие ответы; используйте другой шаблон API, когда требуется письменное объяснение или индивидуально извлечённый объект. Официальные рекомендации по типу вопроса.

Для предиката вероятность вводится в вашу политику применения. В исходном коде нет порога, который был бы подходящим для каждой задачи. Ошибка, из-за которой тикет попадает к коллеге, отличается от ошибки, которая запускает внешнюю транзакцию. Начните с записи ответов для проверки и принимайте решение об автоматизации только после проверки репрезентативных примеров.

Прежде чем начать: подготовьте аккаунт и попробуйте песочницу.

Вам нужен проект OpenAI API с доступной оплатой и ключ API для этого проекта. В исходном коде явно указано, что кредиты, полученные командой для другого использования OpenAI, не могли быть перенесены на этот эксперимент. Проверьте соответствующий баланс API, вместо того чтобы предполагать, что существующая подписка или рекламное начисление покрывает вызовы.

Откройте Площадка для принятия решений попробуйте ввод и вопрос, прежде чем подключать систему тикетов. Используйте определения отделов выше и несколько сообщений с известными ответами. Сохраняйте эти же примеры для теста API, чтобы не изменять задачу и интеграцию одновременно.

Песочница решений с полем подсказки и выбранным типом вопроса «Предикат».
Интерфейс площадки в 3:40. Записанный интерфейс показывает поле для подсказки и селектор типа вопроса. На этом записанном экране выбран Predicate; упражнение по маршрутизации ниже использует Choice. Он не показывает возвращенный ответ. Откройте изображение для просмотра в полном размере.

Для скрипта создайте ключ через управление ключами API платформы и сделайте его доступным как OPENAI_API_KEY в среде выполнения запроса. Держите секрет подальше от примера статьи, исходного репозитория и браузерного клиента. Документы OpenAI quickstart описывают этот стандарт переменных окружения и настройку SDK. Официальная настройка API.

В пошаговом руководстве указана версия пакета Python 3.26. Рассматривайте это как деталь настройки эпохи бета-версии, а не как текущее требование минимальной версии. Пример ниже использует HTTP-эндпоинт напрямую и требует терминала с curl, поэтому не зависит от указанной версии SDK. Если вы используете Python, следуйте текущему Справочнику решений Python для client.decisions.create и проверьте установленный SDK перед отладкой тела запроса.

Отправьте один запрос маршрутизации поддержки

С OPENAI_API_KEY установите в вашей терминальной среде, выполните этот запрос. Он выводит ответ и не создает тикет, не перемещает письмо и не производит возврат средств.

curl https://api.openai.com/v1/decisions \
  -H «Авторизация: Предъявитель $OPENAI_API_KEY" \
  -H «Тип содержания: application/json» \
  -d '{
    "model": "gpt-6-luna",
    "input": "С моей карты произошло двойное списание за один и тот же заказ.",
    "questions": [{
      "type": "choice",
      "name": "support_queue",
      "instructions": "Выберите команду, ответственную за решение проблемы. Используйте needs_review, если сообщение содержит недостаточно информации или содержит противоречивые запросы.",
      "choices": [
        {"value": "billing", "description": "Существующие платежи, счета или запросы на возврат."},
        {"value": "technical", "description": "Неисправное поведение продукта, включая ошибку при оформлении заказа перед оплатой."}
        {"value": "другое", "description": "Явный запрос, не относящийся к вопросам выставления счетов и технической поддержке."},
        {"value": "требует_проверки", "description": "Недостаточно деталей или противоречивые запросы."}
      ]
    }]
  }'

Структура поля и конечная точка проверены в соответствии с справочником create-decision. Формулировка и определения очереди являются предложенным упражнением поддержки.

Ответ содержит answers. Сопоставьте ответ с support_queue, проверьте его type, а затем проверьте choice, confidence, и probabilities для выбора ответа. Предполагаемая метка для этого теста billing; здесь не указывается числовая уверенность или возвращаемая метка, потому что этот пример не был выполнен.

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

Разделяйте суждение и отказ или неудачный запрос

Ответ может содержать ответ с type: "refusal" вместо классификации. Другие вопросы в том же запросе все еще могут иметь ответы. Проверьте тип перед чтением полей, специфичных для выбора. Официальная схема ответа.

Полезная политика применения для этого упражнения:

РезультатПредложенный подход к обработке
Ожидаемый выбор с доказательствами, которые вы подтвердилиЗапишите решение и назначьте соответствующую очередь
needs_reviewОставьте заявку на триаж или запросите недостающие детали
Низкая уверенность в рамках вашей протестированной политикиОтправьте на проверку, а не угадывайте очередь
refusalЗапишите, что классификация не была предоставлена, и используйте резервный вариант
Ошибка аутентификации, транспортировки или запросаОставьте заявку необработанной и зафиксируйте сбой

Эта таблица является предложением по проектированию приложения, а не поведением, автоматически предоставляемым Decisions. API не знает ваши идентификаторы очередей, было ли уже обработано другими работниками, или приведет ли повторная попытка вашей последующей операции к дублированию.

Для первой реализации избегайте тихого переключения на биллинг, когда ответ невозможно разобрать. Это сделает так, что неудачные запросы будут выглядеть как успешные классификации. Сохраняйте «нет ответа» видимым, чтобы вы могли отличить проблему интеграции от плохого определения категории.

Протестируйте неудобные сообщения перед автоматизацией почтового ящика.

Начните с известных случаев, затем тестируйте сообщения, которые пересекают границы ваших категорий. Предложенная Роном неоднозначность — «Я не могу оплатить, потому что ваш чек-аут сломан». В нем есть язык оплаты, но реальная проблема может относиться к технической поддержке.

Добавьте случай, когда платеж прошел дважды, один случай, когда он так и не прошел, и один, который спрашивает о возврате, одновременно сообщая о технической проблеме. Определите ожидаемое обращение с человеком, который владеет очередью. Если этот человек не может выбрать категорию из написанных правил, улучшите правила, прежде чем винить модель.

Используйте отдельный набор примеров после пересмотра инструкций. Проверка только сообщений, которые заставили вас переписать подсказку, может скрывать новые ошибки в других местах. Фиксируйте разногласия, ненужные эскалации и случаи, которые должны были быть эскалированы, но были перенаправлены автоматически. Один общий показатель точности может скрывать конкретную ошибку, которая вызывает наибольшее количество работы службы поддержки.

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

Включайте изображения, когда доказательства визуальные.

Если жалоба содержит фото сломанных наушников, текстовое решение может не иметь необходимых доказательств. Решения могут получать фото напрямую. Текущие задокументированные модели Jev принимают текст, поэтому рабочий процесс Jev, зависящий от изображения, требует дополнительного компонента для описания или извлечения информации из фотографии. Входные данные текущей модели Jev.

Для теста изображения измените input в запросе на массив, как этот, заменив пример URL на общедоступное фото, которое вы имеете право отправить:

[
  {
    "role": "user",
    "content": [
      {"type": "ввод_текста", "текст": "Оценивайте только видимое состояние наушников."},
      {"type": "ввод_изображения", "url_изображения": "https://example.com/headphones.jpg"}
    ]
  }
]

Это поле для замены, а не полный второй запрос. Сохраняйте модель и обертку запроса. Замените вопрос отдела на вопрос с выбором под названием visible_condition, используя visible_damage, no_visible_damage, и cannot_assess в качестве значений. Опишите последний вариант как «товар скрыт, вид неясен или изображение не показывает достаточно товара». Поддерживаются размещённые HTTP(S) URL изображений в текущем API; встроенные данные изображения в формате base64 — другой документированный метод ввода. Официальные инструкции по вводу изображений.

Этот вопрос намеренно уже, чем «продукт работает или нет?» Фотография может показать сломанную оболочку или трещину. Она не может установить, что внешне целые наушники воспроизводят звук правильно. Оставайтесь с результатом, связанным с тем, что изображение может подтвердить.

Демонстрация проверки ущерба сообществом, показывающая закрытую картонную коробку и выбран пункт «Невозможно оценить».
Демонстрация сообщества Марка Кашефа, показанная на 5:10. Изображение обозначено как сгенерированный пример. Закрытая коробка скрывает предмет, поэтому «Не могу оценить» избегает утверждения о его состоянии. Это подлинный кадр демонстрации, а не новое физическое испытание. Откройте изображение для просмотра в полном размере.

Демонстрация повреждений сообщества, представленная в источнике Марком Кашефом, включает поврежденное устройство, внешне целое устройство и закрытую упаковку. Кадр источника маркирует свои фотографии как сгенерированные примеры. Для закрытой коробки сообщенный ответ — cannot assess. Это полезно, потому что содержимое не видно; принуждение к ответу «повреждено» или «работает» означало бы выдумывание недостающих доказательств. Это демонстрационные примеры, а не проверка физического продукта.

Для собственной оценки используйте известные примеры с различным освещением, закрытием и видимостью повреждений. Проверьте, различает ли модель продукт и его упаковку. Включите пустое или нерелевантное изображение, чтобы убедиться, что вопрос допускает необязательный ответ. Руководство не утверждает новую точность проверки.

Используйте рейтинг кадров для составления шорт-листа редактора

Видео-процесс требует подготовительного шага: извлечь статичные кадры и сохранить их временные метки перед отправкой изображений на оценку. Decisions не принимает весь видеоролик в качестве изображения, как показано в этом процессе. Пример миниатюры источника от Клэр Во показывает, что для поиска кандидатов на кадры из примерно 40 минут материала затрачено $0,13. Эта стоимость относится к зарегистрированному прогону автора. Это не предложение цены на каждую запись длительностью сорок минут.

Инструмент миниатюр сообщества, показывающий девять кандидатных видеокадров с оценками и исходными временными метками.
Демонстрация выбора миниатюр Клэр Во на 5:40. Кандидаты сохраняют временные метки для проверки редактором. Оценки могут сузить поиск; они не гарантируют, что миниатюра привлечет клики. Указанная стоимость $0,13 относится к примеру прогона автора. Откройте изображение для просмотра в полном размере.

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

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

Сравните полные затраты и правильную базу для измерения задержки

Источник цитирует стоимость Jev как $0,042 за миллион входных токенов и Decisions как $0,10, при этом плата за выходные токены для обоих сервисов решений отсутствует. Актуальная страница модели TypeSafe подтверждает ставку Jev, а руководство OpenAI по Decisions подтверждает её ставку для некэшированных входных данных, отмечая при этом цены для кэша, региональные надбавки и корректировки для долгого контекста. Эти ставки для Decisions не следует путать со всеми другими запросами через Luna. Ценообразование TypeSafe, Ценообразование OpenAI Decisions.

При равных суммарных входных токенах по указанным некэшированным тарифам, плата за ввод Jev на 58% ниже. В качестве планового примера: 10 000 запросов по 1 000 оплачиваемых входных токенов каждый составляют десять миллионов токенов: $0,42 по тарифу Jev или $1,00 по тарифу Decisions. Эта арифметика не учитывает подготовку, повторные попытки, другие услуги, кэширование, региональные корректировки и различия в количестве токенов. Это не измеренный счет.

Маршрутизация текста дает вам повод оценить более низкий тариф Jev. Осмотр изображений меняет сравнение: добавьте стоимость и задержку любой отдельной службы описания изображений к решению Jev. Источник не измеряет общую надежность или стоимость этих двух конвейеров обработки изображений.

Сохраняйте два утверждения о скорости отдельно:

ОтчетЧто сравниваетсяЧто это устанавливает
Заголовок OpenAI «до 10 раз быстрее», обсуждаемый в источникеРешения против Luna через Responses APIУтверждение о тех маршрутах OpenAI, а не тест Jev
Тест бизнес-отчета сообщества, упомянутый РонJev в среднем 155 мс и Decisions в среднем 146 мсРазница в девять миллисекунд в указанном тесте

В тесте сообщества использовались простые проверки заявлений в отношении бизнес-отчета. Он не устанавливает общего победителя по скорости или точности. Замерьте всё выполнение задания, включая подготовку, вызовы, повторные попытки, проверку и последующую обработку. Если клиенту нужно объяснять дублированный платеж нескольким отделам, небольшая экономия времени API не решает проблему маршрутизации.

Устраните неполадки интеграции перед изменением сервисов

Если запрос так и не даёт ответа, проверьте проект, биллинг, ключевую среду, конечную точку и форму запроса. Если в SDK отсутствует метод, decisions сравните установленную версию с текущей справочной; записанный номер бета-пакета не доказывает, что каждая старая среда поддерживает метод. Если ввод изображения не удаётся, проверьте, действительно ли URL доступен без входа в браузер и содержит ли запрос часть с изображением, а не видеофайл.

Если запрос выполнен успешно, но метка неправильная, проверьте доказательства и определения категорий. Если модель продолжает выбирать отдел для сообщений, которые вы считаете неоднозначными, сделайте опцию проверки явной и добавьте эти случаи в оценочный набор. Если изображение в ответе преувеличивает то, что видно, сузьте вопрос и включите случаи, где правильный результат является cannot_assess.

Существующий рабочий процесс Jev, который хорошо выполняет текстовые задачи, не нуждается в переносе только потому, что существует связанный API. С другой стороны, приложение, уже использующее OpenAI, может извлечь выгоду из знакомого аккаунта и пути интеграции. Рон упоминает это удобство для людей, уже использующих Codex, Astra или Sol, и сравнивает требуемую модель Luna в бета-версии с его обычным подходом использования Sol с низким уровнем мыслительной нагрузки для рутинных задач. Это предпочтение в рабочем процессе, а не сравнение всех моделей для выполнения задачи.

Он также упоминает эксперименты с условиями в стиле принятия решений для исполнения торговых операций, но не предоставляет ни результатов производительности, ни воспроизводимой спецификации. Кроме этого, нет доказательств прибыльной стратегии. Начинайте с задачи поддержки или изображения, которую можно проверить, и сохраняйте запасной вариант до тех пор, пока результаты не оправдают автоматизацию следующего действия.