API de Chat Completions: cómo funciona y cómo usarla

Explora cómo funciona la API de Chat Completions, aprende a integrarla con Python, comprende los parámetros clave, la transmisión en streaming y las llamadas a herramientas, y descubre cómo los proveedores compatibles con OpenAI, como Kimi API, pueden respaldar el desarrollo flexible de aplicaciones de IA.

9 min. de lecturaActualizado: 2026-11-14
Flujo de solicitud y respuesta de la API de Chat Completions

Ya sea que estés creando un chatbot de IA o agregando funciones conversacionales a una aplicación, es importante entender cómo la IA maneja las conversaciones. La API de Chat Completions lo hace posible al conectar aplicaciones con modelos de IA para generar respuestas pertinentes y similares a las humanas. Con funciones como la integración con Python, la transmisión en streaming y las llamadas a herramientas, los desarrolladores pueden crear aplicaciones más interactivas. Exploremos cómo funciona, cómo usarla y cómo proveedores como Kimi API respaldan el desarrollo flexible de IA.

Qué es la API de Chat Completions

La API de Chat Completions es una interfaz que permite a las aplicaciones enviar una secuencia de mensajes a un modelo de IA y recibir una respuesta del asistente, y admite conversaciones de un solo turno y de varios turnos. Por ejemplo, puedes usar Kimi K3.1 Pro para responder una pregunta sobre decoradores de Python y luego hacer una pregunta de seguimiento:

  • Primera solicitud: Envía el mensaje del usuario: "¿Qué es un decorador de Python?" Kimi devuelve un mensaje del asistente que explica el concepto.

  • Segunda solicitud: Para continuar la conversación, envía el mensaje anterior del usuario, el mensaje completo del asistente de Kimi y un nuevo mensaje del usuario: "¿Puedes darme un ejemplo?"

El arreglo messages contiene el contexto necesario para cada solicitud. Tres decisiones de diseño clave hacen que esta interfaz tenga una adopción generalizada:

  • Historial administrado por la aplicación: Las aplicaciones administran el historial de conversación e incluyen el contexto pertinente en cada solicitud, lo que da a los desarrolladores control sobre lo que ve el modelo.

  • Roles comunes de los mensajes: Los roles comunes incluyen system (instrucciones), user (entrada), assistant (salida del modelo, que se devuelve para el contexto de varios turnos) y tool (resultados de llamadas a funciones). En conjunto, permiten expresar instrucciones, diálogo e interacciones con herramientas.

  • Capacidades flexibles: Según la compatibilidad del modelo, la interfaz puede manejar transmisión en tiempo real, llamadas a herramientas, entradas visuales y salidas estructuradas. Kimi K3.1 Pro admite estas capacidades.

Cómo usar la API de Chat Completions con Kimi

Los siguientes ejemplos usan Kimi K3.1 Pro y el SDK de OpenAI para Python para mostrar cómo configurar el cliente, enviar solicitudes, manejar respuestas e implementar llamadas a herramientas:

Inicio rápido: llama a Kimi con el SDK de OpenAI para Python

Instala el SDK de OpenAI para Python:

pip install --upgrade openai

Configura tu clave de Kimi API como una variable de entorno:

export MOONSHOT_API_KEY="sk-your-kimi-key"

No necesitas una clave de OpenAI API. El SDK de OpenAI para Python funciona como biblioteca cliente, mientras que tu clave de Kimi API y la URL base autentican y enrutan las solicitudes a Kimi.

Inicializa el cliente y envía tu primera solicitud:

import os from openai import OpenAI client = OpenAI( api_key=os.environ["MOONSHOT_API_KEY"], base_url="https://api.moonshot.ai/v1", ) resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ {"role": "user", "content": "Explain REST in one paragraph."} ], ) print(resp.choices[0].message.content)

Este ejemplo usa el endpoint internacional de Kimi API. Para conocer la configuración oficial y los detalles del modelo, consulta la guía de inicio rápido de Kimi K3.1 Pro.

Parámetros clave

Estos parámetros cubren las principales opciones disponibles al llamar a Kimi K3.1 Pro mediante la API de Chat Completions:

