Source: https://ailoot.ai/models/ru/mistralai-mistral-medium-3-1-u003a-batch/
Canonical: https://ailoot.ai/models/ru/mistralai-mistral-medium-3-1-u003a-batch/
Language: ru

# Mistral: Mistral Medium 3.1 (batch)

[Markdown](https://ailoot.ai/models/ru/mistralai-mistral-medium-3-1-u003a-batch/index.md) · [JSON](https://ailoot.ai/models/ru/mistralai-mistral-medium-3-1-u003a-batch/facts.json)

## [Mistral: Mistral Medium 3.1 (batch)](https://ailoot.ai/models/ru/mistralai-mistral-medium-3-1-u003a-batch/)

Mistral Medium 3.1 — модель с текстовым и визуальным входом для диалоговых ответов, вопросов по документам и структурированного извлечения. Заявленный разработчиком контекст 128 тыс. токенов и перечисленные возможности вызова функций, предсказанного вывода и префиксов поддерживают объяснения по источникам и целевые правки.

- [**Ailoot Ultra · Пакетная обработка** `POST /v1/batches` `mistralai/mistral-medium-3.1:batch`](https://ailoot.ai/models/ru/mistralai-mistral-medium-3-1-u003a-batch/#method-0)

О модели

Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.

Mistral Medium 3.1 — мультимодальная редакция Mistral AI для понимания текста и визуальных материалов. Разработчик описывает эту ревизию как улучшение тона и качества в линейке Medium 3. Она принимает текст и изображения и создаёт текст: объяснение, ответ по документу, структурированную запись или предлагаемый вызов функции. Фиксированный идентификатор этой редакции у разработчика — mistral-medium-2508.

Контекст и конкретная редакция

Страница модели документирует контекстное окно 128 тыс. токенов. Используйте его, чтобы удерживать вместе связанные исходные фрагменты, визуальные свидетельства, диалог и задачу пользователя. Определяйте роли документов и вопрос для ответа до передачи большой коллекции. Длинный контекст может поддерживать целевое сравнение, тогда как итоговый материал остаётся короткой таблицей или исправленным разделом.

Medium 3.1 сохраняет собственную спецификацию. Контекст 256 тыс. токенов, плотную архитектуру со 128 млрд параметров и настраиваемые гибридные режимы рассуждения, описанные для Medium 3.5, нельзя приписывать этой записи. Страница 3.1 не даёт числа параметров или отдельного показателя максимальной длины ответа, которые можно было бы обоснованно подставить из более поздней модели.

Структурированный вывод и функции

Разработчик перечисляет структурированный вывод, вызов функций и предсказанные ответы среди возможностей этой редакции. Для структурированного извлечения определите обязательные поля, ожидаемые типы и обработку отсутствующей в источнике информации. Запись может содержать идентификатор документа, извлечённое утверждение, его место в источнике и оставшийся вопрос. Просите только запись, если её будет разбирать программа, или держите текстовое объяснение отдельно, если кому-то нужно проверить интерпретацию.

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

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

Предсказанные правки и префиксы ответов

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

Страница модели также перечисляет продолжение префикса ответа. В документации разработчика по чату префикс задаёт известное начало ответа ассистента, после которого продолжается генерация. Известное начало и предсказанное основное содержимое решают разные задачи подготовки. Пакетная обработка и интерфейсы агентов и диалогов также являются возможностями процесса, а не отдельными редакциями Medium 3.1 для изображений, аудио или рассуждения.

Вопросы по документам и визуальным материалам

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

Руководство разработчика по зрению прямо включает Medium 3.1. Прямой визуальный вопрос может передать читаемый график, изображение документа или снимок экрана и спросить, какие видимые свидетельства подтверждают заключение. Сохраняйте оси, единицы измерения, подписи и контекст вокруг вырезанного поля. Если передано несколько изображений, укажите их порядок и роль, не оставляя модели угадывать, что является оригиналом, редакцией или эталоном.

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

Подготовка итогового материала

Задайте ассистенту ясную роль, исходный материал для использования и форму ответа. Отделяйте постоянные правила ответа от анализируемого документа и указывайте итоговый язык и терминологию. Полезный ответ может разделять извлечённый факт, его источник и интерпретацию, облегчая проверку по сравнению с одним объединённым резюме.

Документированный результат остаётся текстом. Внешние инструменты, изменения файлов и дальнейшая обработка документов относятся к приложению, подключённому к диалогу. Сохраняйте именованную редакцию Medium 3.1 и её контекст 128 тыс. токенов и запрашивайте объяснение, структурированную запись или целевую правку, которые действительно нужны следующему шагу.

**Ailoot Ultra · Пакетная обработка** `POST /v1/batches` `mistralai/mistral-medium-3.1:batch`

[`mistralai/mistral-medium-3.1:batch`](https://ailoot.ai/models/ru/#m=mistralai%2Fmistral-medium-3.1%3Abatch&route=Ultra&caller=mistralai%2Fmistral-medium-3.1%3Abatch&fmt=batches)

Mistral /`mistralai/mistral-medium-3.1:batch`

### Начало

Mistral Medium 3.1 — модель с текстовым и визуальным входом для диалоговых ответов, вопросов по документам и структурированного извлечения. Заявленный разработчиком контекст 128 тыс. токенов и перечисленные возможности вызова функций, предсказанного вывода и префиксов поддерживают объяснения по источникам и целевые правки.

Допустимые входные данные

Текст

Результаты

Текст

### Доступно в Ailoot · входные данные и методы

**Ailoot Ultra · Пакетная обработка** `POST /v1/batches`

Входные данные

`text`

Результат

`text`

Выходной формат

Встроенный JSON results\[\].response.body

| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
| --- | --- | --- | --- | --- |
| Поле`endpoint` | Тип`string` | ТребованиеОбязательно | Значения и ограничения /v1/chat/completions | По умолчанию— |
| Поле`model` | Тип`string` | ТребованиеОбязательно | Значения и ограничения mistralai/mistral-medium-3.1:batch | По умолчанию— |
| Поле`requests` | Тип`batch_item[]` | ТребованиеОбязательно | Значения и ограничения Минимум элементов: 1 | По умолчанию— |
| Поле`requests[].custom_id` | Тип`string` | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
| Поле`requests[].body.messages` | Тип`message[]` | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
| Поле`completion_window` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения 24h | По умолчанию— |
| Поле`provider` | Тип`object\|null` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`requests[].body.model` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения mistralai/mistral-medium-3.1:batch, mistralai/mistral-medium-3.1 | По умолчанию— |
| Поле`provider.only` | Тип`string[]` | ТребованиеНеобязательно | Значения и ограничения mistral | По умолчанию— |
| Поле`provider.allow_fallbacks` | Тип`boolean\|null` | ТребованиеНеобязательно | Значения и ограничения false, null | По умолчанию— |

Параметры и жизненный цикл метода

| Параметр | Контракт |
| --- | --- |
| Параметр`content_type` | Контрактapplication/json |
| Параметр`required` | Контрактendpoint, model, requests |
| Параметр`material_types` | Контрактtext |
| Параметр`representation` | КонтрактВстроенный массив requests\[\]; у каждого элемента есть custom\_id и body |
| Параметр`request_endpoint_profile` | Контракт/v1/chat/completions |
| Параметр`file_material` | КонтрактВызывающая сторона может локально прочитать фактический JSONL в UTF-8 и поместить его в requests\[\]. Назначение загрузки, input\_file\_id и ссылка на файл не используются. Отсутствующий или пустой материал клиента останавливает подготовку до POST. |
| Параметр`serialization_order` | Контрактendpoint, model, provider (если указан), completion\_window (если указан), requests — последним |
| Параметр`optional_controls` | Контрактprovider.only, provider.allow\_fallbacks, completion\_window |
| Параметр`schema_scope` | КонтрактТела текстовых запросов Chat Completions в документированной встроенной оболочке Batch. |

Жизненный цикл: `asynchronous`

`GET /v1/batches/{operation_id}` · Фактический response.id исходного ответа на создание; тот же пользователь, ключ и группа

### Тарифы

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим

Не указано При выборе быстрого режима

Режим flex

Не указано При выборе режима flex

Максимальная интенсивность рассуждений

Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

Цены явного кэширования

Не включено Когда запрошено явное кэширование

#### Ставки Ailoot

#### Цены по конфигурациям

Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.

| Конфигурация | Шкала ставок | Токенов контекста больше | Токенов контекста не более, включительно | Плата |
| --- | --- | --- | --- | --- |
| КонфигурацияБазовые ставки за токены | Шкала ставокБазовая ставка | Токенов контекста больше— | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0004** / 1K токенов Выход · Выходные токены **$0.002** / 1K токенов Вход · Чтение кэша **$0.00004** / 1K токенов Вход · Запись в кэш **—** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |
| КонфигурацияУровень 1 по длине запроса | Шкала ставок— | Токенов контекста больше0 | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0004** / 1K токенов Выход · Выходные токены **$0.002** / 1K токенов Вход · Чтение кэша **$0.00004** / 1K токенов Вход · Запись в кэш **—** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. [Как работают резервирование и расчёт →](https://ailoot.ai/docs/ru/billing/reserve/)

### Примеры запросов

#### Ailoot Ultra · Пакетная обработка

curl · сохранённый образец запросаPython HTTP · реальный JSONL клиентаPython · сохраните каждый готовый результат

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"mistralai/mistral-medium-3.1:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
```

```python
import json, os
from pathlib import Path
from urllib.request import Request, urlopen

def prepare_requests(customer_path):
    path = Path(customer_path)
    if not path.is_file(): raise ValueError("Customer JSONL file is missing")
    items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
    if not items: raise ValueError("Customer JSONL contains no requests")
    ids = set()
    for item in items:
        if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
        cid = item["custom_id"]
        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
        ids.add(cid)
        if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
        supplied_model = item["body"].get("model")
        if supplied_model is not None and supplied_model not in ['mistralai/mistral-medium-3.1:batch', 'mistralai/mistral-medium-3.1']: raise ValueError("body.model must be an exact documented caller or wire ID")
    return {"endpoint":"/v1/chat/completions", "model":"mistralai/mistral-medium-3.1:batch", "requests":items}

if __name__ == "__main__":
    material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
    if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
    body = prepare_requests(material)
    key = os.environ.get("AILOOT_API_KEY", "")
    if not key: raise SystemExit("Set AILOOT_API_KEY")
    request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
    with urlopen(request) as response:
        raw = response.read()
        Path("batch-create-response.json").write_bytes(raw)
        print(raw.decode("utf-8"))
```

```python
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
    raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
    raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
```

### Получить и сохранить результаты

#### Ailoot Ultra · Пакетная обработка

Встроенный JSON results\[\].response.body

- `GET /v1/batches/{operation_id}`

##### Проверить статус задачи

curl · статус исходной операции

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
```

##### Сохраняйте все готовые результаты

Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.

Сохраняйте полный исходный JSON статуса, каждый результат и custom\_id, а также полное тело ответа или ошибки. Сохраняйте завершённые results\[\] как JSONL без фильтрации.

##### Если нужно проверить исходный ответ

Сохраните исходный ID операции. Ответ 503 result\_pending\_check содержит X-Should-Retry:false; никогда не отправляйте повторно исходный пакет с неизвестным результатом.

Поля ответа

| Поле | Тип |
| --- | --- |
| Поле`results[].custom_id` | Типstring |
| Поле`results[].response.body.choices[].message.content` | Типstring\|null |
| Поле`results[].error` | Типobject\|null |
| Поле`usage` | Типobject\|null |
| Поле`id` | Типstring |
| Поле`model` | Типstring |
| Поле`endpoint` | Типstring |
| Поле`status` | Типstring |
| Поле`request_counts` | Типobject |
| Поле`results[].id` | Типstring |
| Поле`results[].response.status_code` | Типinteger |
| Поле`results[].response.request_id` | Типstring |

Ошибки и дальнейшие шаги

| Ответ | Условие | Следующий шаг |
| --- | --- | --- |
| Ответ400 · `invalid_request_error` | УсловиеНеверный формат документированной встроенной оболочки, повторяющиеся ключи, ошибки идентификации элементов или конфликт настроенных возможностей модели. | Следующий шагИсправьте указанные поля перед любой новой отправкой. |
| Ответ401 · `authentication_error` | УсловиеНедействительный ключ API. | Следующий шагИспользуйте разрешённый ключ Ailoot. |
| Ответ403 · `permission_error` | УсловиеГруппа пакетной обработки недоступна. | Следующий шагПроверьте права доступа ключа и группы. |
| Ответ422 · `invalid_request_error` | УсловиеПакетная обработка оплачивается с баланса; создание по подписке отклоняется. | Следующий шагИспользуйте разрешённую группу с оплатой с баланса. |
| Ответ422 · `price_unavailable` | УсловиеСтоимость входных данных пакета невозможно рассчитать. | Следующий шагСохраните ответ; используйте документированный формат входных данных для этого семейства. |
| Ответ402 · `billing_error` | УсловиеРезерв для пакетной обработки недоступен. | Следующий шагУстраните причину отказа в допуске перед новым запросом. |
| Ответ503 · `price_unavailable` | УсловиеЦена метода пакетной обработки или нативные тарифы недоступны. | Следующий шагСохраните ответ; не подменяйте цены. |
| Ответ503 · `api_error` | УсловиеТочный маршрут поставщика недоступен. | Следующий шагСохраните ответ для исправления маршрута. |
| Ответ503 · `result_pending_check` | УсловиеИсходный результат требует проверки; X-Should-Retry:false. | Следующий шагСохраните исходный operation\_id/id и читайте его статус; никогда не повторяйте исходный POST. |
| Ответ404 · `not_found` | УсловиеОперация проверки статуса пакета отсутствует или принадлежит другой учётной записи. | Следующий шагИспользуйте точный исходный id и того же пользователя, ключ и группу. |

### Псевдонимы

#### Псевдонимы моделей

**Ailoot Ultra** [`mistralai/mistral-medium-3.1:batch`](https://ailoot.ai/models/ru/#m=mistralai%2Fmistral-medium-3.1%3Abatch&route=Ultra&caller=mistralai%2Fmistral-medium-3.1%3Abatch&fmt=batches)

#### Псевдонимы путей метода

Используйте пути методов, указанные выше.

#### Связанные ID для вызова

[`mistralai/mistral-medium-3.1:batch`](https://ailoot.ai/models/ru/#m=mistralai%2Fmistral-medium-3.1%3Abatch&route=Ultra&caller=mistralai%2Fmistral-medium-3.1%3Abatch&fmt=batches)

FAQ · Mistral: Mistral Medium 3.1 (batch)

Какие входные данные и результаты доступны?

`POST /v1/batches` · `mistralai/mistral-medium-3.1:batch`: `text` → `text`

Какие поля использует запрос?

`POST /v1/batches` · `mistralai/mistral-medium-3.1:batch`: `endpoint`, `model`, `requests`, `completion_window`, `provider`

Какие ограничения действуют?

`POST /v1/batches` · `mistralai/mistral-medium-3.1:batch`: `requests.min_items`: `1`

Подключите Ailoot к Claude Code, OpenCode, Hermes или своему приложению.

## Компания и портфель её проектов

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

## Покупайте токены со скидкой.

Скидка по подписке для регулярной работы. Промокоды — до 50% на покупку токенов.

Подписка

Выберите тариф со скидкой для своих регулярных запросов.

Промокод до 50%

Введите код при покупке. Цена пересчитается с учётом действующей акции.

Расходы в истории

Модель, токены и сумма сохраняются для каждого запроса.

[Выбрать подписку](https://ailoot.ai/docs/ru/billing/subscriptions/) · [Посмотреть цены моделей](https://ailoot.ai/models/ru/)

## Подключайте API к продукту, который вы продаёте.

SaaS, приложения и боты — по оферте и лицензионному договору Ailoot. Для перепродажи запросите реселлерскую лицензию.

Коммерческое приложение

Встраивайте генерацию текста, картинок, видео и звука в платные функции своего сервиса.

Лицензия для реселлера

Пришлите описание проекта и схему доступа. Запросите письменные условия использования и перепродажи.

Документы на сайте

Оферта, лицензионный договор и политика обработки данных доступны до подключения.

[Запросить реселлерскую лицензию](mailto:support@ailoot.ai) · [Оферта и лицензионный договор](https://ailoot.ai/legal/offer?lang=ru)

## Ailoot · Компания и портфель её проектов





Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.





Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.





Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
