LABVIBE · МЕДИА ДЛЯ ТЕХ, КТО ДЕЛАЕТ

Вайбкодинг · 2 октября 2026 г.

Классифицировать быстрее с Jev

Jev — новый тип модели для узких решений: возвращает заранее структурированные ответы и уверенность. Для Python‑разработчиков Vercel выпустил AI SDK: install uv add ai, задайте AI_GATEWAY_API_KEY и вызывайте evaluate().

Редакционная иллюстрация: Классифицировать быстрее с Jev
LabVibe · AI-generated editorial illustration
Материал подготовлен по мотивам первоисточника. Оригинал: Vercel AI — Jev for Python engineers.

Что даёт Jev и как начать

Jev — модель, заточенная под узкие решения: вы даёте ей данные и набор вопросов с вариантами, а в ответ получаете выбранные варианты и показатель уверенности. Для Python‑разработчиков Vercel выпустил обновлённый AI SDK: установить пакет можно командой uv add ai; затем создайте ключ AI Gateway и укажите его в переменной окружения AI_GATEWAY_API_KEY. Ключевой вызов в SDK — функция evaluate(), которая напрямую обращается к Jev и возвращает структурированный JSON вместо размытых текстовых генераций.

Главная польза: Jev экономит время, когда задача сводится к принятию однозначного решения (выбор из опций, оценка по шкале, оценка вероятности). В лид‑части важно упомянуть точную команду и вызов — uv add ai, AI_GATEWAY_API_KEY и evaluate() — потому что они нужны, чтобы быстро начать эксперименты.

Коротко о том, как Jev устроен

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

В API Jev есть три ключевых типа вопросов: ChoiceQuestion (выбрать один вариант), ScoreQuestion (оценить по шкале, которую вы задаёте) и NoulQuestion (оценить вероятность того, что утверждение истинно). Эти названия оставить на английском имеет смысл, но при первом упоминании полезно понимать: ChoiceQuestion — выбор варианта, ScoreQuestion — числовая оценка, NoulQuestion — вероятностная оценка.

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

Как работать с Jev в Python — практическое включение

Интерактивный запуск сводится к трём шагам: установить пакет (uv add ai), задать ключ AI_GATEWAY_API_KEY и вызвать evaluate() через ai.ops.experimental или похожую обёртку. В примере из исходника модель выбирается через ai.get_model("typesafe-ai/jev"). evaluate() принимает модель, состояние (просто строку или сложный JSON) и словарь вопросов — и возвращает объект с полями, соответствующими вашим вопросам.

Практический смысл: вы формулируете состояние (контекст), перечень вопросов с типами и вариантами, вызываете evaluate() и быстро получаете готовые ответы для дальнейшей логики. Поскольку ответы уже типизированы, их проще валидировать и использовать в автоматизированных процессах — например, переключать режимы интерфейса, фильтровать сообщения или выбирать следующий шаг в пайплайне.

Два примера из поста: распознавание ввода и генерация кода

Первый пример — классический кейс классификации: отличать, печатает ли пользователь на вводе английский текст или Python‑код. Автор пытался сделать такой классификатор самостоятельно и нехитрым тренингом получил нестабильный результат: модель дергалась при частично введённых фрагментах. Jev в этой задаче оказался заметно лучше, но всё ещё ошибался на коротких, незавершённых строках — например, сочетание what’s + up Jev воспринял как английское, хотя это мог быть частично введённый Python‑выражение.

Второй пример — попытка заставить Jev генерировать Python‑код. Поскольку Jev не предназначен для традиционной построчной генерации текста, автор переключился на генерацию абстрактного синтаксического дерева (AST — абстрактное синтаксическое дерево). Подход такой: сначала развернуть пользовательский запрос в детальный план с помощью LLM (в примере использовали GPT‑5.6), затем шаг за шагом просить Jev выбирать узлы AST, показывая варианты и превью итогового кода. Хост‑код отвечает за пунктуацию и отступы, Jev — за структуру и содержание.

Результат: подход позволил получить синтаксически корректный Python‑код, но по содержанию он оказался в большинстве случаев неверен. Тем не менее идея интересна: комбинировать сильное планирование LLM с быстрым и типизированным выбором, который делает Jev.

Практические следствия

Если ваша задача — быстро принять однотипное решение (например, классификация, фильтрация, оценка по шкале), Jev позволяет получить ответ и показатель уверенности в структурированном виде. Это удобно для интерфейсов, где нужно немедленное, машиночитаемое решение без дополнительной постобработки генеративного текста.

Комбинация Jev + LLM работает как «планер + исполнитель»: LLM даёт подробный план или инструкции, а Jev быстро и детерминированно выбирает из ограниченного множества опций. Такой подход полезен, когда важны скорость и предсказуемая структура ответа.

Ограничения и когда Jev не подойдёт

1) Узкая специализация: Jev заточен на классификацию и выбор; если вам нужно свободное творческое генерирование текста или длинные рассуждения, традиционные LLM лучше.

2) Точность зависит от задачи: Jev может ошибаться и иногда демонстрировать неожиданные ответы на короткие или недосрочно введённые фрагменты. Для критичных решений нужна тщательная проверка на ваших данных.

3) Генерация кода сложна: заставить Jev писать корректную и семантически верную программу оказалось непросто. Подход с AST даёт синтаксис, но не гарантирует правильную логику.

4) Нужен внешний планер для сложных задач: для надёжного выполнения сложных инструкций потребуется комбинирование с LLM, который развёрнуто опишет шаги для Jev.

Короткая инструкция «с руки»

1) Установите пакет: uv add ai.

2) Создайте ключ AI Gateway и экспортируйте в AI_GATEWAY_API_KEY.

3) Используйте ai.get_model("typesafe-ai/jev") и вызов jev.evaluate() с состоянием и картой вопросов.

4) Проверяйте ответы на типичных примерах вашей задачи и мониторьте ошибки, прежде чем применять в продакшне.