# Решения по тексту · выбор, шкала, да/нет, ранжирование — neuraldeep.ru API

> Раздел машиночитаемой справки. Все разделы: https://neuraldeep.ru/llms.txt · всё одним файлом: https://neuraldeep.ru/llms-full.txt

Base URL: `https://api.neuraldeep.ru/v1`
Auth: `Authorization: Bearer $YOUR_KEY`

Тем же ключом — структурные решения по тексту под `/v1/decisions`. Модель **FRIDA-Decisions** (ai-forever) на наших GPU в РФ отвечает на вопросы о тексте одним проходом энкодера, без генерации: ответ всегда один из объявленных вариантов с вероятностями, парсить нечего. Варианты пишутся текстом в самом запросе, поэтому новый набор меток — это новый JSON, а не дообучение. Подходит для роутинга запросов, интентов поддержки, модерации и разметки. Обычный запрос занимает около 20 мс.

Автор модели — Артём Снегирёв ([@artemsnegirev](https://t.me/artemsnegirev)). Это развитие [ai-forever/FRIDA](https://huggingface.co/ai-forever/FRIDA) (эмбеддер `frida` у нас тоже есть) от автора канала [@dealerAI](https://t.me/dealerAI). Карточка на Hugging Face: [ai-forever/FRIDA-Decisions](https://huggingface.co/ai-forever/FRIDA-Decisions). Что такое отдельная модель решений и зачем она рядом с LLM, хорошо видно по [TypeSafe Jev](https://www.eesel.ai/blog/typesafe-jev-pricing): тот же класс задач, только у нас русскоязычная открытая модель на своих GPU в РФ.

Четыре типа вопросов:

| type | что спрашивает | что вернёт |
|---|---|---|
| `choice` | какой из вариантов подходит | ключ варианта и вероятности всех |
| `score` | где текст на шкале | уровень и вероятности уровней |
| `noul` | верно ли утверждение | `noul` = вероятность «да» |
| `ranking` | порядок кандидатов | порядок и вероятности |

```bash
curl -s https://api.neuraldeep.ru/v1/decisions \
  -H "Authorization: Bearer $NEURALDEEP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "Здравствуйте, у меня не приходит код подтверждения уже час.",
    "questions": {
      "topic": {"type": "choice", "instructions": "К какой теме относится обращение?",
                "criteria": {"login": "вход в аккаунт, коды, пароли",
                             "payment": "оплата, списания, возвраты",
                             "delivery": "доставка заказа"}},
      "urgency": {"type": "score", "instructions": "Оцени срочность обращения.",
                  "criteria": ["низкая", "средняя", "высокая"]},
      "spam": {"type": "noul", "instructions": "Является ли сообщение спамом?"}
    }
  }'
```

Ответ:

```json
{"model": "frida-decisions",
 "answers": {
   "topic": {"type": "choice", "choice": "login", "confidence": 0.99,
             "probabilities": {"login": 0.999, "payment": 0.001, "delivery": 0.001}},
   "urgency": {"type": "score", "score": 0.39, "probabilities": {"0": 0.56, "1": 0.08, "2": 0.35}},
   "spam": {"type": "noul", "noul": 0.04}},
 "usage": {"questions": 3, "options": 8, "state_tokens": 17, "state_truncated": false, "units_charged": 1}}
```

`state` — текст или любой JSON, до 512 токенов (длиннее обрезается, тогда `state_truncated: true`). Инструкция вопроса — до 96 токенов, один вариант — до 256 токенов, длиннее модель обрезает с конца. До 32 вопросов и 512 вариантов в одном запросе, тело до 256 КБ. У `noul` поле `criteria` необязательно, можно задать свои описания `{"true": "...", "false": "..."}`. У `ranking` `criteria` — объект `{id: текст}` или список.

Пишите варианты описаниями, а не голыми метками: модель сравнивает текст с описанием. `"сэндвич": "начинка между двумя ломтями хлеба"` против `"бутерброд": "один ломоть хлеба, начинка сверху"` различаются уверенно, а голые `"сэндвич"` и `"бутерброд"` дают почти монетку.

Отдельная корзина — лимит считается в **единицах**: одна единица на каждые 16 вариантов запроса, вверх. Запрос выше на 8 вариантов стоит одну единицу, каталог из 40 интентов — три. Остаток — `GET /v1/decisions/quota`. В кошельке единица стоит 0.0001 ₽, то есть 10 копеек за 1000 запросов. Модель обучена на 71% русского и 29% английского.

### Вторая модель: clef-flash

Тот же эндпоинт и тот же формат, но с `"model": "clef-flash"`: модель [Cloudflare/clef-flash](https://huggingface.co/Cloudflare/clef-flash) (Qwen3.5-9B с головой решений, Apache-2.0) на нашей RTX 4090 в РФ. Она крупнее FRIDA в десять раз, поэтому читает длинный текст целиком (вместе со схемой до 8192 токенов против 512 у FRIDA), увереннее на английском и на тонких различиях. Типы `choice`, `score` и `noul`, `ranking` у неё нет. Обычный запрос занимает около 150 мс, длинный текст или две сотни вариантов — около секунды.

```bash
curl -s https://api.neuraldeep.ru/v1/decisions \
  -H "Authorization: Bearer $NEURALDEEP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "clef-flash",
       "state": "Положил колбасу на кусок хлеба сверху, без второго ломтя.",
       "questions": {"t": {"type": "choice", "instructions": "Что это?",
         "criteria": {"сэндвич": "начинка между двумя ломтями хлеба",
                      "бутерброд": "один ломоть хлеба, начинка сверху"}}}}'
```

У `score` в ответе есть ещё `legend` (уровни шкалы), в `usage` — `input_tokens`. Квота общая с FRIDA, единица clef-flash считается за четыре: 0.0004 ₽ в кошельке.
