Kimi K3 es el modelo insignia de Kimi para programación, trabajo de conocimiento y escenarios de razonamiento complejos. Utiliza Kimi Delta Attention (KDA), Attention Residuals y arquitectura MoE, tiene una escala de parámetros de 2,8 billones y proporciona comprensión visual nativa y 1 millón de contexto de token.
Este artículo se basa enKimi K3 官方 Quickstart, comienza con la clave API y las llamadas mínimas, clasifica ejemplos ejecutables de Python, cURL, salida de streaming, entrada visual, salida estructurada y llamadas a herramientas, y marca las diferencias de parámetros que se encuentran más fácilmente al migrar desde K2.x.
Quick Answer
Prepare Python 3.9+ y la clave API de Kimi, instale el SDK de OpenAI, escriba la clave enMOONSHOT_API_KEY, luego apunte elbase_urldel cliente OpenAI ahttps://api.moonshot.ai/v1y usekimi-k3para el nombre del modelo.
|
|
|
|
K3 siempre está en modo de pensar. Para establecer explícitamente la intensidad de la inferencia, utilice el campo de nivel superiorreasoning_effort="max"y no herede el parámetrothinkingde K2.x.
Preparar clave API y variables de entorno
Primero obtenga la clave API de Kimi API Platform. No escriba la clave directamente en el script ni la envíe a Git. Se recomienda pasarlo a través de variables de entorno.
Windows PowerShell
|
|
Para guardar permanentemente para el usuario actual de Windows, ejecute:
|
|
Vuelva a abrir la terminal después de guardar.
macOS y Linux
|
|
Utilice cURL para completar la llamada mínima
Si no desea crear un proyecto de Python primero, puede llamar directamente a la interfaz compatible con OpenAI Chat Completions:
|
|
Invoke-RestMethodse puede usar en PowerShell para evitar copiar directamente los saltos de línea de barra invertida de Bash:
|
|
Establecer la fuerza de inferencia de K3
Actualmente, K3 solo admitemax, que también es el valor predeterminado. El funcionario agregará más marchas en el futuro, por lo que este campo puede omitirse en esta etapa; si quieres que la intención de configuración sea más clara, puedes escribir así:
|
|
En múltiples rondas de conversaciones y llamadas a herramientas, el mensaje completo del asistente devuelto por la API debe volver a colocarse en la siguiente solicitud. No puedes quedarte solo concontent. El mensaje completo también puede contener información necesaria para la inferencia y la invocación de herramientas, lo que puede conducir fácilmente a un contexto incompleto después de la poda.
Manejar el razonamiento de transmisión y la respuesta final por separado
Una respuesta en tiempo real ubicaría el proceso de pensamiento enreasoning_contenty la respuesta final encontent. La interfaz de la aplicación puede manejar dos tipos de incrementos por separado:
|
|
Los entornos de producción normalmente deben almacenar o mostrarreasoning_contentpor separado de la respuesta final a los usuarios para evitar que la interfaz confunda las dos partes del contenido.
Enviar fotos locales
Elcontentdel mensaje visual debe ser una matriz de objetos y la matriz no se puede serializar en una cadena. K3 no admite la lectura directa de URL de imágenes públicas. Las imágenes locales deben convertirse a la URL de datos Base64:
|
|
El vídeo debe cargarse primero a través de la API de Archivos y luego hacer referencia a él conms://<file-id>; recuerde eliminar los archivos temporales una vez completada la tarea para evitar retener datos inútiles durante mucho tiempo.
Utilice una salida de esquema JSON estricta
Cuando es necesario entregar los resultados al programa para su procesamiento de manera estable, el resultado final puede limitarse ajson_schemaystrict: true. Al analizar, lea solomessage.contenty no analicereasoning_content.
|
|
additionalProperties: falsepuede evitar que el modelo agregue campos distintos al esquema, lo cual es adecuado para la extracción de datos, el llenado de formularios y la automatización posterior.
Implementar un bucle mínimo de llamada de herramienta
Configurartool_choice="required"en la primera pasada requiere que el modelo llame a la herramienta al menos una vez. Después de ejecutar la herramienta, debe conservar el mensaje completo del asistente y agregar un mensaje de herramienta contool_call_idcoincidente para cada llamada.
|
|
Los proyectos reales también necesitan verificar los parámetros de las herramientas, limitar los recursos accesibles, establecer tiempos de espera y agregar confirmación manual antes de realizar operaciones de alto riesgo, como escribir, eliminar y enviar.
Herramienta de carga dinámica
Si hay muchas herramientas, puede inyectar la definición completa de la herramienta a través del mensajesystemsincontentcuando la conversación llegue al punto requerido. La definición debe contenername,descriptionyparametersy persistir en el historial de solicitudes posteriores; el servidor no guardará esta definición para la aplicación.
Esta capacidad es adecuada para agentes grandes: primero proporcione una pequeña cantidad de herramientas básicas, confirme la dirección de la tarea y luego cargue la base de datos, el navegador o las herramientas del sistema empresarial, lo que reduce la cantidad de descripciones de herramientas enviadas al principio.
Contexto de 1M y almacenamiento en caché automático
Las solicitudes de modelo normales intentan automáticamente el almacenamiento en caché de contexto y no requieren proporcionar un ID de caché, TTL ni parámetros adicionales. Para mejorar las posibilidades de un acierto, coloque contenido más extenso y estable al principio de la solicitud y mantenga este prefijo sin cambios en solicitudes posteriores.
|
|
Un millón de tokens es el límite superior de capacidad, lo que no significa que cada solicitud deba estar llena de contexto. Realizar primero la selección de archivos, la recuperación segmentada y la deduplicación de resultados generalmente puede reducir las demoras y los costos, así como también reducir la interferencia de contenido irrelevante.
Limitaciones actuales y consideraciones de migración
Se recomienda comprobar punto por punto las siguientes restricciones antes de acceder:
- K3 siempre habilita el modo de pensamiento,
reasoning_effortactualmente solo admitemax; max_completion_tokenstiene como valor predeterminado 131072 y admite un máximo de 1048576;temperature=1.0,top_p=0.95,n=1,presence_penalty=0yfrequency_penalty=0son valores fijos; omítalos en la solicitud;- Múltiples rondas de diálogo y llamadas de herramientas deben devolver el mensaje completo del asistente tal como está;
- La entrada visual no admite URL de imágenes públicas; se debe utilizar Base64 o
ms://<file-id>; - La herramienta de búsqueda web oficial de Kimi se está actualizando y actualmente no se recomienda su uso en flujos de trabajo de producción recientes.
Si el proyecto anterior usa K2.x, busque primero thinking, los parámetros de muestreo y el código que conserva únicamente content. Después añada pruebas para el streaming de reasoning_content, el formato de matriz del contenido visual y el ciclo completo de llamadas a herramientas.
Preguntas frecuentes
¿Puede Kimi K3 usar OpenAI SDK directamente?
Sí. Instale openai>=1.0, configure base_url como https://api.moonshot.ai/v1 y pase la clave mediante MOONSHOT_API_KEY.
¿Por qué falla la solicitud después de configurar temperature?
Los parámetros de muestreo de K3, comotemperatureytop_p, adoptan valores fijos. Se recomienda oficialmente omitir estos campos y no copiar la configuración común de otros modelos compatibles con OpenAI.
¿Se pueden cargar las imágenes directamente en la dirección HTTP?
No. Codifique la imagen local como una URL de datos Base64 o cargue el archivo y utilice ms://<file-id>.
¿Necesito habilitar manualmente el almacenamiento en caché para el contexto de 1M?
No. Las solicitudes normales intentan usar la caché automáticamente. Mantener sin cambios un prefijo largo ayuda a que las solicitudes posteriores encuentren una coincidencia en la caché.
¿Cómo se factura Kimi K3?
Kimi aplica precios de pago por uso sin niveles según la longitud dentro de la ventana de 1 millón de tokens. La entrada distingue entre aciertos y fallos de caché, y la salida se factura por token. Los precios pueden cambiar; consulte la página de Kimi K3 Pricing antes de usarlo.