Source: https://ailoot.ai/docs/ru/api/systemone/
Canonical: https://ailoot.ai/docs/ru/api/systemone/
Language: ru

[API](https://ailoot.ai/docs/ru/) 

# Jev — модель решений

[Markdown](https://ailoot.ai/docs/ru/api/systemone/index.md)

Модель решений Jev от TypeSafe отвечает на типизированные вопросы о тексте или JSON: выбор варианта, оценка по шкале или «да/нет» с вероятностями. Это не чат и не генерация текста.

POST`https://api.ailoot.ai/v1/systemone`

Jev — модель решений

```bash
curl https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Help! My payouts have been failing for 3 days.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Does this convey urgency?"
      }
    }
  }' 
```

```python
import json, os, urllib.request

body = {
    "model": "jev-latest",
    "state": "Help! My payouts have been failing for 3 days.",
    "questions": {
        "is_urgent": {"type": "noul", "instructions": "Does this convey urgency?"},
    },
}
req = urllib.request.Request(
    "https://api.ailoot.ai/v1/systemone",
    data=json.dumps(body).encode(),
    headers={"Authorization": "Bearer " + os.environ["AILOOT_API_KEY"],
             "Content-Type": "application/json"},
)
with urllib.request.urlopen(req, timeout=60) as resp:
    result = json.load(resp)
print(result["answers"]["is_urgent"]["noul"])  # 0.95
```

```js
const resp = await fetch("https://api.ailoot.ai/v1/systemone", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.AILOOT_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "jev-latest",
    state: "Help! My payouts have been failing for 3 days.",
    questions: {
      is_urgent: { type: "noul", instructions: "Does this convey urgency?" },
    },
  }),
});
const result = await resp.json();
if (!resp.ok) throw new Error(`${resp.status} ${JSON.stringify(result)}`);
console.log(result.answers.is_urgent.noul); // 0.95
```

200 OK

```json
{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": {
      "type": "noul",
      "noul": 0.95
    }
  },
  "usage": { "input_tokens": 296, "output_tokens": 20 }
}
```

Jev — модель решений класса System One от TypeSafe. Она не пишет текст и не ведёт диалог: вы передаёте **состояние** (`state`) — текст или JSON — и набор **вопросов**, а в ответ получаете типизированные значения с вероятностями. По ним код сразу ветвится, сортирует и маршрутизирует, без разбора свободного текста.

Все вопросы одного запроса оцениваются параллельно и независимо друг от друга, против одного и того же `state`. По данным TypeSafe, добавление вопросов почти не меняет время ответа, а вопросы не мешают друг другу.

| Что | Коротко |
| --- | --- |
| Модель | `jev-latest` — псевдоним последней стабильной версии Jev; [карточка в каталоге](https://ailoot.ai/models/ru/#m=jev-latest) |
| Метод | `POST /v1/systemone`. Это не чат: форматы OpenAI, Anthropic и Gemini для Jev не подходят. Ответ приходит целиком, одним JSON |
| Что принимает | Только текст: строку, объект JSON или массив текстов. Картинки, аудио и видео сначала переведите в текст |
| Контекст | 64K токенов на запрос — state и все вопросы вместе; state вместе с самым длинным вопросом — до 32K |
| Язык | По данным TypeSafe, точнее всего модель работает на английском; другие языки она принимает, но точность ниже — проверьте на своих данных |
| Цена | Вход $0.084 за 1 млн токенов, выход бесплатно |

## [](https://ailoot.ai/docs/ru/api/systemone/#request)Запрос

### Авторизация

| Параметр | Тип | Обязательность | Описание |
| --- | --- | --- | --- |
| `Authorization` | header | обязательный | Ключ Ailoot в виде `Bearer sk-…`. |

### Тело запроса

| Параметр | Тип | Обязательность | Описание |
| --- | --- | --- | --- |
| `model` | string | обязательный | `jev-latest`. |
| `state` | string \| object \| array | обязательный | Что оценивать: строка с текстом или JSON — обращение клиента, запись из базы, переписка, текущее состояние вашего приложения. Объект с понятными именами полей обычно удобнее одной строки. |
| `questions` | object | обязательный | Вопросы. Ключи выбираете вы, ответы придут под теми же ключами; на ответ ключ не влияет — сам вопрос задаётся в `instructions`. |
| `questions.*.type` | string | обязательный | `noul`, `choice` или `score` — см. ниже. |
| `questions.*.instructions` | string \| object \| array | обязательный | Сам вопрос. Длинный вопрос с данными можно передать объектом: вопрос в одном поле, данные в других; ссылайтесь на поля по имени в обратных кавычках. |
| `questions.*.criteria` | object \| array |  | Варианты ответа, свои у каждого типа: описания «да» и «нет» у noul (необязательно), словарь вариантов у choice, упорядоченный список уровней у score. |

## [](https://ailoot.ai/docs/ru/api/systemone/#question-types)Типы вопросов

| Тип | Что спрашивает | Что возвращает |
| --- | --- | --- |
| `noul` | Верно ли утверждение: да или нет | `noul` — вероятность «да» от 0 до 1 |
| `choice` | Какой вариант из заданных подходит | `choice`, `probabilities`, `confidence` |
| `score` | Где state на вашей шкале уровней | `score`, `legend`, `probabilities`, `confidence` |

Типы можно смешивать в одном запросе.

### noul — да или нет

Поле `criteria` необязательно: в нём можно описать, что значит «да» (`true`) и «нет» (`false`). Ответ `noul` — число от 0 (нет) до 1 (да).

```json
"is_urgent": {
  "type": "noul",
  "instructions": "Does this convey urgency?",
  "criteria": {
    "true": "Explicitly time-sensitive",
    "false": "No urgency expressed"
  }
}
```

```json
"is_urgent": {
  "type": "noul",
  "noul": 0.95
}
```

### choice — выбор варианта

`criteria` — словарь «вариант → описание»; если описание не нужно, укажите `null`. До 255 вариантов. В ответе `choice` — самый вероятный вариант, `probabilities` — вероятность каждого варианта (в сумме 1), `confidence` — уверенность от 0 до 1.

```json
"department": {
  "type": "choice",
  "instructions": "Which team should handle this?",
  "criteria": {
    "billing": "Payments, invoicing, refunds",
    "technical": "Bugs, outages, integrations",
    "sales": "Pricing, upgrades, new customers"
  }
}
```

```json
"department": {
  "type": "choice",
  "choice": "billing",
  "probabilities": { "billing": 0.88, "technical": 0.12, "sales": 0.0 },
  "confidence": 0.81
}
```

### score — оценка по шкале

`criteria` — уровни от низшего к высшему, не больше 10 (TypeSafe советует не меньше двух). В ответе `score` — значение, взвешенное по вероятностям уровней (может оказаться между уровнями), `legend` — номер уровня и его описание, `probabilities` и `confidence`. По данным TypeSafe, `score` годится для сравнения с порогом, но не для точного числа между уровнями.

```json
"frustration": {
  "type": "score",
  "instructions": "How frustrated is the customer?",
  "criteria": ["Calm", "Frustrated", "Very angry"]
}
```

```json
"frustration": {
  "type": "score",
  "score": 1.05,
  "legend": { "0": "Calm", "1": "Frustrated", "2": "Very angry" },
  "probabilities": { "0": 0.0, "1": 0.95, "2": 0.05 },
  "confidence": 0.92
}
```

## [](https://ailoot.ai/docs/ru/api/systemone/#response)Ответ

| Параметр | Тип | Обязательность | Описание |
| --- | --- | --- | --- |
| `model` | string |  | Какая версия модели ответила. Псевдоним jev-latest со временем переходит на новые версии: если вы подобрали пороги `confidence` под конкретную версию, следите за этим полем. |
| `answers` | object |  | По одному ответу на каждый вопрос, под теми же ключами. У каждого ответа есть `type`, у choice и score — ещё `confidence`. |
| `usage` | object |  | `input_tokens` и `output_tokens`. Оплачиваются только входные токены. |

`confidence` удобно использовать как порог: уверенный ответ — действуйте автоматически, неуверенный — отправьте на проверку человеку или большой модели. Ответ говорит, что выбрать, а `confidence` — стоит ли действовать.

## [](https://ailoot.ai/docs/ru/api/systemone/#many-questions)Несколько вопросов за один запрос

Задавайте все вопросы к одному state одним запросом: они оцениваются параллельно, а state передаётся один раз. По данным TypeSafe, в их примере с 13 вопросами один общий запрос вышел в 12,2 раза дешевле и в 10 раз быстрее, чем 13 отдельных запросов, если отправлять их по очереди, при тех же ответах.

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

```json
{
  "model": "jev-latest",
  "state": "Help! My payouts have been failing for 3 days.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Which team should handle this?",
      "criteria": {
        "billing": "Payments, invoicing, refunds",
        "technical": "Bugs, outages, integrations",
        "sales": "Pricing, upgrades, new customers"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "How frustrated is the customer?",
      "criteria": ["Calm", "Frustrated", "Very angry"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "Does this convey urgency?"
    }
  }
}
```

## [](https://ailoot.ai/docs/ru/api/systemone/#use-cases)Когда подходит

- **Маршрутизация.** Отправить обращение в нужный отдел, а запрос — нужному обработчику: простому коду, большой модели или человеку.
- **Сортировка и приоритет.** Срочность, тональность, риск — по шкале, с порогами в коде.
- **Модерация и проверки.** Нарушает ли сообщение правила, подтверждает ли источник цитату, есть ли в документе ответ на вопрос — до того, как текст пойдёт дальше.
- **Скоринг и ранжирование.** Оценить документы, кандидатов или найденные фрагменты по своей рубрике и решить в коде, что пойдёт дальше.
- **Вместо хрупкого «верни JSON».** Вызов, который возвращает типизированные значения по построению, а не текст, который нужно разбирать.

## [](https://ailoot.ai/docs/ru/api/systemone/#not-for)Когда не подходит

- **Чат, ответы пользователю, генерация текста или кода.** Jev не пишет текст — для этого есть [текстовые модели](https://ailoot.ai/models/ru/?kind=text).
- **Модель для Claude Code, Cursor и других агентов.** Подставить jev-latest вместо модели агента не получится: агенту нужна модель, которая пишет текст и вызывает инструменты. Jev можно вызывать из кода, который агент пишет для вас.
- **Арифметика, подсчёт, сравнение дат.** По данным TypeSafe, это надёжнее делать в коде, а у модели спрашивать только смысловую часть — например, извлечь части даты через choice.
- **Картинки, аудио и видео.** Модель принимает только текст — переведите такие данные в текст заранее.

Лучше всего модель работает, когда каждый вопрос — одно конкретное, узкое суждение. Пишите условие прямо: по данным TypeSafe, модель понимает вопрос буквально, а большой state с лишними данными снижает точность — отфильтруйте его в коде.

## [](https://ailoot.ai/docs/ru/api/systemone/#price)Цена

Оплачиваются только входные токены — поле `usage.input_tokens` ответа: **$0.084 за 1 млн**. Выходные токены бесплатны.

Запрос из примера на этой странице (296 входных токенов) стоит меньше $0.0001.

Перед запросом Ailoot резервирует сумму на балансе и после ответа списывает один раз по фактическому расходу — [как это работает](https://ailoot.ai/docs/ru/billing/reserve/).

## [](https://ailoot.ai/docs/ru/api/systemone/#limits)Лимиты

| Что | Лимит |
| --- | --- |
| Запрос целиком: state и все вопросы | 64K токенов |
| state вместе с самым длинным вопросом | 32K токенов |
| Вариантов в одном choice | до 255 |
| Уровней в одном score | от 2 до 10 |
| Вход | только текст: строка, объект JSON или массив текстов |

Лимиты модели — по данным TypeSafe. Ограничения вашего ключа и баланса действуют как для любой модели Ailoot: [Ошибки и лимиты](https://ailoot.ai/docs/ru/errors/).

## [](https://ailoot.ai/docs/ru/api/systemone/#errors)Ошибки

Ошибки приходят в общем формате Ailoot API: код, понятный текст и Request ID. Чаще всего у этого метода встречаются:

| Код | Когда | Что делать |
| --- | --- | --- |
| **400** `invalid_request` | Тело не прошло проверку: нет state, model или questions, неизвестный type, у choice больше 255 вариантов, у score больше 10 уровней | Исправьте запрос по тексту ошибки: без правки он снова не пройдёт |
| **400** `context_length_exceeded` | state и вопросы вместе длиннее лимита модели | Отфильтруйте state в коде, оставьте то, что нужно вопросам |
| **401** `invalid_api_key` | Ключа нет или он неверный | Передайте ключ в заголовке Authorization |
| **402** `insufficient_balance` | Не хватает свободного баланса на резерв | Пополните баланс |
| **404** `model_not_found`, `unsupported_endpoint` | ID с ошибкой или модель вызвана не тем методом, например через /v1/chat/completions | Вызывайте jev-latest только через POST /v1/systemone |
| **429** `rate_limit_exceeded` | Слишком много запросов | Подождите столько секунд, сколько в заголовке Retry-After, и повторите |
| **503** `model_overloaded`, `model_unavailable` | Модель временно перегружена или недоступна | Если X-Should-Retry: true — повторите через Retry-After секунд; если false — сначала проверьте Request ID в истории |
| **504** `model_timeout` | Модель не ответила вовремя | Не отправляйте запрос заново, пока не проверите Request ID в истории |

Полный список кодов — на странице [Ошибки и лимиты](https://ailoot.ai/docs/ru/errors/).

Остались вопросы? Пришлите Request ID и описание — поможем разобраться.[Написать в поддержку](mailto:support@ailoot.ai)

## Ailoot · Компания и портфель её проектов





Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.





Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.





Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
