Как использовать API Xiaomi MiMo-V2.5-Pro на Novita AI

Как использовать API Xiaomi MiMo-V2.5-Pro на Novita AI

Xiaomi MiMo-V2.5-Pro доступен на Novita AI через Serverless API, поэтому разработчики могут вызывать верифицированный ID модели xiaomimimo/mimo-v2.5-pro через совместимый с OpenAI эндпоинт чат-дополнений Novita для работы с длинным контекстом, задач, требующих рассуждений, вызова функций и экспериментов со структурированным выводом.

Быстрая настройка

Используйте эту отправную точку, если у вас уже есть ключ API Novita AI и вы хотите кратчайший проверенный путь к первому запросу.

pip install openai
export NOVITA_API_KEY="YOUR_NOVITA_API_KEY"

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {
            "role": "system",
            "content": "You are a concise software architecture assistant.",
        },
        {
            "role": "user",
            "content": "Outline a migration plan for moving a Python monolith into services.",
        },
    ],
    max_tokens=2048,
    temperature=0.7,
)

print(response.choices[0].message.content)

Текущая страница модели Xiaomi MiMo-V2.5-Pro указывает, что модель доступна как Serverless API Novita AI, и показывает совместимый с OpenAI базовый URL https://api.novita.ai/openai. Текущая справочная документация API чат-дополнений Novita AI описывает REST-путь как /openai/v1/chat/completions.

Что такое Xiaomi MiMo-V2.5-Pro

Xiaomi MiMo-V2.5-Pro — это большая языковая модель «текст на входе, текст на выходе» для сложных агентных и инженерных рабочих процессов. На Novita AI ID модели API:


xiaomimimo/mimo-v2.5-pro

Текущий список моделей Novita AI подтверждает следующие детали реализации:

Поле Текущее значение
Путь доступа Serverless API
Семейство эндпоинтов Совместимые с OpenAI чат-дополнения
Базовый URL https://api.novita.ai/openai
ID модели xiaomimimo/mimo-v2.5-pro
Длина контекста 1 048 576 токенов
Макс. вывод 131 072 токена
Возможности ввода Текст
Возможности вывода Текст
Вызов функций Поддерживается
Структурированный вывод Поддерживается
Рассуждения Поддерживается
Anthropic API Поддерживается

Вышестоящая карточка модели Xiaomi MiMo-V2.5-Pro на Hugging Face описывает MiMo-V2.5-Pro как открытую языковую модель на основе смеси экспертов (MoE) с общим количеством параметров 1,02 триллиона, 42 миллиардами активных параметров и окном контекста до 1 миллиона токенов. Используйте карточку вышестоящей модели как полезную справочную информацию о семействе моделей, а для получения информации, специфичной для Novita — ID модели, цены, доступность и детали эндпоинтов — обращайтесь к странице модели на Novita AI.

Когда использовать MiMo-V2.5-Pro

MiMo-V2.5-Pro наиболее полезен, когда вашему приложению требуется хостинговая текстовая модель для длительной работы с большим количеством инструкций, а не короткий одношаговый ответ. Хорошие цели для оценки включают анализ репозитория, планы многофайлового рефакторинга, синтез документов с длинным контекстом, планирование действий агента, прототипы маршрутизации инструментов и задачи структурированного извлечения.

Используйте его, когда вам нужно:

  • Верифицированное окно контекста на 1 048 576 токенов на Novita AI.
  • Высокий максимальный вывод для подробных планов, ревью кода, схем миграции или трассировок многошаговых рассуждений.
  • Поддержка вызова функций для маршрутизации решений модели в инструменты приложения.
  • Поддержка структурированного вывода для ответов в JSON-подобном формате, который могут парсить нижестоящие сервисы.
  • Совместимые с OpenAI чат-дополнения, чтобы можно было повторно использовать существующие паттерны SDK.

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

Предварительные требования

Перед тем как сделать первый запрос, подготовьте четыре вещи:

  1. Учётную запись Novita AI.
  2. Ключ API Novita AI, сохранённый в переменной окружения, например NOVITA_API_KEY.
  3. OpenAI Python SDK или другой HTTP-клиент, способный вызывать эндпоинты, совместимые с OpenAI.
  4. Текущую проверку цен и лимитов для xiaomimimo/mimo-v2.5-pro.

Текущая страница модели Novita AI отображает цены serverless на основе токенов для MiMo-V2.5-Pro. Она показывает общую отображаемую цену: 2 доллара за миллион входных токенов, 0,4 доллара за миллион токенов кэшированного чтения и 6 долларов за миллион выходных токенов. Также указаны уровневые цены в зависимости от длины входных данных:

