Saltar al contenido principal
Kimi es un sistema de diálogo AI muy potente, que puede generar respuestas fluidas y naturales en cuestión de segundos al ingresar palabras clave. Kimi puede proporcionar una asistencia inteligente asombrosa, mejorando enormemente la eficiencia y creatividad del trabajo humano. Este documento describe principalmente el proceso de uso de la API de Kimi Chat Completion, que nos permite utilizar fácilmente la función de diálogo oficial de Kimi.

Proceso de solicitud

Para utilizar la API de Gemini Chat Completion, primero puedes ir a la página de Kimi Chat Completion API y hacer clic en el botón “Acquire” para obtener las credenciales necesarias para la solicitud: Si aún no has iniciado sesión o registrado, serás redirigido automáticamente a la página de inicio de sesión que te invita a registrarte e iniciar sesión. Después de registrarte e iniciar sesión, serás devuelto automáticamente a la página actual. En la primera solicitud, se te otorgará un crédito gratuito, lo que te permitirá utilizar esta API de forma gratuita.

Uso básico

A continuación, puedes completar el contenido correspondiente en la interfaz, como se muestra en la imagen:

En la primera vez que uses esta interfaz, necesitarás completar al menos tres campos: uno es authorization, que puedes seleccionar directamente en la lista desplegable. El otro parámetro es model, que es la categoría del modelo que elegimos usar del sitio web de Kimi; aquí tenemos principalmente 7 tipos de modelos, los detalles se pueden ver en los modelos que proporcionamos. El último parámetro es messages, que es un array de las palabras de pregunta que ingresamos; es un array que permite subir múltiples palabras de pregunta al mismo tiempo, cada palabra de pregunta contiene role y content, donde role indica el rol del preguntador, y hemos proporcionado tres identidades: user, assistant, system. El otro content es el contenido específico de nuestra pregunta. También puedes notar que a la derecha hay un código de llamada correspondiente generado, puedes copiar el código y ejecutarlo directamente, o simplemente hacer clic en el botón “Try” para realizar pruebas.

