Jev для Python-разработчиков

Источник: Vercel

Jev для Python-разработчиков

Источник: Vercel

Изучите Jev с помощью Python AI SDK от Vercel. Узнайте, как работают его быстрые структурированные решения, попробуйте экспериментальный API evaluate() и проследите за двумя экспериментами: классификацией текста и генерацией кода на Python.

•Обновлено: 3 октября 2026 г.

Невозможно не слышать о Jev. Кажется, все так или иначе экспериментируют с ним: от принятия торговых решений (что могло пойти не так?) до генерации пользовательских интерфейсов (возможно, мы на пороге чего-то важного!).

Jev — это новый тип ИИ-модели. Вы подаете ему данные и задаете набор вопросов с множественным выбором, а он отвечает, указывая уровень уверенности в каждом ответе. Как и любая другая модель, Jev может совершать ошибки и будет их совершать, но он делает это быстро.

Суть в следующем: Jev создан для принятия узкоспециализированных решений. Достаточно ли он точен для ваших задач — это то, что вам предстоит проверить.

Задача команды Python в Vercel — упростить для Python-разработчиков работу с Jev, среди прочего. Поэтому приветствуйте последний выпуск AI SDK для Python.

Установите его с помощью uv add ai, чтобы использовать новый экспериментальный API evaluate(), который напрямую взаимодействует с «нервной системой» Jev. Затем создайте ключ AI Gateway, установите AI_GATEWAY_API_KEY и попробуйте этот полный пример:

import asyncio

import ai

from ai.ops import experimental as jev

async def main():