Длина входных данных Цена за миллион токенов (вход) Цена за миллион токенов (выход) Цена за миллион токенов (кэшированное чтение)
От 1 до 262 143 токенов $1 $3 $0.2
От 262 144 до 1 048 575 токенов $2 $6 $0.4

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

Первый API-запрос

Самый простой первый вызов использует OpenAI SDK с базовым URL Novita AI и ID модели MiMo-V2.5-Pro.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {"role": "system", "content": "You are a practical coding assistant."},
        {
            "role": "user",
            "content": "Review this API design and list the main reliability risks.",
        },
    ],
    max_tokens=1024,
    temperature=0.7,
)

print(response.choices[0].message.content)

Если вы предпочитаете REST, вызовите текущий путь чат-дополнений напрямую:

curl --request POST \
  --url https://api.novita.ai/openai/v1/chat/completions \
  --header "Authorization: Bearer $NOVITA_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "xiaomimimo/mimo-v2.5-pro",
    "messages": [
      {
        "role": "system",
        "content": "You are a practical coding assistant."
      },
      {
        "role": "user",
        "content": "Create a checklist for validating a payment webhook integration."
      }
    ],
    "max_tokens": 1024,
    "temperature": 0.7
  }'

Для продакшен-кода храните ключи API вне системы контроля версий, ограничьте max_tokens реальным объёмом, необходимым вашему рабочему процессу, и логируйте использование токенов, чтобы видеть, когда длинные контекстные промпты начинают доминировать в стоимости.

Замечания по стримингу и использованию длинного контекста

Справочная документация Novita AI по чат-дополнениям включает поля stream и stream_options, а страница модели MiMo-V2.5-Pro подтверждает длину контекста в 1 048 576 токенов с максимальным выводом в 131 072 токена. Используйте эти лимиты как инженерные потолки, а не настройки по умолчанию.

Для стримингового ответа:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

stream = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {"role": "system", "content": "You write concise engineering plans."},
        {
            "role": "user",
            "content": "Draft a step-by-step rollback plan for a failed database migration.",
        },
    ],
    max_tokens=2048,
    temperature=0.7,
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="")

Для длинных контекстных промптов придерживайтесь следующих правил:

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

Пример вызова функций

Страница модели MiMo-V2.5-Pro подтверждает поддержку вызова функций, а справочная документация по чат-дополнениям включает параметр tools с метаданными функций. Используйте это, когда модель должна выбрать действие приложения, например, найти внутреннюю заявку, получить состояние аккаунта или создать задачу развёртывания.

import json
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "create_deployment_ticket",
            "description": "Create a deployment follow-up ticket.",
            "parameters": {
                "type": "object",
                "properties": {
                    "service": {
                        "type": "string",
                        "description": "The service that needs follow-up.",
                    },
                    "priority": {
                        "type": "string",
                        "enum": ["low", "medium", "high"],
                    },
                    "summary": {
                        "type": "string",
                        "description": "A short ticket summary.",
                    },
                },
                "required": ["service", "priority", "summary"],
                "additionalProperties": False,
            },
            "strict": True,
        },
    }
]

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {
            "role": "system",
            "content": "Decide whether the user's deployment note requires a follow-up ticket.",
        },
        {
            "role": "user",
            "content": "Checkout latency increased after the payment-service deploy. Create a high priority follow-up.",
        },
    ],
    tools=tools,
    max_tokens=1024,
    temperature=0.2,
)

message = response.choices[0].message

if message.tool_calls:
    tool_call = message.tool_calls[0]
    args = json.loads(tool_call.function.arguments)
    print(args)
else:
    print(message.content)

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

Пример структурированного вывода

Страница модели MiMo-V2.5-Pro также подтверждает поддержку структурированного вывода, а справочная документация Novita AI по чат-дополнениям включает response_format с полями JSON-схемы. Используйте структурированный вывод, когда хотите, чтобы модель возвращала парсируемые данные, а не свободный текст.

import json
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

