Cómo usar la API de Xiaomi MiMo-V2.5-Pro en Novita AI

Cómo usar la API de Xiaomi MiMo-V2.5-Pro en Novita AI

Xiaomi MiMo-V2.5-Pro está disponible en Novita AI a través de la API sin servidor (Serverless), por lo que los desarrolladores pueden llamar al ID de modelo verificado xiaomimimo/mimo-v2.5-pro con el endpoint de finalización de chat compatible con OpenAI de Novita AI para flujos de trabajo de texto de contexto largo, tareas de codificación intensivas en razonamiento, llamadas a funciones y experimentos de salida estructurada.

Configuración rápida

Utiliza este punto de partida cuando ya tengas una clave de API de Novita AI y desees la ruta verificada más corta hacia una primera solicitud.

pip install openai
export NOVITA_API_KEY="TU_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": "Eres un asistente conciso de arquitectura de software.",
        },
        {
            "role": "user",
            "content": "Esboza un plan de migración para convertir un monolito Python en servicios.",
        },
    ],
    max_tokens=2048,
    temperature=0.7,
)

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

La página actual del modelo Xiaomi MiMo-V2.5-Pro indica que el modelo es una opción de API sin servidor de Novita AI y muestra la URL base compatible con OpenAI https://api.novita.ai/openai. La referencia actual de la API de finalización de chat de Novita AI documenta la ruta REST como /openai/v1/chat/completions.

Qué es Xiaomi MiMo-V2.5-Pro

Xiaomi MiMo-V2.5-Pro es un modelo de lenguaje grande de texto a texto para flujos de trabajo complejos de agentes e ingeniería de software. En Novita AI, el ID del modelo de API es:


xiaomimimo/mimo-v2.5-pro

La lista de modelos de Novita AI actualmente verifica estos detalles de implementación:

Campo Valor actual
Ruta de acceso API sin servidor (Serverless API)
Familia de endpoints Finalizaciones de chat compatibles con OpenAI
URL base https://api.novita.ai/openai
ID del modelo xiaomimimo/mimo-v2.5-pro
Longitud de contexto 1.048.576 tokens
Salida máxima 131.072 tokens
Capacidad de entrada Texto
Capacidad de salida Texto
Llamada a funciones Compatible
Salida estructurada Compatible
Razonamiento Compatible
API Anthropic Compatible

En el origen, la tarjeta del modelo Xiaomi MiMo-V2.5-Pro en Hugging Face describe MiMo-V2.5-Pro como un modelo de lenguaje Mezcla de Expertos (Mixture-of-Experts) de código abierto con 1,02 billones de parámetros totales, 42 mil millones de parámetros activos y una ventana de contexto de hasta 1 millón de tokens. Trata la tarjeta del modelo original como información de antecedentes útil para la familia de modelos, y utiliza la página del modelo de Novita AI para obtener detalles específicos de Novita sobre el ID del modelo, precios, disponibilidad y detalles del endpoint.

Cuándo usar MiMo-V2.5-Pro

MiMo-V2.5-Pro es más útil cuando tu aplicación necesita un modelo de texto alojado para trabajos extensos y con muchas instrucciones, en lugar de una respuesta corta de un solo turno. Buenos objetivos de evaluación incluyen análisis de repositorios, planes de refactorización de múltiples archivos, síntesis de documentos de contexto largo, planificación de agentes, prototipos de enrutamiento de herramientas y tareas de extracción estructurada.

Úsalo cuando necesites:

  • Una ventana de contexto verificada de 1.048.576 tokens en Novita AI.
  • Una configuración de salida máxima alta para planes detallados, revisiones de código, esquemas de migración o trazas de razonamiento de varios pasos.
  • Soporte de llamada a funciones para enrutar decisiones del modelo hacia herramientas de la aplicación.
  • Soporte de salida estructurada para respuestas tipo JSON que los servicios posteriores puedan analizar.
  • Finalizaciones de chat compatibles con OpenAI para poder reutilizar patrones existentes del SDK.

No asumas que es la opción de menor costo o menor latencia para cada tarea. Para prompts cortos, clasificación de alto volumen o chat simple, compara las opciones actuales en la biblioteca de modelos de Novita AI y la página de precios de Novita AI antes de enrutar todo el tráfico a un modelo de contexto largo.

Prerrequisitos

Antes de realizar la primera solicitud, prepara cuatro cosas:

  1. Una cuenta de Novita AI.
  2. Una clave de API de Novita AI almacenada en una variable de entorno como NOVITA_API_KEY.
  3. El SDK de Python de OpenAI u otro cliente HTTP que pueda llamar a endpoints compatibles con OpenAI.
  4. Una verificación actual de precios y límites para xiaomimimo/mimo-v2.5-pro.