ParámetroPropósito
modelEspecifica el ID del modelo, como kimi-k3.1-pro.
messagesProporciona mensajes de conversación, incluidas las entradas anteriores del usuario y las respuestas del asistente. Admite contenido de texto y multimodal.
reasoning_effortControla la profundidad del razonamiento. Acepta low, high o max (predeterminado).
max_completion_tokensEstablece el presupuesto máximo de generación, incluidos los tokens de razonamiento y los tokens de la respuesta final. Los tokens de entrada se contabilizan por separado, pero el total combinado de tokens de entrada y generados debe caber dentro de la ventana de contexto del modelo.
streamEstablécelo en true para recibir la respuesta de forma incremental en lugar de esperar la salida completa.
toolsDefine las funciones cuya ejecución el modelo puede solicitar a la aplicación.
response_formatControla el formato de salida. Admite json_object para el modo JSON y json_schema para una salida estructurada restringida por un esquema.

Nota: Kimi K3.1 Pro usa configuraciones de muestreo fijas. No agregues temperature ni top_p a las solicitudes. Consulta la referencia de la API de Chat Completions para ver los detalles de los parámetros y los valores admitidos.

Lectura de la respuesta

Después de una solicitud exitosa, puedes acceder a los principales campos de respuesta mediante el objeto de completado devuelto:

  • choices[0].message – Contiene la respuesta del asistente, incluidos content o tool_calls cuando el modelo solicita una función.

  • choices[0].finish_reason – Indica por qué se detuvo la generación, por ejemplo, stop, length o tool_calls.

  • usage – Proporciona información sobre el uso de token, incluidos los recuentos de token de entrada, salida y caché cuando están disponibles.

Para una respuesta de texto básica, lee choices[0].message.content. Si el modelo devuelve tool_calls, tu aplicación debe ejecutar las funciones solicitadas y enviar sus resultados en una solicitud posterior.

Ejemplo de transmisión en tiempo real

Configura stream=True para recibir la respuesta de Kimi en fragmentos incrementales. El siguiente ejemplo reutiliza el client configurado anteriormente e imprime la respuesta final a medida que llega:

stream = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ {"role": "user", "content": "Write a haiku about autumn."} ], stream=True, ) for chunk in stream: if not chunk.choices: continue delta = chunk.choices[0].delta if delta.content: print(delta.content, end="", flush=True)

Kimi K3.1 Pro devuelve el contenido de razonamiento por separado de la respuesta final. Este ejemplo solo imprime delta.content, por lo que muestra la respuesta final sin procesar el campo reasoning_content independiente.

Llamadas a herramientas en breve

Las llamadas a herramientas permiten que Kimi solicite funciones externas cuando una tarea requiere información o acciones que van más allá de la propia respuesta del modelo. Por ejemplo, si un usuario pregunta: "¿Debo llevar un paraguas hoy en Tokio?", Kimi puede solicitar una función get_weather para obtener el pronóstico.

El flujo de trabajo tiene tres pasos:

  1. Declara la función: Define get_weather y los argumentos que espera en el parámetro tools.

  2. Ejecuta la herramienta: Kimi devuelve una entrada tool_calls con el nombre y los argumentos de la función. Tu aplicación ejecuta la función correspondiente y obtiene los datos meteorológicos.

  3. Envía el resultado de vuelta: Agrega a la conversación el mensaje completo del asistente de Kimi y el resultado de la herramienta (usando el tool_call_id correspondiente); luego, vuelve a llamar a Kimi para generar una respuesta dirigida al usuario.

El siguiente ejemplo reutiliza el client configurado anteriormente. Antes de ejecutarlo, asegúrate de haber implementado una función get_weather(city) que devuelva datos meteorológicos serializables en JSON. La función la ejecuta tu aplicación, no Kimi.