response_format = {
    "type": "json_schema",
    "json_schema": {
        "name": "migration_risk_report",
        "schema": {
            "type": "object",
            "properties": {
                "risk_level": {
                    "type": "string",
                    "enum": ["low", "medium", "high"],
                },
                "main_risks": {
                    "type": "array",
                    "items": {"type": "string"},
                },
                "next_actions": {
                    "type": "array",
                    "items": {"type": "string"},
                },
            },
            "required": ["risk_level", "main_risks", "next_actions"],
            "additionalProperties": False,
        },
        "strict": True,
    },
}

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {
            "role": "system",
            "content": "Return only a structured migration risk report.",
        },
        {
            "role": "user",
            "content": "We are moving billing jobs from cron to a queue and changing retry behavior.",
        },
    ],
    response_format=response_format,
    max_tokens=1024,
    temperature=0.2,
)

report = json.loads(response.choices[0].message.content)
print(json.dumps(report, indent=2))

Если во время тестирования ответ не удаётся распарсить как JSON, уменьшите неоднозначность в промпте, понизьте температуру, сделайте схему компактнее и повторите попытку с более коротким входным текстом. Для продакшен-процессов проверяйте распарсенный объект на соответствие вашей собственной схеме перед его использованием.

Предостережения по стоимости, задержке и лимитам

MiMo-V2.5-Pro создан для задач с длинным контекстом и агентных задач, поэтому контроль стоимости важен. Промпт, близкий к верхнему уровню контекста, может быть значительно дороже короткого запроса, а длинные выходные данные также увеличивают стоимость токенов завершения. Страница модели Novita AI в настоящее время отображает уровневые цены на ввод/вывод, поэтому оценивайте как токены промпта, так и токены завершения перед автоматической маршрутизацией больших задач.

Используйте следующие средства контроля:

  • Установите практическое ограничение max_tokens вместо использования максимального лимита вывода по умолчанию.
  • Суммируйте или извлекайте только тот контекст, который необходим для текущей задачи.
  • Кэшируйте или повторно используйте стабильный контекст, когда это поддерживается вашей архитектурой.
  • Отслеживайте использование токенов по функциям, пользователям и рабочим процессам.
  • Добавляйте таймауты и повторные попытки вокруг сетевых вызовов.
  • Держите меньшую запасную модель для коротких задач, если ваш продукт не требует MiMo-V2.5-Pro для каждого запроса.

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

Устранение неполадок

Если ваш первый запрос к MiMo-V2.5-Pro завершается неудачей, сначала проверьте следующие пункты.

Симптом Вероятная причина Исправление
Ошибка аутентификации Отсутствует или повреждён ключ API Отправляйте Authorization: Bearer $NOVITA_API_KEY для REST-вызовов или передавайте api_key клиенту SDK.
Модель не найдена Некорректный ID модели Используйте xiaomimimo/mimo-v2.5-pro в точности, как указано на странице модели Novita AI.
Ошибка пути запроса Перепутаны базовые URL Используйте https://api.novita.ai/openai с OpenAI SDK или https://api.novita.ai/openai/v1/chat/completions для REST.
Ошибка контекста или вывода Промпт плюс запрос вывода превышают лимиты модели Следите, чтобы общая длина промпта не превышала текущее окно контекста, а max_tokens не превышал верифицированный максимальный вывод.
Отсутствует вызов инструмента Промпт не требует инструмента, или схема инструмента неясна Сделайте решение об инструменте явным и держите схему функции краткой.
Структурированный вывод не парсится Схема или промпт слишком размыты Используйте response_format, устанавливайте strict при необходимости, понизьте температуру и проверяйте результат.
Неожиданная стоимость Большой промпт, большой вывод или верхний ценовой уровень Проверьте текущие цены, логируйте использование токенов и уменьшите контекст или максимальный вывод.

Для получения подробной информации об эндпоинтах обратитесь к справочной документации API чат-дополнений Novita AI. Для получения информации о лимитах и ценах, специфичных для модели, обратитесь к странице API и песочницы Xiaomi MiMo-V2.5-Pro.

Следующие шаги

Начните со страницы модели Xiaomi MiMo-V2.5-Pro, протестируйте небольшой промпт в песочнице, затем перенесите тот же промпт в ваш API-клиент с верифицированным ID модели. Когда будете готовы сравнить альтернативы, используйте библиотеку моделей Novita AI и страницу цен Novita AI, чтобы проверить текущие цены, окна контекста, лимиты вывода и поддержку возможностей.

Для агентных приложений оценивайте MiMo-V2.5-Pro на ваших собственных трассах: редактирование репозитория, маршрутизация вызовов инструментов, структурированное извлечение, суммаризация длинного контекста и восстановление после неоднозначных инструкций. Привязывайте оценку к реальным промптам вашего приложения, а не к абстрактным тестам.