La página actual del modelo de Novita AI muestra precios de servidor sin servidor basados en tokens para MiMo-V2.5-Pro. Muestra un precio general de visualización de $2 por millón de tokens de entrada, $0.4 por millón de tokens de lectura en caché y $6 por millón de tokens de salida. También enumera precios escalonados por longitud de entrada:

Longitud de entrada Precio de entrada por millón de tokens Precio de salida por millón de tokens Precio de lectura en caché por millón de tokens
1 a menos de 262.144 tokens $1 $3 $0.2
262.144 a menos de 1.048.576 tokens $2 $6 $0.4

Debido a que las páginas de modelos y las tablas de precios pueden cambiar, confirma las tarifas actuales en la página del modelo o en la página de precios antes del uso en producción, especialmente para prompts largos donde se puede aplicar el segundo nivel.

Primera solicitud a la API

La primera llamada más simple usa el SDK de OpenAI con la URL base de Novita AI y el ID del modelo 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": "Eres un asistente práctico de codificación."},
        {
            "role": "user",
            "content": "Revisa este diseño de API y enumera los principales riesgos de confiabilidad.",
        },
    ],
    max_tokens=1024,
    temperature=0.7,
)

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

Si prefieres REST, llama directamente a la ruta de finalización de chat actual:

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": "Eres un asistente práctico de codificación."
      },
      {
        "role": "user",
        "content": "Crea una lista de verificación para validar una integración de webhook de pagos."
      }
    ],
    "max_tokens": 1024,
    "temperature": 0.7
  }'

Para código de producción, mantén las claves de API fuera del control de versiones, limita max_tokens a la cantidad real que necesite tu flujo de trabajo y registra el uso de tokens para poder ver cuándo los prompts de contexto largo comienzan a dominar el costo.

Notas sobre streaming y uso de contexto largo

La referencia de finalización de chat de Novita AI incluye los campos stream y stream_options, y la página del modelo MiMo-V2.5-Pro verifica una longitud de contexto de 1.048.576 tokens con una salida máxima de 131.072 tokens. Usa esos límites como techos de ingeniería, no como configuraciones predeterminadas.

Para una respuesta en streaming:

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": "Escribes planes de ingeniería concisos."},
        {
            "role": "user",
            "content": "Redacta un plan de reversión paso a paso para una migración de base de datos fallida.",
        },
    ],
    max_tokens=2048,
    temperature=0.7,
    stream=True,
)

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

Para prompts de contexto largo, mantén estas prácticas:

  • Coloca la tarea, el formato de salida y las condiciones de parada cerca del inicio de la conversación.
  • Divide archivos o documentos no relacionados en secciones claramente etiquetadas.
  • Pide al modelo que cite nombres de secciones o rutas de archivo del contexto proporcionado, en lugar de inventar ubicaciones.
  • Comienza con valores más pequeños de max_tokens durante el desarrollo, luego aumenta el límite solo cuando el flujo de trabajo necesite una salida más larga.
  • Rastrea los tokens de prompt, finalización y total desde el objeto usage cuando la respuesta lo incluya.

Ejemplo de llamada a funciones

La página del modelo MiMo-V2.5-Pro verifica el soporte de llamada a funciones, y la referencia de finalización de chat incluye un parámetro tools con metadatos de funciones. Úsalo cuando el modelo deba elegir una acción de la aplicación, como buscar un ticket interno, obtener el estado de una cuenta o crear una tarea de implementación.

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": "Crear un ticket de seguimiento de implementación.",
            "parameters": {
                "type": "object",
                "properties": {
                    "service": {
                        "type": "string",
                        "description": "El servicio que necesita seguimiento.",
                    },
                    "priority": {
                        "type": "string",
                        "enum": ["low", "medium", "high"],
                    },
                    "summary": {
                        "type": "string",
                        "description": "Un resumen breve del ticket.",
                    },
                },
                "required": ["service", "priority", "summary"],
                "additionalProperties": False,
            },
            "strict": True,
        },
    }
]

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {
            "role": "system",
            "content": "Decide si la nota de implementación del usuario requiere un ticket de seguimiento.",
        },
        {
            "role": "user",
            "content": "La latencia del checkout aumentó después del despliegue del servicio de pagos. Crea un seguimiento de alta prioridad.",
        },
    ],
    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)

En una aplicación real, valida los argumentos de la herramienta en el lado del servidor antes de ejecutar cualquier acción. La llamada a funciones proporciona a tu aplicación una decisión estructurada del modelo; no reemplaza la autorización, validación de entrada, registro de auditoría ni controles de reversión.

Ejemplo de salida estructurada

