Справка

Jev API Docs

Справочник по endpoint решений Jev на этом сайте. Jev — модель System One от TypeSafe AI; этот сайт — независимый API-сервис, который предоставляет к ней доступ. Отправьте одно состояние и карту вопросов и получите типизированный ответ на каждый.

Обновлено

Endpoint

Отправляйте POST на /api/v1/decisions этого хоста. Пути chat-completions и стриминга нет. GET /api/v1/models возвращает id модели. Совместимый POST /v1/systemone описан ниже.

POST https://jev-api.org/api/v1/decisions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Аутентификация

Положите ключ панели в Authorization: Bearer. Отсутствующий или отклонённый ключ даёт 401. Песочница создаёт ключ аккаунта при запуске.

Быстрый старт

Установите JEV_API_KEY в ключ из вашей панели и отправьте запрос ниже.

curl https://jev-api.org/api/v1/decisions \
  -H "Authorization: Bearer $JEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "jev-1.13",
  "state": "Thanks for the refund. Still annoyed it took three emails.",
  "questions": {
    "sentiment": {
      "type": "choice",
      "instructions": "What is the overall sentiment of this message?",
      "criteria": {
        "positive": "Satisfied or thankful overall.",
        "mixed": "Both satisfied and unhappy.",
        "negative": "Unhappy overall."
      }
    },
    "needs_follow_up": {
      "type": "noul",
      "instructions": "Should a person reply to this message?"
    }
  }
}'

Использование с AI-инструментами для кода

Скопируйте промпт с полным контрактом запроса и вставьте его в Cursor, Claude Code или ChatGPT вместе с вашей задачей. Тот же справочник находится в /llms.txt.

/llms.txt

Тело запроса

model — jev-1.13 или jev-latest. state — строка, JSON-объект или массив текста, до 60 000 символов. questions — карта из 1–6 id в snake_case. id — только метка, под которой возвращается ответ, а не вопрос. Сам вопрос пишите в instructions текстом от 1 до 2 000 символов.

{
  "model": "jev-1.13",
  "state": "Thanks for the refund. Still annoyed it took three emails.",
  "questions": {
    "sentiment": {
      "type": "choice",
      "instructions": "What is the overall sentiment of this message?",
      "criteria": {
        "positive": "Satisfied or thankful overall.",
        "mixed": "Both satisfied and unhappy.",
        "negative": "Unhappy overall."
      }
    },
    "needs_follow_up": {
      "type": "noul",
      "instructions": "Should a person reply to this message?"
    }
  }
}

Типы вопросов

Noul

type noul требует только instructions. Поле noul — вероятность от 0 до 1, что утверждение истинно. Отдельного поля confidence нет. Если отправить criteria в вопросе noul, этот endpoint его игнорирует.

Choice

type choice требует instructions и criteria: объект из 2–8 id в snake_case с описаниями до 300 символов. Ответ включает choice, probabilities каждого варианта и confidence.

Score

type score требует instructions и criteria — упорядоченный массив из 2–10 уровней, от низшего. Ответ включает score, legend, probabilities и confidence.

Ответ

Успешное тело содержит model, answers по вашим id вопросов, usage с input_tokens и output_tokens, и credits_used. model сообщает jev-1.13, даже если вы отправили jev-latest. Ниже — пример ответа на запрос из быстрого старта, usage опущено.

{
  "model": "jev-1.13",
  "answers": {
    "sentiment": {
      "type": "choice",
      "choice": "mixed",
      "probabilities": { "mixed": 0.79, "negative": 0.2, "positive": 0.01 },
      "confidence": 0.61
    },
    "needs_follow_up": { "type": "noul", "noul": 0.83 }
  },
  "credits_used": 1
}

Как читать вероятности и confidence

Noul — вероятность того, что утверждение в instructions истинно. Choice и Score возвращают вероятность каждого варианта или уровня, плюс confidence.

Второй вариант — сигнал передать человеку. Когда confidence низкий или два варианта близки, отдайте случай человеку или задайте ещё один конкретный вопрос. Не снижайте порог, пока не посмотрите эти близкие случаи.