import json tools = [ { "type": "function", "function": { "name": "get_weather", "description": "Get the weather forecast for a city.", "parameters": { "type": "object", "properties": { "city": {"type": "string"} }, "required": ["city"] } } } ] messages = [ {"role": "user", "content": "Should I bring an umbrella in Tokyo today?"} ] # Ask Kimi whether it needs to call a tool resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=messages, tools=tools, ) assistant_message = resp.choices[0].message # Preserve the complete assistant message, including tool_calls messages.append(assistant_message) # Execute the requested function in your application for tool_call in assistant_message.tool_calls or []: if tool_call.function.name == "get_weather": args = json.loads(tool_call.function.arguments) # Call your own weather service or API weather_result = get_weather(city=args["city"]) messages.append({ "role": "tool", "tool_call_id": tool_call.id, "content": json.dumps(weather_result) }) # Let Kimi interpret the tool result and answer the user final_resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=messages, tools=tools, ) print(final_resp.choices[0].message.content)

Aquí, get_weather() representa una función implementada por tu aplicación, no una función que Kimi ejecute directamente. Kimi decide cuándo solicitarla y proporciona los argumentos; tu aplicación realiza la operación y devuelve el resultado.

En producción, implementa un bucle que procese cada llamada a herramienta, agregue los resultados correspondientes a la conversación y envíe los mensajes actualizados a Kimi. Repite este ciclo hasta que el modelo devuelva una respuesta final sin solicitar herramientas adicionales.

Por qué es importante que sea "compatible con OpenAI" al elegir un proveedor

Muchos proveedores admiten el formato OpenAI Chat Completions, lo que permite a los desarrolladores reutilizar SDK y estructuras de solicitudes conocidos. Por lo general, el cambio implica actualizar la URL base, la clave de API y el ID del modelo, y luego comprobar los parámetros admitidos y el manejo de respuestas. Al comparar proveedores, considera los siguientes factores:

  1. Fidelidad de compatibilidad: Verifica que la transmisión en tiempo real, las llamadas a herramientas, las salidas estructuradas y los informes de usage funcionen como espera tu aplicación. La compatibilidad con el mismo formato de API no garantiza que todos los proveedores ofrezcan funciones idénticas ni el mismo comportamiento de respuesta.

  2. Calidad del modelo para tu carga de trabajo: La combinación de idiomas y los tipos de tareas son más importantes que las pruebas comparativas genéricas.

  3. Ventana de contexto: Los modelos de contexto largo pueden simplificar algunos flujos de trabajo con documentos al procesar más material de origen en una sola solicitud.

  4. Estructura de costos: El almacenamiento en caché y los descuentos por lotes suelen tener más peso que los precios por token anunciados.

  5. Amplitud del ecosistema: Endpoints compatibles adicionales, como Responses y Anthropic Messages, pueden ofrecer más opciones de integración y flexibilidad a medida que evoluciona tu aplicación.

Kimi API: un destacado proveedor compatible con OpenAI

Vale la pena considerar Kimi API, desarrollada por Moonshot AI, si buscas un proveedor compatible con OpenAI, en especial para aplicaciones en chino, procesamiento de documentos extensos y agentes de programación. Combina patrones conocidos de integración de API con las capacidades de contexto largo y razonamiento de Kimi.

Compatible de forma directa

Si tu aplicación ya usa el SDK de Python de OpenAI, puedes integrar Kimi sin tener que reescribir todo el flujo de solicitudes. Solo actualiza la configuración de la API, incluidos base_url, api_key y el ID del modelo, y conserva la conocida interfaz de Chat Completions.

Por ejemplo, el siguiente código lee un informe local de report.txt, envía su contenido a Kimi K3.1 Pro para resumirlo y transmite la respuesta generada:

from pathlib import Path report_text = Path("report.txt").read_text(encoding="utf-8") resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ { "role": "user", "content": f"Summarize the following report:\n\n{report_text}" } ], stream=True, ) for chunk in resp: if not chunk.choices: continue content = chunk.choices[0].delta.content if content: print(content, end="", flush=True)

Aquí, client reutiliza el cliente de Kimi inicializado previamente con tu clave de API, leída desde una variable de entorno. Elige la URL base según tu región: https://api.moonshot.ai/v1 para la plataforma internacional o https://api.moonshot.cn/v1 para usuarios que acceden a la API desde China continental.

