Учебник
Урок по OpenAI Decisions API: ваш первый вызов решения
Это пошаговое руководство проведёт вас от пустого аккаунта до рабочего вызова решения на эндпоинте decisions-1 этого сайта — вызываемой альтернативе OpenAI Decisions API: ключ, один POST, вероятности в ответе и порог для дальнейших действий.
Обновлено
Шаг 1 — получите ключ
Откройте песочницу и нажмите Run один раз — гостевая сессия, API-ключ и 1 бесплатный кредит создадутся автоматически. Для продакшена войдите и создайте именной ключ в панели в разделе API keys. Ключи отправляются в заголовке Authorization Bearer..
Держите ключ на сервере. Каждый запрос с ним списывается с вашего баланса — никогда не включайте его в браузерный код или публичный репозиторий.
Шаг 2 — отправьте первый запрос
Запрос решения содержит три поля: model (decisions-1 или decisions-latest), state (контекст, который читает модель — строка, JSON-объект или массив текста) и questions (карта из 1–6 id вопросов). Сам вопрос пишите в instructions — id это лишь метка, под которой вернётся ответ.
Вопрос noul — это суждение да/нет: поле ответа noul — вероятность того, что утверждение истинно.
cURL
curl https://decisions-api.net/api/v1/decisions \
-H "Authorization: Bearer $DECISIONS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "decisions-1",
"state": "I was charged twice for my subscription this morning.",
"questions": {
"refund": {
"type": "noul",
"instructions": "Is the customer asking for money back?"
}
}
}'Шаг 3 — добавьте вопрос choice
Вопрос choice выбирает одну метку из заданного вами списка. criteria — объект из 2–8 идентификаторов вариантов, каждый с коротким описанием — модель читает описание, поэтому пишите его как правило маршрутизации.
Вопрос score работает так же, но принимает упорядоченный массив из 2–10 описаний уровней, от низшего к высшему. Все три типа можно смешивать в одном вызове — до шести вопросов.
JSON
{
"team": {
"type": "choice",
"instructions": "Which team should own this ticket?",
"criteria": {
"payments": "Checkout, billing, or payment processing.",
"frontend": "Rendering or browser behavior.",
"account": "Login, permissions, or profile."
}
}
}Шаг 4 — прочитайте вероятности
Успешный ответ содержит model, answers по вашим ID вопросов, usage и credits_used. Ответ noul — просто вероятность. Ответ choice включает победивший choice, вероятность для каждого варианта и значение уверенности.
Второе место важно не меньше победителя. Два варианта около 0.5 — не то же самое, что 0.9 против 0.1: считайте близкие случаи кандидатами на ревью, а не уверенными выборами.
Ответ
{
"model": "decisions-1",
"answers": {
"refund": { "type": "noul", "noul": 0.98 }
},
"credits_used": 1
}Шаг 5 — задайте порог и обработайте ошибки
Выберите порог уверенности на своём трафике: выше — принимаем, остальное — человеку. Начните с высокого (0.7–0.8) и снижайте только после разбора случаев ниже порога.
402 — баланс пуст; 429 или 502 — повторите позже: неудачные вызовы не оплачиваются. 422 — ошибка валидации тела, сообщение называет поле.
JavaScript
const res = await fetch('https://decisions-api.net/api/v1/decisions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.DECISIONS_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
})
if (res.status === 402) { /* out of credits */ }
if (res.status === 429 || res.status === 502) { /* retry later */ }
const { answers } = await res.json()
const team = answers.team
if (team.type === 'choice' && team.confidence >= 0.7) {
routeTo(team.choice) // confident: auto-assign
} else {
queueForHuman(team) // low confidence or near-tie: review
}Частые вопросы
Это вызывает Decisions API от OpenAI?
Нет. Этот эндпоинт обслуживает decisions-1 — модель, которую запускает сайт. Decisions API от OpenAI в ограниченном предпросмотре без публичной схемы; формат запроса здесь следует тому же паттерну решений.
Почему ключ ответа отличается от отправленного?
Не отличается — answers возвращается под теми же ID вопросов, что вы отправили в карте questions. Если ключа нет, вопрос не прошёл валидацию и вызов вернул 422.
Можно ли получать ответ потоком?
Нет. Вызов решения — один round-trip, возвращающий полный объект answers. Потокового режима у этого эндпоинта нет.
Что означает уверенность для моего порога?
Уверенность показывает, насколько разнесены варианты. Калибруйте на реальном трафике: запишите вероятности для нескольких сотен случаев и поставьте порог там, где автоприём перестаёт делать важные для вас ошибки.
Попробуйте в песочнице
Выполните этот запрос в браузере — 1 бесплатный вызов для новых посетителей, без настройки.