La página del modelo MiMo-V2.5-Pro también verifica el soporte de salida estructurada, y la referencia de finalización de chat de Novita AI incluye response_format con campos de esquema JSON. Usa la salida estructurada cuando quieras que el modelo devuelva datos analizables en lugar de prosa libre.

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": "Devuelve solo un informe estructurado de riesgos de migración.",
        },
        {
            "role": "user",
            "content": "Estamos moviendo los trabajos de facturación de cron a una cola y cambiando el comportamiento de reintento.",
        },
    ],
    response_format=response_format,
    max_tokens=1024,
    temperature=0.2,
)

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

Si la respuesta falla al analizar JSON durante las pruebas, reduce la ambigüedad en el prompt, baja la temperatura, mantén el esquema compacto y reintenta con una entrada más corta. Para flujos de trabajo de producción, valida el objeto analizado contra tu propio esquema antes de usarlo.

Precauciones sobre costos, latencia y límites

MiMo-V2.5-Pro está diseñado para tareas de contexto largo y agentes, por lo que el control de costos es importante. Un prompt cercano al nivel superior de contexto puede ser materialmente más costoso que una solicitud corta, y las salidas largas también aumentan el costo de tokens de finalización. La página del modelo de Novita AI actualmente enumera precios escalonados de entrada/salida, por lo que debes estimar tanto los tokens de prompt como los de finalización antes de enrutar trabajos grandes automáticamente.

Usa estos controles:

  • Establece un límite práctico de max_tokens en lugar de usar el límite máximo de salida por defecto.
  • Resume o recupera solo el contexto necesario para la tarea actual.
  • Almacena en caché o reutiliza el contexto estable donde tu arquitectura lo permita.
  • Monitorea el uso de tokens por característica, usuario y flujo de trabajo.
  • Agrega tiempos de espera y reintentos alrededor de las llamadas de red.
  • Mantén un modelo de respaldo más pequeño para tareas cortas si tu producto no necesita MiMo-V2.5-Pro en cada solicitud.

La latencia puede variar según la longitud del prompt, la longitud de salida, el modo de streaming y las condiciones actuales del servicio. Para aplicaciones orientadas al usuario, transmite respuestas más largas cuando sea apropiado y diseña la interfaz en torno a la salida incremental en lugar de una única respuesta bloqueante.

Solución de problemas

Si tu primera solicitud a MiMo-V2.5-Pro falla, verifica estos elementos primero.

Síntoma Causa probable Solución
Error de autenticación Clave de API faltante o mal formada Envía Authorization: Bearer $NOVITA_API_KEY para llamadas REST o pasa api_key al cliente SDK.
Modelo no encontrado ID de modelo incorrecto Usa xiaomimimo/mimo-v2.5-pro exactamente como aparece en la página del modelo de Novita AI.
Error en la ruta de solicitud URL base mezclada Usa https://api.novita.ai/openai con el SDK de OpenAI, o https://api.novita.ai/openai/v1/chat/completions para REST.
Error de contexto o salida El prompt más la salida solicitada excede los límites del modelo Mantén la longitud total del prompt dentro de la ventana de contexto actual y limita max_tokens por debajo de la salida máxima verificada.
Falta la llamada a la herramienta El prompt no requiere una herramienta, o el esquema de la herramienta no es claro Haz explícita la decisión de la herramienta y mantén el esquema de la función conciso.
La salida estructurada no se analiza El esquema o el prompt es demasiado laxo Usa response_format, establece strict cuando sea apropiado, baja la temperatura y valida el resultado.
Costo inesperado Prompt grande, salida grande o nivel de precio superior Verifica los precios actuales, registra el uso de tokens y reduce el contexto o la salida máxima.

Para detalles del endpoint, consulta la referencia de la API de finalización de chat de Novita AI. Para límites y precios específicos del modelo, consulta la página de API y playground de Xiaomi MiMo-V2.5-Pro.

Próximos pasos

Comienza con la página del modelo Xiaomi MiMo-V2.5-Pro, prueba un prompt pequeño en el playground, luego traslada el mismo prompt a tu cliente de API con el ID de modelo verificado. Cuando estés listo para comparar alternativas, usa la biblioteca de modelos de Novita AI y la página de precios de Novita AI para verificar los precios actuales, las ventanas de contexto, los límites de salida y el soporte de capacidades.

Para aplicaciones de tipo agente, evalúa MiMo-V2.5-Pro con tus propias trazas: ediciones de repositorio, enrutamiento de llamadas a herramientas, extracción estructurada, resumen de contexto largo y recuperación de instrucciones ambiguas. Mantén la evaluación vinculada a los prompts reales de tu aplicación en lugar de afirmaciones genéricas de benchmarks.