Jev: зачем нужна модель для решений и как её использовать. API.. API. Jev.. API. Jev. llm.. API. Jev. llm. python.. API. Jev. llm. python. TypeSafeAI.. API. Jev. llm. python. TypeSafeAI. искусственный интеллект.

В чат приходит сообщение: «Подскажите, как подключить уведомления только для новых заказов?» Приложению нужно определить его тип: вопрос, реклама или другое. Дальнейшее действие зависит от выбранной категории.

Jev от TypeSafe AI принимает данные и вопросы определённого типа, возвращая значения для кода: метку, оценку по шкале или вероятность ответа «да». Универсальные LLM тоже поддерживают structured outputs, и подобный процесс можно построить с их помощью. Jev стоит рассмотреть, когда нужен готовый контракт для решений: распределение по заданным вариантам при выборе категории и независимые вопросы к одним данным за вызов. Приложение получает и результат, и оценки, по которым может выбрать следующее действие.

Это разбор документации API на 22 октября 2026 года, без вызовов сервиса. Преимущества Jev в калибровке вероятностей, качестве и скорости здесь не проверялись.

Категория, шкала или вопрос «да/нет»

Для текстовых задач пригодятся три типа вопросов. Choice выбирает один вариант из набора: например, «вопрос», «реклама» или «другое» для сообщения в чате. Тем же способом можно определить тему обращения в поддержку и выбрать обработчик: оплата, доставка, возврат. Порядка между категориями нет.

Score оценивает текст по упорядоченным уровням. Для очереди обращений можно описать срочность: «может подождать», «мешает работе, но есть обходной путь», «работа остановлена». Три уровня занимают позиции от 0 до 2, а итоговый score может быть дробным, между уровнями. Это положение на описанной вами шкале.

Noul возвращает вероятность ответа «да» числом от 0 до 1. Например, содержит ли комментарий персональные данные или просит ли клиент поговорить с человеком. Такой сигнал пригодится для модерации и передачи оператору; порог для действия задаёт приложение.

В одном вызове можно определить тип сообщения через Choice и отдельно спросить через Noul, содержит ли оно персональные данные. Так приложение получает категорию и дополнительный сигнал для проверки. Вопросы оцениваются независимо: второй не получает ответ на первый. Зависимости между решениями нужно организовать в коде.

Первый запрос: определить тип сообщения

Возьмём Choice с категориями «вопрос», «реклама» и «другое». В инструкции зададим правило для смешанного случая: если рекламное сообщение содержит вопрос, выбирать рекламу.

По quickstart нужен Python 3.10 или новее и официальный пакет typesafe-sdk. Получите ключ в консоли TypeSafe и передайте его через переменную окружения TYPESAFE_API_KEY. Например, в PowerShell:

python -m pip install typesafe-sdk
$env:TYPESAFE_API_KEY = "ваш-ключ-из-консоли"

Сохраните код в classify_message.py. Клиент прочитает ключ из окружения. jev-latest выбирает актуальную модель по примеру документации, без фиксации версии.

from typesafe_sdk import Choice, TypeSafeClient

message = "Подскажите, как подключить уведомления только для новых заказов?"

with TypeSafeClient(model="jev-latest") as client:
    response = client.system_one(
        state=message,
        questions={
            "message_type": Choice(
                instructions=(
                    "Определи тип сообщения в чате. "
                    "Если реклама содержит вопрос, выбери рекламу."
                ),
                criteria={
                    "question": "Просьба о помощи или информации без рекламы",
                    "advertising": "Продвижение товара, услуги или внешнего канала",
                    "other": "Сообщение без рекламы и без просьбы о помощи или информации",
                },
            ),
        },
    )

answer = response.choices["message_type"]
print("Метка:", answer.choice)
print("Вероятности:", answer.probabilities)
print("Confidence:", answer.confidence)

В той же сессии PowerShell запустите python classify_message.py.

state содержит оцениваемый текст; вместо строки допустимы структурированные данные, например сообщение вместе с правилами чата. В questions идентификатор message_type связывает вопрос с ответом, instructions задаёт задание, criteria описывает категории. В Python SDK ответы Choice доступны через response.choices.

Поле .choice содержит метку с наибольшей вероятностью, .probabilities содержит распределение по вариантам. Если оценки «вопрос» и «реклама» близки, приложение может отправить сообщение на разбор, даже когда одна метка формально победила. Распределение позволяет учесть такую неоднозначность при выборе действия.

Confidence для Choice вычисляется из наибольшей вероятности с поправкой на число вариантов: равномерному выбору соответствует 0, полной сосредоточенности на одном варианте соответствует 1. Это отдельный показатель, а не сама вероятность выбранной метки. Даже высокое значение не гарантирует, что модель правильно поняла сообщение.

Jev подходит для участка приложения, где нужно принять определённое заранее решение по содержанию текста: выбрать обработчик, расставить приоритеты или выделить сообщение для модератора. После классификации вопрос можно передать боту для подготовки ответа. Генерация развёрнутого текста и задачи с длительным рассуждением требуют отдельного этапа; Jev занимает место между входными данными и следующим действием кода.

Автор: aetseihe-it

Источник