Цены Kev 4B в рублях — от 4,64 ₽ за 1 млн токенов
| Тип операции | Стоимость |
|---|---|
|
Вход
За 1 млн токенов
Тарифицируются входные токены — текст вопросов и оцениваемое состояние (state). Выход модели структурированный (answers), в токенах не тарифицируется.
|
4,64 ₽ |
Возможности Kev 4B
Kev 4B — это небольшая модель принятия решений с открытым весом от Джареда Пальмера, построенная как адаптер LoRA и указатель на Qwen3.5-4B-Base и обслуживаемая по тому же контракту /v1/systemone, что и Jev от TypeSafe. Отправьте состояние и типизированные вопросы (да/нет, множественный выбор или оценка), и она вернет откалиброванную вероятность по каждому вопросу за один проход, без сгенерированного текста. Это рекомендуемая контрольная точка в семействе Kev (0.8B, 4B, 9B) и подходит для маршрутизации, классификации и проверок политики, которые хотят компактную альтернативу Jev с лицензией Apache-2.0.
Код, карточки моделей и наборы для оценки: https://github.com/jaredpalmer/kev
Характеристики Kev 4B
Контекстное окно
- Всего
- 8K токенов
Модальности
- Вход
- Текст
- Выход
- Решения
Провайдеры Kev 4B
| Провайдер | Вход | Контекст |
|---|---|---|
|
|
4,64 ₽ | 8K |
Цены считаются по провайдеру, который фактически обработал запрос. Порядок в таблице — по возрастанию цены. Прочерк — провайдер не поддерживает операцию. Флаг — страна серверов или штаб-квартиры провайдера (подробности — при наведении).
API Kev 4B: подключение и примеры кода
/api/v1/decisions
. Работают и официальные SDK TypeSafe: укажите наш
base_url
и ключ из личного кабинета.
# pip install typesafe-sdk
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
client = TypeSafeClient(
base_url="https://routerai.ru/api",
api_key="YOUR_API_KEY",
model="jaredpalmer/kev-4b",
)
response = client.system_one(
state="Здравствуйте! Третий день не могу подключить оплату на сайте — платежи клиентов не проходят, мы теряем заказы. Помогите, пожалуйста, срочно.",
questions={
"is_urgent": Noul(instructions="Клиент сообщает о срочной проблеме?"),
"department": Choice(
instructions="Какая команда должна заняться обращением?",
criteria={
"billing": "Платежи, счета, возвраты, подписки",
"technical": "Ошибки, сбои, интеграции, настройка",
"sales": "Тарифы, покупка, вопросы до оплаты",
},
),
"frustration": Score(
instructions="Насколько раздражён клиент?",
criteria=[
"Спокоен, просто описывает ситуацию",
"Раздражён, но вежлив",
"Очень зол, резкие выражения",
],
),
},
)
print(response.answers["is_urgent"].noul) # 0.98
print(response.answers["department"].choice) # "billing"
print(response.answers["frustration"].score) # 0.88
// npm install @typesafe-ai/sdk
import { TypeSafeClient, choice, noul, score } from '@typesafe-ai/sdk';
const client = new TypeSafeClient({
baseURL: 'https://routerai.ru/api',
apiKey: 'YOUR_API_KEY',
defaultModel: 'jaredpalmer/kev-4b',
});
const response = await client.systemOne({
state:
'Здравствуйте! Третий день не могу подключить оплату на сайте — платежи клиентов не проходят, мы теряем заказы. Помогите, пожалуйста, срочно.',
questions: {
is_urgent: noul('Клиент сообщает о срочной проблеме?'),
department: choice('Какая команда должна заняться обращением?', {
billing: 'Платежи, счета, возвраты, подписки',
technical: 'Ошибки, сбои, интеграции, настройка',
sales: 'Тарифы, покупка, вопросы до оплаты',
}),
frustration: score('Насколько раздражён клиент?', [
'Спокоен, просто описывает ситуацию',
'Раздражён, но вежлив',
'Очень зол, резкие выражения',
]),
},
});
console.log(response.answers.is_urgent.noul); // 0.98
console.log(response.answers.department.choice); // "billing"
console.log(response.answers.frustration.score); // 0.88
import requests
import json
url = "https://routerai.ru/api/v1/decisions"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"model": "jaredpalmer/kev-4b",
# Вопросы к состоянию: имя → определение. Ответы придут под теми же именами.
"questions": {
"is_urgent": {
"type": "noul", # булев ответ: вероятность «да» от 0 до 1
"instructions": "Требует ли обращение немедленной реакции дежурного?",
"criteria": {
"true": "Сервис недоступен или клиент теряет деньги прямо сейчас",
"false": "Вопрос можно разобрать в общей очереди поддержки"
}
},
"team": {
"type": "choice", # выбор одного варианта + probabilities по всем
"instructions": "На какую команду направить обращение?",
"criteria": {
"billing": "Оплата, счета, возвраты, тарифы",
"technical": "Ошибки API, интеграция, доступность сервиса",
"other": "Всё остальное"
}
},
"severity": {
"type": "score", # оценка по шкале: ответ — индекс в этом списке
"instructions": "Насколько сильно это влияет на работу клиента?",
"criteria": [
"Влияния нет, вопрос информационный",
"Частичное неудобство, есть обходной путь",
"Работа клиента заблокирована полностью"
]
}
},
# state — то, что оцениваем: строка, объект или массив.
"state": {
"ticket": "С 10:40 все запросы к API возвращают 500. Оплата прошла вчера.",
"plan": "enterprise"
}
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))
# result["answers"]["team"]["choice"] → "technical"
# result["answers"]["is_urgent"]["noul"] → 0.96
# result["answers"]["severity"]["score"] → 1.99
# 2) Пакетная оценка списка одним запросом: вопросов может быть сколько угодно,
# они оцениваются параллельно, но каждый вопрос даёт ровно один ответ —
# поэтому на каждый элемент списка нужен свой вопрос. Общие правила кладём
# в state один раз, а сам элемент дублируем в тексте вопроса: ссылка только
# по индексу (items[3]) разрешается неточно, и соседние элементы «протекают».
comments = {
"c1": "Отличный сервис, заказ пришёл за два дня, рекомендую!",
"c2": "Заработок от 5000 ₽ в день без вложений, пишите в личку",
"c3": "Подскажите, где найти инструкцию по настройке?"
}
questions = {}
for comment_id, text in comments.items():
questions[f"comment_{comment_id}"] = {
"type": "noul",
"instructions": f"Является ли комментарий comments.{comment_id} = «{text}» спамом по правилам из policy?",
"criteria": {
"true": "Реклама, обещание заработка, контакты или ссылка на сторонний ресурс",
"false": "Отзыв, вопрос или обсуждение по теме"
}
}
data = {
"model": "jaredpalmer/kev-4b",
"questions": questions,
"state": {
# Правила — один раз на весь пакет
"policy": "Комментарии к статьям сайта. Спам — реклама товаров и услуг, обещания заработка, приглашения писать в личные сообщения или мессенджеры, телефоны и ссылки на сторонние ресурсы. Не спам — отзывы, вопросы и обсуждение по теме статьи.",
"comments": comments
}
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
for comment_id, text in comments.items():
probability = result["answers"][f"comment_{comment_id}"]["noul"]
print(text[:30], "спам" if probability >= 0.7 else "ок", probability)
# c1 ок 0.03 / c2 спам 0.99 / c3 ок 0.03
# Порог выбирайте сами; значения между 0.3 и 0.7 удобно отправлять на ручную проверку.
# Нужна причина — замените noul на choice с вариантами ok / ad / scam.
# 50 элементов — около 13 тысяч входных токенов, ответ меньше секунды.
# Подробнее: https://routerai.ru/docs/guides/overview/decisions/recipes
curl -X POST "https://routerai.ru/api/v1/decisions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jaredpalmer/kev-4b",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Требует ли обращение немедленной реакции дежурного?",
"criteria": {
"true": "Сервис недоступен или клиент теряет деньги прямо сейчас",
"false": "Вопрос можно разобрать в общей очереди поддержки"
}
},
"team": {
"type": "choice",
"instructions": "На какую команду направить обращение?",
"criteria": {
"billing": "Оплата, счета, возвраты, тарифы",
"technical": "Ошибки API, интеграция, доступность сервиса",
"other": "Всё остальное"
}
},
"severity": {
"type": "score",
"instructions": "Насколько сильно это влияет на работу клиента?",
"criteria": [
"Влияния нет, вопрос информационный",
"Частичное неудобство, есть обходной путь",
"Работа клиента заблокирована полностью"
]
}
},
"state": {
"ticket": "С 10:40 все запросы к API возвращают 500. Оплата прошла вчера.",
"plan": "enterprise"
}
}'
# 2) Пакетная оценка списка одним запросом: каждый вопрос даёт ровно один ответ,
# поэтому на каждый элемент — свой вопрос (comment_<id>). Правила — один раз в state,
# сам элемент дублируем в тексте вопроса: ссылка только по индексу (items[3])
# разрешается неточно, соседние элементы «протекают». Ответы придут под теми же
# ключами: answers.comment_c1.noul → 0.03, answers.comment_c2.noul → 0.99.
# Подробнее: https://routerai.ru/docs/guides/overview/decisions/recipes
curl -X POST "https://routerai.ru/api/v1/decisions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jaredpalmer/kev-4b",
"questions": {
"comment_c1": {
"type": "noul",
"instructions": "Является ли комментарий comments.c1 = «Отличный сервис, заказ пришёл за два дня, рекомендую!» спамом по правилам из policy?",
"criteria": {
"true": "Реклама, обещание заработка, контакты или ссылка на сторонний ресурс",
"false": "Отзыв, вопрос или обсуждение по теме"
}
},
"comment_c2": {
"type": "noul",
"instructions": "Является ли комментарий comments.c2 = «Заработок от 5000 ₽ в день без вложений, пишите в личку» спамом по правилам из policy?",
"criteria": {
"true": "Реклама, обещание заработка, контакты или ссылка на сторонний ресурс",
"false": "Отзыв, вопрос или обсуждение по теме"
}
}
},
"state": {
"policy": "Комментарии к статьям сайта. Спам — реклама товаров и услуг, обещания заработка, приглашения писать в личные сообщения или мессенджеры, телефоны и ссылки на сторонние ресурсы. Не спам — отзывы, вопросы и обсуждение по теме статьи.",
"comments": {
"c1": "Отличный сервис, заказ пришёл за два дня, рекомендую!",
"c2": "Заработок от 5000 ₽ в день без вложений, пишите в личку"
}
}
}'
Эндпоинт API для Kev 4B
Decisions
Возвращает структурированные ответы на заданные вопросы (булев, выбор из вариантов, оценка по шкале) вместо свободного текста. Как формулировать вопросы, рецепты и подключение официального SDK TypeSafe — в гайде «Решения (Jev)» в документации.
- Authorization
- Bearer YOUR_API_KEY
- Content-Type
- application/json
- Model
- jaredpalmer/kev-4b
Частые вопросы о Kev 4B
Работает ли Kev 4B из России без VPN?
Да. Прямой доступ через API RouterAI — без VPN, прокси и зарубежных карт, оплата в рублях.
Сколько стоит Kev 4B?
Вход — 4,64 ₽ за 1 млн токенов. Списывается только фактическое использование, без подписки.
Какой контекст у Kev 4B?
Контекстное окно — 8K токенов на запрос.
Что с данными в запросах к Kev 4B?
Содержимое запросов RouterAI передаёт только провайдеру модели для обработки и не использует для обучения моделей. Email, телефон и платёжные данные провайдерам не передаются, учётные данные хранятся на серверах в России. Политика конфиденциальности
Чем RouterAI отличается от сервиса Jaredpalmer?
Один ключ и единый баланс в рублях для всех моделей каталога, API в формате OpenAI.