Después de la llamada, encontramos que el resultado devuelto es el siguiente:
{
  "id": "chatcmpl-b5d9e1b799c137e3",
  "object": "chat.completion",
  "created": 1770991864,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " ¡Hola! ¿Cómo puedo ayudarte hoy?",
        "refusal": null,
        "reasoning_content": " El usuario simplemente ha dicho \"Hola\". Este es un saludo directo. Debo responder de manera amigable y útil, mientras estoy listo para ayudar con lo que necesiten a continuación. Dado que aún no hay una pregunta o tarea específica, reconoceré su saludo y preguntaré cómo puedo ayudar.\n\nDebo mantenerlo:\n- Amigable y acogedor\n- Profesional pero cálido\n- Abierto para invitarles a compartir en qué necesitan ayuda\n- Conciso pero no demasiado breve\n\nRespuestas posibles:\n1. \"¡Hola! ¿Cómo puedo ayudarte hoy?\"\n2. \"¡Hola! ¿Qué puedo hacer por ti?\"\n3. \"¡Hola! Estoy listo para ayudar. ¿Qué te gustaría saber o en qué trabajar?\"\n4. \"¡Hola! Encantado de conocerte. ¿Cómo puedo servirte?\"\n\nOptaré por algo cálido y profesional que les invite a compartir lo que necesitan. ",
        "reasoning": " El usuario simplemente ha dicho \"Hola\". Este es un saludo directo. Debo responder de manera amigable y útil, mientras estoy listo para ayudar con lo que necesiten a continuación. Dado que aún no hay una pregunta o tarea específica, reconoceré su saludo y preguntaré cómo puedo ayudar.\n\nDebo mantenerlo:\n- Amigable y acogedor\n- Profesional pero cálido\n- Abierto para invitarles a compartir en qué necesitan ayuda\n- Conciso pero no demasiado breve\n\nRespuestas posibles:\n1. \"¡Hola! ¿Cómo puedo ayudarte hoy?\"\n2. \"¡Hola! ¿Qué puedo hacer por ti?\"\n3. \"¡Hola! Estoy listo para ayudar. ¿Qué te gustaría saber o en qué trabajar?\"\n4. \"¡Hola! Encantado de conocerte. ¿Cómo puedo servirte?\"\n\nOptaré por algo cálido y profesional que les invite a compartir lo que necesitan. ",
        "tool_calls": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 184,
    "total_tokens": 193,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
El resultado devuelto tiene varios campos, que se describen a continuación:
  • id, el ID de la tarea de diálogo generada, utilizado para identificar de manera única esta tarea de diálogo.
  • model, el modelo seleccionado del sitio web de Kimi.
  • choices, la información de respuesta que Kimi proporciona para las palabras de pregunta.
  • usage: información estadística sobre los tokens de esta pregunta y respuesta.
Dentro de choices se incluye la información de respuesta de Kimi, donde choices contiene la información específica de la respuesta de Kimi, como se puede ver en la imagen.

Se puede ver que el campo content dentro de choices contiene el contenido específico de la respuesta de Gemini.

Respuesta en flujo

Esta interfaz también admite respuestas en flujo, lo cual es muy útil para la integración en páginas web, ya que permite mostrar el contenido palabra por palabra. Si deseas que la respuesta se devuelva en flujo, puedes cambiar el parámetro stream en el encabezado de la solicitud a true. El cambio se muestra en la imagen, pero el código de llamada necesita tener los cambios correspondientes para admitir respuestas en flujo.

Al cambiar stream a true, la API devolverá los datos JSON correspondientes línea por línea; a nivel de código, necesitamos hacer los cambios necesarios para obtener los resultados línea por línea. Código de ejemplo de llamada en Python:
import requests

url = "https://api.acedata.cloud/kimi/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "kimi-k2.5",
    "messages": [{"role":"user","content":"Hola"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
El efecto de salida es el siguiente:
data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " El", "reasoning": " El"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " el usuario dijo \"Hola\". Este es un saludo simple", "reasoning": " el usuario dijo \"Hola\". Este es un saludo simple"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": ". Debo responder de manera amigable y acogedora", "reasoning": ". Debo responder de manera amigable y acogedora"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": ". Dado que este es el inicio de una conversación,", "reasoning": ". Dado que este es el inicio de una conversación,"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " debo preguntar cómo puedo ayudarles hoy.\n\n", "reasoning": " debo preguntar cómo puedo ayudarles hoy.\n\n"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": "Déjame elaborar una respuesta:\n- Reconocer el", "reasoning": "Déjame elaborar una respuesta:\n- Reconocer el"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " saludo\n- Ofrecer asistencia\n- Mantenerlo cálido", "reasoning": " saludo\n- Ofrecer asistencia\n- Mantenerlo cálido"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " y profesional\n\nAlgo como: \"¡Hola! ¿Cómo", "reasoning": " y profesional\n\nAlgo como: \"¡Hola! ¿Cómo"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " puedo ayudarle hoy?\" o \"¡Hola!", "reasoning": " puedo ayudarle hoy?\" o \"¡Hola!"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": "! ¿Qué puedo hacer por usted?\"\n\nEn realidad", "reasoning": "! ¿Qué puedo hacer por usted?\"\n\nEn realidad"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": ", mirando el contexto, esto parece ser", "reasoning": ", mirando el contexto, esto parece ser"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " un iniciador de conversación general. Lo mantendré simple y", "reasoning": " un iniciador de conversación general. Lo mantendré simple y"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"reasoning_content": " abierto para animarles a compartir lo que necesitan", "reasoning": " abierto para animarles a compartir lo que necesitan"}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"content": " ¡Hola! ¿Cómo puedo ayudar", "reasoning_content": " ayudar con. ", "reasoning": " ayudar con. "}, "logprobs": null, "finish_reason": null}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [{"index": 0, "delta": {"content": " usted hoy?"}, "logprobs": null, "finish_reason": "stop"}], "usage": null}

data: {"id": "chatcmpl-952dd5e75583c4d1", "object": "chat.completion.chunk", "created": 1770992031, "model": "kimi-k2.5", "system_fingerprint": null, "choices": [], "usage": {"prompt_tokens": 9, "completion_tokens": 135, "total_tokens": 144, "prompt_tokens_details": {"cached_tokens_details": {}}, "completion_tokens_details": {}}}

data: [DONE]
可以看到,响应里面有许多 datadata 里面的 choices 即为最新的回答内容,与上文介绍的内容一致。choices 是新增的回答内容,您可以根据结果来对接到您的系统中。同时流式响应的结束是根据 data 的内容来判断的,如果内容为 [DONE],则表示流式响应回答已经全部结束。返回的 data 结果一共有多个字段,介绍如下:
  • id,生成此次对话任务的 ID,用于唯一标识此次对话任务。
  • model ,选择的 Kimi 官网模型。
  • choices,Kimi 针对提问词给于的回答信息。
JavaScript 也是支持的,比如 Node.js 的流式调用代码如下:
const options = {
  method: "post",
  headers: {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k2.5",
    "messages": [{"role":"user","content":"Hello"}],
    "stream": true
  })
};

fetch("https://api.acedata.cloud/kimi/chat/completions", options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
Java 样例代码:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "kimi-k2.5");
jsonObject.put("messages", [{"role":"user","content":"Hello"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/kimi/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
其他语言可以另外自行改写,原理都是一样的。

多轮对话

如果您想要对接多轮对话功能,需要对 messages 字段上传多个提问词,多个提问词的具体示例如下图所示:

Python 样例调用代码:
import requests

url = "https://api.acedata.cloud/kimi/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "kimi-k2.5",
    "messages": [{"role":"assistant","content":"Hello! How can I help you today?"},{"role":"user","content":"What model are you?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
通过上传多个提问词,就可以轻松实现多轮对话,可以得到如下回答:
{
  "id": "chatcmpl-81e5f161ea077f5e",
  "object": "chat.completion",
  "created": 1770992310,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " Soy Kimi, un asistente de IA creado por Moonshot AI. Soy de la serie **K2.5**.",
        "refusal": null,
        "reasoning_content": " El usuario está preguntando \"¿Qué modelo eres?\" Quieren saber qué modelo de IA soy.\n\n Debo identificarme como Kimi, un asistente de IA creado por Moonshot AI. Debo mencionar que soy Kimi de la serie K2.5 específicamente, ya que ese es el modelo actualmente desplegado.\n\n Puntos clave:\n - Soy Kimi\n - Creado por Moonshot AI\n - Actualmente Kimi K2.5 (o simplemente decir que soy parte de la serie K2.5)\n - Debo ser útil y directo\n\n No debo:\n - Afirmar ser un modelo diferente (como GPT-4, Gemini, etc.)\n - Ser evasivo sobre mi identidad\n - Inventar números de versión que no son correctos\n\n La identidad del modelo actual es Kimi K2.5 (aunque a veces la designación exacta de la serie puede variar según el despliegue, pero K2.5 es el buque insignia actual). Me identificaré como Kimi, un asistente de IA de Moonshot AI, y mencionaré que soy de la serie K2.5.\n\n Simple, directo, preciso. ",
        "reasoning": " El usuario está preguntando \"¿Qué modelo eres?\" Quieren saber qué modelo de IA soy.\n\n Debo identificarme como Kimi, un asistente de IA creado por Moonshot AI. Debo mencionar que soy Kimi de la serie K2.5 específicamente, ya que ese es el modelo actualmente desplegado.\n\n Puntos clave:\n - Soy Kimi\n - Creado por Moonshot AI\n - Actualmente Kimi K2.5 (o simplemente decir que soy parte de la serie K2.5)\n - Debo ser útil y directo\n\n No debo:\n - Afirmar ser un modelo diferente (como GPT-4, Gemini, etc.)\n - Ser evasivo sobre mi identidad\n - Inventar números de versión que no son correctos\n\n La identidad del modelo actual es Kimi K2.5 (aunque a veces la designación exacta de la serie puede variar según el despliegue, pero K2.5 es el buque insignia actual). Me identificaré como Kimi, un asistente de IA de Moonshot AI, y mencionaré que soy de la serie K2.5.\n\n Simple, directo, preciso. ",
        "tool_calls": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 235,
    "total_tokens": 263,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
可以看到,choices 包含的信息与基本使用的内容是一致的,这个包含了 Kimi 针对多个对话进行回复的具体内容,这样就可以根据多个对话内容来回答对应的问题了。

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:
  • 400 token_mismatched:Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 400 api_not_implemented:Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 401 invalid_token:No autorizado, token de autorización inválido o faltante.
  • 429 too_many_requests:Demasiadas solicitudes, ha superado el límite de tasa.
  • 500 api_error:Error interno del servidor, algo salió mal en el servidor.

错误响应示例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

结论

通过本文档,您已经了解了如何使用 Gemini Chat Completion API 轻松实现官方 Gemini 的对话功能。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。