Este enfoque te permite conservar tu flujo de trabajo actual con el SDK de OpenAI mientras usas modelos Kimi para tareas como el resumen de documentos y otras aplicaciones basadas en API.

Lo que distingue a Kimi

  • Un modelo insignia con una ventana de contexto de 1M tokens: Kimi K3.1 Pro admite una ventana de contexto de hasta 1M tokens y comprensión visual nativa. Los desarrolladores pueden trabajar con bases de código extensas, documentos de la extensión de un libro e imágenes en un solo flujo de trabajo, por lo que resulta adecuado para razonamiento complejo, programación y aplicaciones multimodales.

  • Optimización flexible de costos: Kimi API admite el almacenamiento en caché automático del contexto para prefijos de solicitudes repetidos y la inferencia mediante Batch API para tareas a gran escala que no requieren respuestas en tiempo real. La facturación de caché y los precios de Batch dependen del modelo y de las reglas de precios aplicables. Consulta los precios oficiales de Kimi API para conocer las tarifas actuales y los detalles de facturación.

  • Compatibilidad entre ecosistemas de API: Kimi ofrece endpoints de Chat Completions y Responses API compatibles con OpenAI, además de un endpoint compatible con Anthropic Messages. Los desarrolladores pueden integrar Kimi K3.1 Pro en flujos de trabajo existentes mediante SDK y formatos de API conocidos, con ajustes según el endpoint y las funciones admitidas.

Conclusión

Comenzar con Chat Completions API es sencillo: configura tus credenciales de API, envía una solicitud y lee la respuesta generada desde choices[0].message.content. Cuando tu primera llamada a la API funcione, podrás ampliar la integración según las necesidades de tu aplicación agregando conversaciones de varios turnos, respuestas transmitidas o llamadas a herramientas. ¿Listo para desarrollar con Kimi? Obtén tu clave de Kimi API y comienza a realizar solicitudes a la API.

Preguntas frecuentes

No. La API de Chat Completions no es exclusiva de los modelos de OpenAI. Otros proveedores de IA, incluido Kimi, ofrecen API que siguen el formato de Chat Completions compatible con OpenAI. Esto permite a los desarrolladores reutilizar SDK y estructuras de solicitud conocidas con modelos compatibles de distintos proveedores, aunque la compatibilidad de funciones puede variar.
Ambas API permiten que las aplicaciones interactúen con modelos de IA, pero usan estructuras de solicitud y respuesta diferentes. Chat Completions usa un arreglo messages y devuelve respuestas mediante un arreglo choices. La API de Responses usa una estructura de entrada y salida más flexible que admite distintos tipos de contenido e interacciones con herramientas. La gestión del estado de la conversación varía según el proveedor. Con la API de Responses de Kimi, las aplicaciones deben incluir el historial de conversación pertinente en cada solicitud, en lugar de depender del encadenamiento mediante ID de respuesta.
Si tu aplicación usa el SDK de OpenAI, por lo general puedes cambiar a Kimi actualizando tres valores de configuración: base_url por el endpoint de API de Kimi, api_key por tu clave de Kimi API y model por un ID de modelo de Kimi compatible. Luego, prueba tu integración para verificar que los parámetros y las funciones de los que depende tu aplicación, como la transmisión en streaming y las llamadas a herramientas, sean compatibles.
También le puede interesar
API Chat Completions de OpenAI: guía completa
API Chat Completions de OpenAI: guía completa
2026-11-14
10 API de LLM gratuitas y de pago para el desarrollo de IA
10 API de LLM gratuitas y de pago para el desarrollo de IA
2026-11-14
Guía de API de LLM: funciones, beneficios y aplicaciones comunes
Guía de API de LLM: funciones, beneficios y aplicaciones comunes
2026-11-14
API de modelos: guía para desarrolladores sobre Kimi API
API de modelos: guía para desarrolladores sobre Kimi API
2026-11-14
API compatible con OpenAI: guía práctica para desarrolladores
API compatible con OpenAI: guía práctica para desarrolladores
2026-11-14