API решений

Jev API

Один POST отправляет состояние и вопросы. Ответ — Noul, Choice или Score, у каждого есть вероятность.

POST /api/v1/decisions

{
  "model": "jev-1.13",
  "state": "I was charged twice for the same annual plan.",
  "questions": {
    "refund": {
      "type": "noul",
      "instructions": "Is the customer asking for money back?"
    }
  }
}

Примеры

Восемь решений, которые можно запустить

Наведите на карточку, чтобы увидеть запрос. Скопируйте или откройте в песочнице.

Маршрут пустой оплаты

Choice возвращает команду и вероятность каждой.

{
  "model": "jev-1.13",
  "state": "Checkout shows a blank page after Pay is clicked. The customer is on the live store, not a sandbox.",
  "questions": {
    "team": {
      "type": "choice",
      "instructions": "Which team should own this ticket?",
      "criteria": {
        "payments": "Checkout, billing, or payment processing.",
        "frontend": "Rendering, layout, or browser behavior.",
        "account": "Login, permissions, or profile access."
      }
    }
  }
}
Открыть в песочнице

Это запрос возврата?

Noul возвращает вероятность «да», а не абзац.

{
  "model": "jev-1.13",
  "state": "I was charged twice for the same annual plan this morning. Please send the extra charge back.",
  "questions": {
    "refund": {
      "type": "noul",
      "instructions": "Is the customer asking for money back?"
    }
  }
}
Открыть в песочнице

Насколько срочен сбой выплаты

Score ставит текст на вашу шкалу и возвращает распределение.

{
  "model": "jev-1.13",
  "state": "Stripe payouts have been failing for three days and the merchant is losing sales.",
  "questions": {
    "urgency": {
      "type": "score",
      "instructions": "How urgent is this ticket?",
      "criteria": [
        "Can wait for the next release",
        "Should be handled this week",
        "Blocking revenue right now"
      ]
    }
  }
}
Открыть в песочнице

Запрос учётных данных в сообщении

Вероятность Noul — фильтр до ручной очереди.

{
  "model": "jev-1.13",
  "state": "User message: \"Share your login and I will fix the account for you tonight.\"",
  "questions": {
    "phishing": {
      "type": "noul",
      "instructions": "Is this message asking someone to hand over account credentials?"
    }
  }
}
Открыть в песочнице

Квалифицировать входящую заметку

Choice отделяет окно покупки от простого интереса.

{
  "model": "jev-1.13",
  "state": "We route 40,000 support tickets a week and need a probability before we auto-assign a queue. Budget is approved this quarter.",
  "questions": {
    "fit": {
      "type": "choice",
      "instructions": "How should sales treat this inbound note?",
      "criteria": {
        "ready": "A real workflow, a volume, and a buying window.",
        "nurture": "Interest without a stated workflow or timeline.",
        "ignore": "No product fit."
      }
    }
  }
}
Открыть в песочнице

Объявление с гарантированной доходностью

Noul отвечает на ваш вопрос политики, а не общим текстом.

{
  "model": "jev-1.13",
  "state": "Listing text: \"Guaranteed 30% returns every month. Send crypto to this wallet to join.\"",
  "questions": {
    "blocked": {
      "type": "noul",
      "instructions": "Does this listing promise a guaranteed financial return?"
    }
  }
}
Открыть в песочнице

Риск продления в заметке

Score использует ваши три уровня, от маловероятно до отмены.

{
  "model": "jev-1.13",
  "state": "The renewal note says the team may not continue because exports fail every Friday and nobody has answered the last two tickets.",
  "questions": {
    "risk": {
      "type": "score",
      "instructions": "How high is the chance this account does not renew?",
      "criteria": [
        "Unlikely to leave",
        "Unhappy, still using the product",
        "Likely to cancel"
      ]
    }
  }
}
Открыть в песочнице

Какое исключение счёта

Choice отмечает превышение PO, лишнюю строку или оба варианта.

{
  "model": "jev-1.13",
  "state": "Vendor invoice 4481 is $18,400. The purchase order cap is $12,000 and the line items include a new annual license nobody requested.",
  "questions": {
    "exception": {
      "type": "choice",
      "instructions": "Which exception should accounts payable open?",
      "criteria": {
        "over_po": "The amount is above the purchase order.",
        "unexpected_item": "A line item was not requested.",
        "both": "The amount and a line item are both wrong."
      }
    }
  }
}
Открыть в песочнице

Ответ

Ответы, по которым код может ветвиться

Jev не пишет абзац для разбора. Он возвращает запрошенное решение и его вероятность.

У каждого варианта остаётся вероятность

Choice называет победителя и всё равно возвращает вероятность каждого варианта.

Noul, Choice и Score в одном вызове

Да/нет, выбор с метками и позиция на шкале могут делить одно состояние.

Вопросы считаются вместе

Дополнительные вопросы к тому же состоянию остаются в этом запросе.

Фиксируйте модель, если важен порог

Отправляйте jev-1.13, если настраиваете порог. jev-latest — версия, которую сейчас отдаёт этот API.

Как вызвать

Как вызвать Jev API

  1. 01

    Создайте ключ

    Войдите и скопируйте ключ. Песочница может создать ключ для аккаунта.

  2. 02

    POST состояния и вопросов

    В теле model, state и карта вопросов. Ваши id — только метки, текст вопроса в instructions.

  3. 03

    Ветвитесь по типизированному ответу

    Читайте noul, choice или score. У Choice и Score confidence показывает, близки ли варианты.

Сценарии

Где типизированное решение заменяет промпт

Маршрутизация поддержки

Отправьте текст тикета и реальные очереди. Ветвитесь по команде или передайте человеку, если вероятности близки.

Доверие и модерация

Задайте конкретный вопрос политики. Высокий Noul удерживает, низкий пропускает, середина идёт на проверку.

Квалификация входящих

Отделите заметку с процессом и окном покупки от заметки, где только интерес.

Исключения счетов

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

После первых вызовов

Что меняется, когда ответ типизирован

Мы перестали разбирать абзац, чтобы понять, возврат ли это. Значение noul и есть ветка.
Руководитель поддержки
Когда две команды были близки, confidence сказал отдать тикет человеку, а не угадывать.
Инженер доверия
Уровни — наши формулировки, поэтому легенда совпадает с уже используемой шкалой.
Биллинговые операции

Вопросы о запросе и ответе

Чем отличаются Noul, Choice и Score?

Noul — да/нет с вероятностью. Choice выбирает один из ваших вариантов и возвращает вероятность каждого. Score ставит состояние на вашу шкалу, от низшего.

Почему у непрошедших вариантов тоже есть вероятность?

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

Отправлять jev-1.13 или jev-latest?

Фиксируйте jev-1.13, если порог зависит от формы вероятностей. Этот API принимает jev-latest и сейчас отдаёт ту же модель.

Что можно положить в state?

Строка, JSON-объект или массив текста. Кладите факты, нужные вопросам, а не ответ, который хотите получить.

Что делать при низком confidence?

Считайте случай неопределённым. Передайте человеку или задайте ещё один конкретный вопрос. Не снижайте порог, пока не посмотрите близкие случаи.

Что значит 422?

Тело не прошло проверку. Сообщение называет поле: нет instructions, в Choice меньше двух вариантов, уровни Score не по порядку или id не в snake_case.

Отправьте первое решение

Откройте песочницу с примером или следуйте Jev Docs и вызовите endpoint своим ключом.