Xiaomi MiMo-V2.5-Pro 通过 Serverless API 在 Novita AI 上可用,因此开发者可以使用已验证的模型 ID xiaomimimo/mimo-v2.5-pro,结合 Novita 兼容 OpenAI 的聊天补全端点,用于长上下文文本工作流、推理密集型编码任务、函数调用以及结构化输出实验。
快速设置
如果你已有 Novita AI API 密钥,并希望用最短的验证路径发出第一个请求,可以从这里开始。
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 模型页面 将该模型列为 Novita AI Serverless API 选项,并显示了兼容 OpenAI 的 base URL https://api.novita.ai/openai。当前的 Novita AI 聊天补全 API 参考文档 将 REST 路径记录为 /openai/v1/chat/completions。
Xiaomi MiMo-V2.5-Pro 是什么
Xiaomi MiMo-V2.5-Pro 是一个文本输入、文本输出的大语言模型,适用于复杂的智能体和软件工程工作流。在 Novita AI 上,API 模型 ID 为:
xiaomimimo/mimo-v2.5-pro
Novita AI 模型列表目前验证了以下实现细节:
| 字段 | 当前值 |
|---|---|
| 访问路径 | Serverless API |
| 端点家族 | 兼容 OpenAI 的聊天补全 |
| Base URL | https://api.novita.ai/openai |
| 模型 ID | xiaomimimo/mimo-v2.5-pro |
| 上下文长度 | 1,048,576 tokens |
| 最大输出 | 131,072 tokens |
| 输入能力 | 文本 |
| 输出能力 | 文本 |
| 函数调用 | 支持 |
| 结构化输出 | 支持 |
| 推理 | 支持 |
| Anthropic API | 支持 |
上游,Xiaomi MiMo-V2.5-Pro Hugging Face 模型卡片 将 MiMo-V2.5-Pro 描述为一个开源的专家混合语言模型,总参数量 1.02 万亿,活跃参数量 42 亿,支持最多 100 万 token 的上下文窗口。将上游模型卡片视为模型系列的有用背景,并使用 Novita AI 模型页面获取 Novita 特定的模型 ID、定价、可用性和端点详情。
何时使用 MiMo-V2.5-Pro
当你的应用程序需要一个托管的文本模型来处理长时间、指令密集型的工作,而不是短小的单轮回答时,MiMo-V2.5-Pro 最有用。适合的评估场景包括:仓库分析、多文件重构计划、长上下文文档合成、智能体规划、工具路由原型和结构化提取任务。
在以下情况下使用它:
- 在 Novita AI 上需要一个已验证的 1,048,576 token 上下文窗口。
- 需要高最大输出设置,用于详细计划、代码审查、迁移大纲或多步推理轨迹。
- 支持函数调用,用于将模型决策路由到应用程序工具中。
- 支持结构化输出,用于下游服务可解析的类 JSON 响应。
- 兼容 OpenAI 的聊天补全,以便重用现有 SDK 模式。
不要假设它是每种任务中成本最低或延迟最低的选择。对于短提示、高量分类或简单聊天,在将所有流量路由到长上下文模型之前,先在 Novita AI 模型库 和 Novita AI 定价页面 中比较当前选项。
前提条件
在发出第一个请求之前,准备四件事:
- 一个 Novita AI 账户。
- 一个 Novita AI API 密钥,存储在环境变量中,例如
NOVITA_API_KEY。 - OpenAI Python SDK 或其他能够调用 OpenAI 兼容端点的 HTTP 客户端。
- 针对
xiaomimimo/mimo-v2.5-pro的当前定价和限制检查。
当前的 Novita AI 模型页面列出了 MiMo-V2.5-Pro 的基于 token 的 serverless 定价。它显示的通用价格为:输入 token 每百万 $2,缓存读取 token 每百万 $0.4,输出 token 每百万 $6。它还按输入长度列出了阶梯定价:
| 输入长度 | 每百万 token 输入价格 | 每百万 token 输出价格 | 每百万 token 缓存读取价格 |
|---|---|---|---|
| 1 到 262,143 token | $1 | $3 | $0.2 |
| 262,144 到 1,048,575 token | $2 | $6 | $0.4 |
由于模型页面和定价表可能发生变化,在生产使用前请确认模型页面或定价页面上的当前费率,特别是对于可能应用第二阶梯的长提示。
第一个 API 请求
最简单的首次调用使用 OpenAI SDK,并指定 Novita AI 的 base URL 和 MiMo-V2.5-Pro 模型 ID。
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 限制为工作流实际需要的数量,并记录 token 使用情况,以便在长上下文提示开始主导成本时能够察觉。
流式传输和长上下文使用说明
Novita AI 聊天补全参考中包含了 stream 和 stream_options 字段,MiMo-V2.5-Pro 模型页面验证了 1,048,576 token 的上下文长度和 131,072 token 的最大输出。将这些限制用作工程上限,而不是默认设置。
对于流式响应:
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对象时,跟踪提示、补全和总 token 数。
函数调用示例
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 聊天补全参考包含了带有 JSON Schema 字段的 response_format。当你希望模型返回可解析的数据而不是自由形式的散文时,请使用结构化输出。
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,请减少提示中的歧义、降低温度、保持 schema 简洁,并用更短的输入重试。对于生产工作流,在使用之前,请根据你自己的 schema 验证解析后的对象。
成本、延迟和限制注意事项
MiMo-V2.5-Pro 专为长上下文和智能体任务而构建,因此成本控制至关重要。接近上层上下文层的提示可能比短请求昂贵得多,而长输出也会增加补全 token 的成本。Novita AI 模型页面目前列出了阶梯输入/输出定价,因此在自动路由大型任务之前,请估算提示 token 和补全 token。
使用以下控制措施:
- 设置实际的
max_tokens上限,而不是默认使用最大输出限制。 - 仅总结或检索当前任务所需的上下文。
- 在架构支持的情况下,缓存或重用稳定的上下文。
- 监控每个特性、用户和工作流的 token 使用情况。
- 在网络调用周围添加超时和重试。
- 如果产品不需要在每个请求上都使用 MiMo-V2.5-Pro,则保留一个较小的备用模型用于短任务。
延迟可能因提示长度、输出长度、流模式和服务当前状态而异。对于面向用户的应用程序,在适当时流式传输较长的答案,并设计围绕增量输出的 UI,而不是单个阻塞响应。
故障排除
如果你的第一个 MiMo-V2.5-Pro 请求失败,请首先检查这些项目。
| 症状 | 可能的原因 | 修复方法 |
|---|---|---|
| 认证错误 | API 密钥缺失或格式错误 | 对于 REST 调用,发送 Authorization: Bearer $NOVITA_API_KEY;或向 SDK 客户端传递 api_key。 |
| 模型未找到 | 模型 ID 错误 | 使用 xiaomimimo/mimo-v2.5-pro,与 Novita AI 模型页面上列出的完全一致。 |
| 请求路径错误 | base URL 混合 | 与 OpenAI SDK 一起使用 https://api.novita.ai/openai,或与 REST 一起使用 https://api.novita.ai/openai/v1/chat/completions。 |
| 上下文或输出错误 | 提示加输出请求超过模型限制 | 保持总提示长度在当前上下文窗口内,并将 max_tokens 限制在已验证的最大输出以下。 |
| 工具调用缺失 | 提示不需要工具,或工具 schema 不清晰 | 明确工具决策,并保持函数 schema 简洁。 |
| 结构化输出解析失败 | schema 或提示过于宽松 | 使用 response_format,在适当时设置 strict,降低温度,并验证结果。 |
| 意外成本 | 大量提示、大量输出或上层定价层级 | 检查当前定价,记录 token 使用情况,并减少上下文或最大输出。 |
有关端点详情,请参阅 Novita AI 聊天补全 API 参考文档。有关模型特定的限制和定价,请参阅 Xiaomi MiMo-V2.5-Pro API 和 Playground 页面。
下一步
从 Xiaomi MiMo-V2.5-Pro 模型页面 开始,在 Playground 中测试一个小的提示,然后将相同的提示和已验证的模型 ID 移动到你的 API 客户端中。当你准备比较替代方案时,使用 Novita AI 模型库 和 Novita AI 定价页面 检查当前定价、上下文窗口、输出限制和能力支持。
对于智能体式的应用程序,根据你自己的跟踪记录来评估 MiMo-V2.5-Pro:代码仓库编辑、工具调用路由、结构化提取、长上下文摘要以及从模糊指令中恢复。将评估与应用程序的真实提示联系起来,而不是基于通用的基准声明。
