- La API de Python de MiniMax H3 utiliza un flujo asíncrono de creación, sondeo y recuperación.
- La autenticación requiere una clave de API enviada a través del encabezado de autorización Bearer.
- La integración en Python puede usar
requestspara la creación de tareas, la comprobación de estados y la recuperación de archivos. - La mejor práctica es mantener las claves de API en variables de entorno en lugar de en el código fuente.
- La gestión de salida debe copiar los videos completados al almacenamiento permanente de la aplicación.
API de Python de MiniMax H3 de un vistazo
MiniMax H3 es un modelo multimodal de generación de video con IA que acepta instrucciones en lenguaje natural y materiales de referencia compatibles. La API de Python está diseñada para aplicaciones que necesitan enviar trabajos de video, supervisar el progreso del renderizado y recuperar archivos completados sin mantener una solicitud abierta durante todo el proceso de generación.
El flujo de trabajo estándar es asíncrono. Tu aplicación envía una solicitud de generación de video, recibe un task_id, consulta el estado de la tarea en intervalos y recupera la salida después de que la tarea alcanza Success. Esta estructura funciona bien para aplicaciones web, herramientas internas, canalizaciones de contenido y sistemas de generación por lotes.
| Etapa del flujo de trabajo | Acción de la API | Resultado de la aplicación |
|---|---|---|
| Autenticación | Enviar una clave de API en el encabezado Authorization | La solicitud queda autorizada |
| Creación de la tarea | Enviar una instrucción y la configuración de salida | La API devuelve un task_id |
| Sondeo de estado | Consultar la tarea por ID | La aplicación rastrea el progreso |
| Finalización | Leer la respuesta exitosa de la tarea | Se vuelve disponible un file_id |
| Recuperación del archivo | Solicitar los metadatos o la URL del archivo | El video puede descargarse |
El flujo oficial de MiniMax H3 admite la generación de videos cortos con duración y resolución configurables. Según el endpoint seleccionado y la configuración de la cuenta, los controles disponibles pueden incluir instrucciones de texto, referencias de imagen, referencias de video, instrucciones de audio, relación de aspecto y resolución de salida.
| Parámetro común | Ejemplo | Propósito |
|---|---|---|
model | MiniMax-H3 | Selecciona el modelo de video H3 |
prompt | Descripción de una escena cinematográfica | Define el resultado visual y sonoro |
duration | 6 | Solicita una duración corta del video |
resolution | 768P | Selecciona la resolución de salida |
task_id | Devuelto por la creación | Identifica el trabajo asíncrono |
file_id | Devuelto al completar con éxito | Identifica el archivo de video completado |
Trata cada generación como un trabajo y no como una respuesta directa de archivo. Guarda el ID de la tarea de inmediato para que el sondeo pueda continuar después de interrupciones temporales de red.
Configuración y autenticación de la API de Python
Antes de escribir la integración, prepara un entorno de Python, instala el cliente HTTP y almacena la clave de API de MiniMax fuera del código de tu aplicación. Este enfoque reduce la exposición accidental de claves en repositorios, registros, capturas de pantalla y paquetes del lado del cliente.
Los ejemplos siguientes usan Python y el paquete requests. Instálalo en el entorno utilizado por tu aplicación:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install requests
Define la clave de API como una variable de entorno antes de ejecutar el script:
export MINIMAX_API_KEY="YOUR_API_KEY"
En Windows PowerShell, usa:
$env:MINIMAX_API_KEY="YOUR_API_KEY"
| Elemento de configuración | Práctica recomendada | Por qué importa |
|---|---|---|
| Clave de API | Guardarla en MINIMAX_API_KEY | Mantiene las credenciales fuera de los archivos fuente |
| Cliente HTTP | Usar requests con tiempos de espera | Evita llamadas que queden colgadas indefinidamente |
| URL base | Mantenerla en un único valor de configuración | Facilita las actualizaciones de endpoints |
| Carga útil | Validarla antes de enviarla | Reduce respuestas 400 evitables |
| Registro | Nunca imprimir los encabezados de autorización | Protege las credenciales durante la depuración |
API alojada
- Servicio administrado del modelo
- Gestión asíncrona de tareas
- Recuperación de archivos a través de endpoints de API
Requests de Python
- Integración HTTP sencilla
- Funciona para scripts y servicios de backend
- Manejo fácil de estados y errores
Trabajador de producción
- Procesamiento de tareas basado en colas
- Compatibilidad con reintentos y backoff
- Almacenamiento persistente de resultados
No coloques la clave de API de MiniMax en JavaScript del navegador, código de cliente móvil, cuadernos públicos ni archivos de configuración comprometidos. Canaliza las solicitudes a través de un backend protegido.
Crear, consultar y recuperar un video
Sigue este proceso de cuatro etapas para una integración básica de la API de Python de MiniMax H3. El principio clave de diseño es separar el envío de tareas de la supervisión de tareas. Un servicio de producción debería poder reiniciar el sondeo sin volver a enviar la misma generación.
Crear la tarea de video
Construye una carga útil JSON con el nombre del modelo H3, la instrucción, la duración y la resolución. Envíala al endpoint de generación de video con el token Bearer. Guarda el task_id devuelto antes de realizar cualquier otro trabajo.
Consultar el estado de la tarea
Consulta el endpoint de la tarea usando el ID guardado. Continúa mientras la tarea esté en cola, preparándose o procesándose. Usa una pausa entre solicitudes en lugar de enviar peticiones continuamente.
Manejar el éxito o el fallo
Detén el sondeo cuando el estado pase a Success o Fail. En caso de éxito, lee el file_id. En caso de fallo, registra el mensaje de error devuelto y crea una nueva tarea solo después de corregir el problema.
Recuperar el archivo de salida
Usa el ID del archivo completado con el endpoint de recuperación de archivos. Copia la URL de descarga devuelta o el contenido del archivo al almacenamiento permanente de la aplicación cuando el resultado deba permanecer disponible.
Una implementación compacta en Python se ve así:
import os
import time
import requests
API_KEY = os.environ["MINIMAX_API_KEY"]
BASE_URL = "https://api.minimax.io/v1"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"model": "MiniMax-H3",
"prompt": (
"A premium perfume bottle rotating on black glass, "
"dramatic studio lighting, synchronized ambient sound."
),
"duration": 6,
"resolution": "768P",
}
create_response = requests.post(
f"{BASE_URL}/video_generation",
headers=HEADERS,
json=payload,
timeout=60,
)
create_response.raise_for_status()
task_id = create_response.json()["task_id"]
print("Created task:", task_id)
while True:
query_response = requests.get(
f"{BASE_URL}/query/video_generation",
headers=HEADERS,
params={"task_id": task_id},
timeout=30,
)
query_response.raise_for_status()
task = query_response.json()
status = task.get("status")
print("Current status:", status)
if status == "Success":
file_id = task["file_id"]
print("Completed file:", file_id)
break
if status == "Fail":
message = task.get("error_message", "Video generation failed")
raise RuntimeError(message)
time.sleep(10)
| Estado | Significado | Acción recomendada |
|---|---|---|
Preparing | La tarea se está inicializando | Continuar consultando |
Queueing | La tarea está esperando procesamiento | Continuar consultando con una pausa |
Processing | La generación del video está en curso | Continuar consultando |
Success | El video está listo | Recuperar el file_id |
Fail | La generación terminó sin éxito | Leer el error y corregir la solicitud |
Para una tarea completada, recupera la información del archivo usando el ID devuelto:
file_id = "FILE_ID_FROM_SUCCESS_RESPONSE"
file_response = requests.get(
f"{BASE_URL}/files/retrieve",
headers=HEADERS,
params={"file_id": file_id},
timeout=30,
)
file_response.raise_for_status()
file_data = file_response.json()
download_url = file_data.get("file", {}).get("download_url")
if not download_url:
download_url = file_data.get("download_url")
print("Download URL:", download_url)
La forma exacta de la respuesta puede variar según la versión del endpoint. Durante la integración, inspecciona la respuesta JSON y sigue la actual documentación de la API de generación de video de MiniMax.
Guarda task_id y file_id en tu base de datos cuando corresponda. Esto hace que la integración sea recuperable si el trabajador se reinicia durante el renderizado o la recuperación de archivos.
Gestión de errores y prácticas de producción
Un script sencillo puede lanzar una excepción cuando falla una solicitud HTTP, pero una integración de producción necesita más estructura. Separa los errores del cliente de los errores temporales del servicio, usa reintentos limitados y conserva el identificador original de la tarea.
| Error | Causa probable | Estrategia de manejo |
|---|---|---|
400 | Carga útil inválida o configuración no compatible | Validar modelo, duración, resolución e inputs |
401 | Clave de API ausente o inválida | Comprobar la variable de entorno y el encabezado |
403 | Restricción de cuenta o permisos | Confirmar el acceso a la cuenta y los permisos del servicio |
429 | Se alcanzó el límite de velocidad o de cuota | Usar backoff exponencial y encolar las solicitudes |
500–599 | Problema temporal del servicio | Reintentar un número limitado de veces |
Fail | La tarea de renderizado terminó sin éxito | Leer el mensaje de la tarea y revisar la solicitud |
Usa backoff exponencial para fallos temporales en lugar de reintentar de inmediato:
import time
def wait_with_backoff(attempt, base_delay=5, max_delay=60):
delay = min(base_delay * (2 ** attempt), max_delay)
time.sleep(delay)
Para el sondeo, aplica un tiempo máximo de espera para que un trabajador no permanezca activo indefinidamente:
started_at = time.time()
max_wait_seconds = 30 * 60
while time.time() - started_at < max_wait_seconds:
# Query the task here.
# Break on Success or Fail.
time.sleep(10)
raise TimeoutError("The MiniMax H3 task exceeded the polling limit.")
Usa estas prácticas cuando vayas más allá de una prueba local:
- Mantén reproducibles las instrucciones y cargas útiles. Guarda la instrucción, el modelo, la duración, la resolución y los identificadores de archivos de referencia.
- Usa un trabajador en segundo plano. Las solicitudes web deben crear trabajos, no esperar a que termine el renderizado completo del video.
- Evita envíos duplicados. Asigna un ID interno de solicitud antes de llamar al endpoint de creación.
- Valida las entradas pronto. Rechaza archivos faltantes, formatos no compatibles y configuraciones conflictivas antes de enviar la API.
- Protege las URL de salida. Trata los enlaces de descarga devueltos como datos de la aplicación y copia los archivos importantes a un almacenamiento controlado.
- Supervisa el uso. Rastrea las tareas exitosas, las fallidas, los recuentos de reintentos y los segundos totales generados.
Lista de verificación de preparación para producción:
- Guardar la clave de API en una variable de entorno protegida
- Guardar cada ID de tarea devuelto
- Usar tiempos de espera de solicitud y reintentos limitados
- Consultar con una pausa y un tiempo máximo de espera
- Conservar los videos completados en almacenamiento permanente
La descarga de los pesos del modelo H3 abiertos es independiente del uso de la API alojada. No debe asumirse que las funciones del servicio alojado, el procesamiento del lado de la plataforma y la entrega de archivos de la API existan en una implementación local.
Preguntas frecuentes sobre la API de Python de MiniMax H3
Q: ¿La API de Python de MiniMax H3 es síncrona?
No. La integración estándar es asíncrona. Crea una tarea, guarda su task_id, consulta el endpoint de consulta y recupera el archivo después de que la tarea llegue a Success.
Q: ¿Dónde debo guardar la clave de API de MiniMax H3?
Guárdala en una variable de entorno protegida o en un gestor de secretos. Evita incrustarla en archivos de Python, repositorios públicos, código del navegador o registros de la aplicación.
Q: ¿Qué debo hacer cuando una tarea devuelve Fail?
Lee la información de error devuelta, revisa la instrucción y la configuración de la solicitud, verifica las entradas de referencia y envía una nueva tarea solo después de corregir el problema.
Q: ¿Puedo usar el mismo flujo de trabajo de Python para los pesos locales de H3?
No directamente. La API alojada usa endpoints HTTP e IDs de tarea, mientras que los pesos locales requieren el entorno de inferencia del repositorio, las dependencias, la configuración de hardware y los comandos de ejecución.
El punto de partida más seguro es un pequeño script de backend que cree una tarea corta de H3, la consulte con tiempos de espera, recupere el resultado y registre cada respuesta necesaria para la depuración. Una vez que esa ruta funcione, añade colas, almacenamiento persistente, políticas de reintento y seguimiento de solicitudes a nivel de aplicación.