Лимиты

ПараметрЭтот endpoint
EndpointPOST /api/v1/decisions, Bearer-ключ
Модельjev-1.13 (jev-latest — псевдоним)
Вопросов за вызов1–6
Варианты Choice2–8
Уровни Score2–10, от низшего
StateСтрока, JSON-объект или массив, до 60 000 символов
InstructionsТекст, 1–2 000 символов
Оплата1 кредит за успешный вызов; неудачные бесплатны
СтримингНе поддерживается

Отличия от API TypeSafe

TypeSafe AI обслуживает Jev на POST https://api.typesafe.ai/v1/systemone с ключом TypeSafe и берёт за входные токены. POST /v1/systemone этого сайта принимает то же тело без изменений; более простой POST /api/v1/decisions отличается следующим:

  • Путь и ключ: POST /api/v1/decisions на jev-api.org с ключом из панели этого сайта. Ключи TypeSafe здесь не работают, а ключи этого сайта не работают на TypeSafe.
  • Id модели: на /api/v1/decisions отправляйте jev-1.13 или jev-latest; версионный id вроде jev-1.13.0 вернёт 422. /v1/systemone принимает jev-latest, jev-preview, jev-1.13, jev-1.13.0 и typesafe/jev-1.13.
  • Лимиты: /api/v1/decisions — 1–6 вопросов на вызов и 2–8 вариантов Choice. /v1/systemone принимает полные диапазоны TypeSafe — до 256 вопросов и 255 вариантов Choice.
  • Поля: на /api/v1/decisions instructions должны быть текстом, и у каждого варианта Choice нужно описание. /v1/systemone также принимает instructions в виде объекта или массива и null-описания вариантов.
  • Оплата: 1 кредит за успешный вызов, независимо от числа токенов.

Эндпоинт, совместимый с SDK TypeSafe

POST /v1/systemone этого хоста принимает тело запроса TypeSafe без изменений — model, state и questions — и возвращает форму ответа TypeSafe: model, answers, usage. Направьте TypeSafe-совместимый клиент на base URL https://jev-api.org или вызывайте https://jev-api.org/v1/systemone напрямую. GET /v1/models возвращает обслуживаемые модели без ключа.

POST https://jev-api.org/v1/systemone
GET  https://jev-api.org/v1/models

Принимаемые id моделей: jev-latest, jev-preview, jev-1.13, jev-1.13.0, typesafe/jev-1.13. Этот путь принимает более широкие диапазоны TypeSafe — 1–256 вопросов, 2–255 вариантов Choice, 2–10 уровней Score, instructions объектом или массивом — и лимиты 64k токенов на запрос и 32k на состояние плюс самый длинный вопрос. Тарификация та же: 1 кредит за успешный вызов.

Python

from typesafe_sdk import Noul, TypeSafeClient

with TypeSafeClient(api_key="YOUR_JEV_API_KEY", base_url="https://jev-api.org") as client:
    response = client.system_one(
        state="The invoice total does not match the quote.",
        questions={"is_billing": Noul(instructions="Is this about billing?")},
    )

print(response.answers["is_billing"])

JavaScript

const res = await fetch('https://jev-api.org/v1/systemone', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.JEV_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: 'jev-latest',
    state: 'The invoice total does not match the quote.',
    questions: { is_billing: { type: 'noul', instructions: 'Is this about billing?' } },
  }),
})
const { answers } = await res.json()

Jev и Python·Модели Jev

Ошибки

  • 401 — ключ отсутствует или отклонён.
  • 402 — ключ верный, баланса не хватает. Сбой upstream не списывает кредит.
  • 422 — тело не прошло проверку. Сообщение называет поле.
  • 429 — сервис решений ограничен. Повторите позже.
  • 502 — сервис не вернул ответы. Кредит не списывается.

Id модели

Этот API отдаёт jev-1.13. Отправляйте этот id, если порог зависит от одного распределения. На этом API jev-latest — псевдоним того же id.

Все id и алиасы моделей·Модель Laya и этот Jev API