result = await jev.evaluate(

ai.get_model("typesafe-ai/jev"),

"You're Neil deGrasse Tyson",

{"bigger": jev.ChoiceQuestion(

instructions="Which is bigger, the Sun or the Earth?",

criteria={"Sun": None, "Earth": None},

print(result.value["bigger"])

if __name__ == "__main__":

asyncio.run(main())

Начнем с того, в чем Jev точно не может ошибиться.

Теперь я хочу объяснить, что такое Jev и как заставить его работать на вас, используя пару примеров. Один хороший, другой глупый. Спросите Jev, какой из них какой. Давайте повеселимся!

Скопировать ссылку на заголовок Jev для пятилеток

Jev — это универсальный классификатор.

Классификаторы — это классический примитив старого доброго машинного обучения. Допустим, вам нужен спам-фильтр. Вы обучаете классификатор на множестве писем, каждое из которых помечено как спам или не спам, и он учится определять, выглядит ли входящее письмо как спам.

Проблема в том, что для каждой новой задачи классификации вам нужно собирать и размечать новые данные, а затем обучать новый классификатор, чтобы настроить его веса под эту задачу. Но знаете, у чего еще есть веса? У больших языковых моделей! Поэтому команда, стоящая за Jev, придумала, как превратить LLM в классификатор, который не нужно обучать для конкретной предметной области, потому что он уже обучен на широком пласте человеческих знаний.

И хотя Jev начинался как LLM, он по-прежнему ведет себя как классификатор. Он дешевый, быстрый и возвращает структурированный JSON вместо генерации текста. Его ответы соответствуют типам и вариантам выбора, которые вы определяете в своих вопросах.

Скопировать ссылку на заголовок API

Официальный API Jev проще некуда, и чтобы сохранить это, мы реализовали его в Python AI SDK практически дословно.

Есть только одна функция, evaluate(), и несколько вспомогательных типов. Функция принимает модель, состояние (может быть простой строкой или сложным JSON) и сопоставление вопросов. Вопрос — это экземпляр либо ChoiceQuestion (выбор одного ответа), ScoreQuestion (оценка состояния по заданной вами шкале) или NoulQuestion (оценка вероятности того, что утверждение истинно).

Для получения полной справочной информации по API направьте своего агента в документацию. Теперь у нас должно быть хорошее представление о том, что такое Jev и как его использовать. Пора посмотреть, что мы можем с ним построить!

Скопировать ссылку на заголовок Пример 1: Python или английский?

Это разумный пример использования Jev: буквально в качестве классификатора.

Около года назад у меня возникла идея сделать Python REPL агентным. Я хотел, чтобы у него был отличный UX, и подумал, что было бы круто, если бы REPL мог определять, пишу ли я на английском или на Python, без необходимости вручную переключаться между чатом и кодом.

Мне нужен был классификатор, поэтому я потратил два дня на обучение собственного на случайной выборке кода Python и английского текста.

После большого количества пота и потраченных токенов Opus 4.1 я пришел к выводу, что недостаточно хорош, чтобы создать надежный классификатор для Python против английского. Интерфейс казался дерганым: ввод «if i» подсвечивался как Python, «if i i» переключался на английский, а «if i» снова возвращался к Python. То, что казалось очень простой задачей, оказалось действительно сложной.

Давайте посмотрим, как справится Jev:

Это реальные трассировки ответов Jev на вопрос «это похоже на английский или Python?». Код за ними не особенно интересен; по сути, это начальный фрагмент кода из этого поста с другим вопросом.

Что интереснее, так это то, сможет ли Jev решить мою проблему с REPL. И хотя он, похоже, справляется гораздо лучше, чем мой самодельный классификатор, у него все еще есть пробелы. Например, «what's» + « up для Jev выглядит как английский, хотя для меня очевидно, что это частично введенное выражение на Python.

Скопировать ссылку на заголовок Пример 2: Jev пишет код на Python

Как насчет того, чтобы сделать шаг назад и заставить Jev генерировать текст, как LLM? Jev не умеет писать, поэтому один из способов заставить его печатать — это заставить его идти по буквам. На каждом шаге он выбирает следующий символ из набора букв, знаков препинания и пробелов. Другой способ — выбирать по одному слову за раз из словаря из N английских слов.

Когда я это увидел, я сразу понял, что должен проверить, насколько хорошо Jev пишет код на Python.

Моя первая попытка использовала метод «буквы + ключевые слова Python + пробелы», но я быстро понял, что Jev едва может напечатать оператор if таким образом. Единственный способ получить что-то разумное — это заставить его генерировать абстрактное синтаксическое дерево (AST) программы.

Идея:

  • Возьмите запрос пользователя и используйте LLM (в данном случае GPT-5.6), чтобы расширить его в конкретный набор инструкций для Jev. Я обнаружил, что без детального «плана» Jev с трудом реализует даже элементарные задачи.

Возьмите запрос пользователя и используйте LLM (в данном случае GPT-5.6), чтобы расширить его в конкретный набор инструкций для Jev. Я обнаружил, что без детального «плана» Jev с трудом реализует даже элементарные задачи.

  • Заставьте Jev построить AST Python через серию выборов. На каждом шаге показывайте ему текущую программу, отмечайте заполняемое поле и предлагайте возможные следующие узлы, такие как вызов функции, арифметическая операция или переменная. Каждый вариант сопровождается предварительным просмотром кода, который он создаст.

Заставьте Jev построить AST Python через серию выборов. На каждом шаге показывайте ему текущую программу, отмечайте заполняемое поле и предлагайте возможные следующие узлы, такие как вызов функции, арифметическая операция или переменная. Каждый вариант сопровождается предварительным просмотром кода, который он создаст.

  • Применяйте каждый выбор к дереву и преобразуйте его обратно в Python. Хост-код обрабатывает пунктуацию и отступы; Jev определяет общую структуру и содержимое программы. Повторяйте, пока Jev не закончит дерево.

Применяйте каждый выбор к дереву и преобразуйте его обратно в Python. Хост-код обрабатывает пунктуацию и отступы; Jev определяет общую структуру и содержимое программы. Повторяйте, пока Jev не закончит дерево.

Мне удалось заставить Jev генерировать синтаксически корректный (хотя по большей части все еще неверный) код на Python с помощью этого подхода. Но, как видите, заставить классификаторы выполнять работу LLM довольно сложно. Исходный код доступен на GitHub, если вы считаете, что можете справиться лучше.

Скопировать ссылку на заголовокПопробуйте Jev

Ни один из экспериментов не сработал так, как я надеялся, но я все еще в восторге от Jev. Мы только начинаем исследовать возможности этого нового класса моделей!

Попробуйте его сегодня с помощью AI SDK for Python и расскажите нам, что вы создали. Все, что вам нужно — это uv add ai и ключ AI Gateway. Вот промпт для вашего агента по написанию кода, который можно сразу скопировать и вставить:

О чём эта статья

Что-то непонятно? Спросите по статье — объясню простыми словами.

Не хотите разбираться сами? Мы поможем.

Ещё в разделе «Разработка ПО»

Все →

Ещё от Vercel