Перейти к содержимому
EN

Jev 1.13

Jev 1.13 (typesafe/jev-1.13) — первая decision-модель TypeSafe (System One). Это не LLM: модель не генерирует текст, а отвечает на типизированные вопросы о переданном состоянии — с вероятностями, по которым код ветвится напрямую. Контекст 32 000 токенов.

  • Не чат: нет POST /v1/chat/completions — вызов через POST /v1/decisions.
  • Не генерирует текст и не объясняет решения — только вероятности. Нужна мотивировка — спросите чат-модель после решения.
  • Не праймери для «напиши письмо» — она для развилок в коде: маршрутизация, классификация, проверка действий.
Примитив Вопрос Ответ
noul Выполняется ли условие? Вероятность «да» 0…1
choice Какой из вариантов? Выбор + распределение + уверенность
score Где на шкале? Взвешенная позиция + вероятности уровней

Сколько угодно вопросов любого типа в одном запросе — по одному ответу на каждый.

Паттерн «спросить у LLM узкий вопрос и распарсить метку из ответа» — анти-паттерн: медленно, дороже и нестабильно. Jev решает то же быстрее и предсказуемее:

  • Маршрутизация — какой команде/очереди тикет.
  • Гейтинг агентов — безопасен ли тул-колл: обратим? в рамках задачи? Выполнять / отказать / позвать человека по порогу noul.
  • Классификация и теги — категория + сколько угодно бинарных меток одним запросом.
  • Каскады — черновик дешёвой моделью → проверка Jev → эскалация на дорогую только при провале проверки.
Окно терминала
curl https://api.mixen.ai/v1/decisions \
-H "Authorization: Bearer $MIXEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe/jev-1.13",
"state": "My checkout page shows a blank screen after I click Pay. Tried two browsers.",
"questions": {
"is_bug": {
"type": "noul",
"instructions": "Is the customer reporting a software defect?",
"criteria": {
"true": "Describes broken or unexpected product behavior.",
"false": "Asks a question or requests a feature."
}
},
"urgency": {
"type": "score",
"instructions": "How urgent is this ticket?",
"criteria": ["Can wait", "This week", "Blocking revenue"]
}
}
}'

Ответ приходит по каждому вопросу:

{
"answers": {
"is_bug": { "type": "noul", "noul": 0.96 },
"urgency": { "type": "score", "score": 2, "probabilities": {"0": 0, "1": 0.01, "2": 0.99} }
},
"usage": { "cost": 0.00002, "input_tokens": 476 }
}
  • criteria — граница решения, не описание опции: пара «true/false» для noul, по предложению на вариант для choice, упорядоченные уровни для score. Чем конкретнее — тем стабильнее распределение.
  • state — не промпт, а контекст: текст тикета, JSON состояния, массив. Можно ссылаться на вложенные поля в instructions.
  • Пороги берите из probabilities/confidence, а не только из главного ответа: низкая уверенность — сигнал отдать случай человеку или переспросить. Прогоните десяток размеченных примеров и подберите порог под свою цену ошибки.

Платятся только входные токены (state + вопросы); выходные бесплатны. Типичный запрос — сотни токенов, доли копейки. Списание — по usage.cost из ответа.

  • Контекст 32K токенов.
  • Модель не меняет state и не вызывает инструменты — только отвечает на ваши вопросы.
  • Полная схема запроса/ответа — в гайде «Решения (Decisions)».