Saltar para o conteúdo principal
Kimi é um sistema de diálogo AI muito poderoso, que gera respostas fluentes e naturais em poucos segundos ao inserir palavras-chave. Kimi pode fornecer assistência inteligente impressionante, aumentando significativamente a eficiência e a criatividade do trabalho humano. Este documento descreve principalmente o processo de uso da API Kimi Chat Completion, que nos permite utilizar facilmente a funcionalidade de diálogo oficial do Kimi.

Processo de Solicitação

Para usar a API Gemini Chat Completion, primeiro você pode acessar a página Kimi Chat Completion API e clicar no botão “Adquirir” para obter as credenciais necessárias para a solicitação: Se você ainda não estiver logado ou registrado, será redirecionado automaticamente para a página de login, convidando-o a se registrar e fazer login. Após o registro e login, você será redirecionado de volta para a página atual. Na primeira solicitação, haverá um crédito gratuito disponível, permitindo o uso gratuito dessa API.

Uso Básico

Em seguida, você pode preencher o conteúdo correspondente na interface, como mostrado na imagem:

Na primeira vez que usar essa interface, precisamos preencher pelo menos três conteúdos: um é authorization, que pode ser selecionado diretamente na lista suspensa. O outro parâmetro é model, que é a categoria do modelo que escolhemos usar no site do Kimi. Aqui temos principalmente 7 tipos de modelos, e você pode ver os detalhes dos modelos que fornecemos. O último parâmetro é messages, que é um array de palavras-chave que inserimos, representando a possibilidade de enviar várias palavras-chave ao mesmo tempo. Cada palavra-chave contém role e content, onde role representa o papel do questionador. Oferecemos três identidades: user, assistant e system. O outro content é o conteúdo específico da nossa pergunta. Você também pode notar que há um código de chamada correspondente gerado à direita, que você pode copiar e executar diretamente, ou pode clicar no botão “Experimente” para testar.

Após a chamada, encontramos o resultado retornado como segue:
{
  "id": "chatcmpl-b5d9e1b799c137e3",
  "object": "chat.completion",
  "created": 1770991864,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " Olá! Como posso ajudá-lo hoje?",
        "refusal": null,
        "reasoning_content": " O usuário simplesmente disse \"Olá\". Esta é uma saudação direta. Eu devo responder de maneira amigável e útil, enquanto estou pronto para ajudar com o que eles precisarem a seguir. Como ainda não há uma pergunta ou tarefa específica, vou reconhecer a saudação deles e perguntar como posso ajudar.\n\nDevo manter:\n- Amigável e acolhedor\n- Profissional, mas caloroso\n- Aberto para convidá-los a compartilhar o que precisam de ajuda\n- Conciso, mas não muito breve\n\nRespostas possíveis:\n1. \"Olá! Como posso ajudá-lo hoje?\"\n2. \"Oi! O que posso fazer por você?\"\n3. \"Olá! Estou pronto para ajudar. O que você gostaria de saber ou trabalhar?\"\n4. \"Ei! Ótimo conhecê-lo. Como posso ser útil?\"\n\nVou optar por algo caloroso e profissional que os convide a compartilhar o que precisam. ",
        "reasoning": " O usuário simplesmente disse \"Olá\". Esta é uma saudação direta. Eu devo responder de maneira amigável e útil, enquanto estou pronto para ajudar com o que eles precisarem a seguir. Como ainda não há uma pergunta ou tarefa específica, vou reconhecer a saudação deles e perguntar como posso ajudar.\n\nDevo manter:\n- Amigável e acolhedor\n- Profissional, mas caloroso\n- Aberto para convidá-los a compartilhar o que precisam de ajuda\n- Conciso, mas não muito breve\n\nRespostas possíveis:\n1. \"Olá! Como posso ajudá-lo hoje?\"\n2. \"Oi! O que posso fazer por você?\"\n3. \"Olá! Estou pronto para ajudar. O que você gostaria de saber ou trabalhar?\"\n4. \"Ei! Ótimo conhecê-lo. Como posso ser útil?\"\n\nVou optar por algo caloroso e profissional que os convide a compartilhar o que precisam. ",
        "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": {}
  }
}
O resultado retornado contém vários campos, descritos a seguir:
  • id, o ID da tarefa de diálogo gerada, usado para identificar exclusivamente essa tarefa de diálogo.
  • model, o modelo do site Kimi escolhido.
  • choices, as informações de resposta que Kimi forneceu para as palavras-chave.
  • usage: informações estatísticas sobre os tokens da pergunta e resposta desta vez.
Entre eles, choices contém as informações de resposta do Kimi, onde choices é a informação específica da resposta do Kimi, como mostrado na imagem.

Pode-se ver que o campo content dentro de choices contém o conteúdo específico da resposta do Gemini.

Resposta em Fluxo

Essa interface também suporta resposta em fluxo, o que é muito útil para a integração com páginas da web, permitindo que a página exiba o efeito de exibição palavra por palavra. Se você deseja retornar a resposta em fluxo, pode alterar o parâmetro stream no cabeçalho da solicitação para true. A modificação é mostrada na imagem, mas o código de chamada precisa ter as alterações correspondentes para suportar a resposta em fluxo.

Após alterar stream para true, a API retornará os dados JSON correspondentes linha por linha, e no nível do código, precisamos fazer as modificações necessárias para obter os resultados linha por linha. Código de exemplo de chamada em 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":"Olá"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
O efeito de saída é o seguinte:
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": " O", "reasoning": " O"}, "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": " usuário disse \"Olá\". Esta é uma saudação simples", "reasoning": " usuário disse \"Olá\". Esta é uma saudação simples"}, "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": ". Eu devo responder de maneira amigável e acolhedora", "reasoning": ". Eu devo responder de maneira amigável e acolhedora"}, "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": ". Como este é o início de uma conversa,", "reasoning": ". Como este é o início de uma conversa,"}, "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": " Eu devo perguntar como posso ajudá-los hoje.\n\n", "reasoning": " Eu devo perguntar como posso ajudá-los hoje.\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": "Deixe-me elaborar uma resposta:\n- Reconhecer o", "reasoning": "Deixe-me elaborar uma resposta:\n- Reconhecer o"}, "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": " saudação\n- Oferecer assistência\n- Manter caloroso", "reasoning": " saudação\n- Oferecer assistência\n- Manter caloroso"}, "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": " e profissional\n\nAlgo como: \"Olá! Como", "reasoning": " e profissional\n\nAlgo como: \"Olá! Como"}, "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": " posso ajudá-lo hoje?\" ou \"Oi, o que", "reasoning": " posso ajudá-lo hoje?\" ou \"Oi, o que"}, "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": "! O que posso fazer por você?\"\n\nNa verdade", "reasoning": "! O que posso fazer por você?\"\n\nNa verdade"}, "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": ", olhando para o contexto, isso parece ser", "reasoning": ", olhando para o contexto, isso 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": " um iniciador de conversa geral. Vou mantê-lo simples e", "reasoning": " um iniciador de conversa geral. Vou mantê-lo simples e"}, "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": " aberto para encorajá-los a compartilhar o que precisam", "reasoning": " aberto para encorajá-los a compartilhar o que precisam"}, "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": " Olá! Como posso ajudar", "reasoning_content": " ajudar com. ", "reasoning": " ajudar com. "}, "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": " você hoje?"}, "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": " I'm Kimi, an AI assistant made by Moonshot AI. I'm from the **K2.5** series.",
        "refusal": null,
        "reasoning_content": " The user is asking \"What model are you?\" They want to know which AI model I am.\n\n I should identify myself as Kimi, an AI assistant made by Moonshot AI. I should mention that I'm Kimi from the K2.5 series specifically, as that's the model currently deployed.\n\n Key points:\n - I am Kimi\n - Made by Moonshot AI\n - Currently Kimi K2.5 (or just say I'm part of the K2.5 series)\n - I should be helpful and direct\n\n I should not:\n - Claim to be a different model (like GPT-4, Gemini, etc.)\n - Be evasive about my identity\n - Make up version numbers that aren't correct\n\n The current model identity is Kimi K2.5 (though sometimes the exact series designation might vary by deployment, but K2.5 is the current flagship). I'll identify myself as Kimi, an AI assistant by Moonshot AI, and mention I'm from the K2.5 series.\n\n Simple, direct, accurate. ",
        "reasoning": " The user is asking \"What model are you?\" They want to know which AI model I am.\n\n I should identify myself as Kimi, an AI assistant made by Moonshot AI. I should mention that I'm Kimi from the K2.5 series specifically, as that's the model currently deployed.\n\n Key points:\n - I am Kimi\n - Made by Moonshot AI\n - Currently Kimi K2.5 (or just say I'm part of the K2.5 series)\n - I should be helpful and direct\n\n I should not:\n - Claim to be a different model (like GPT-4, Gemini, etc.)\n - Be evasive about my identity\n - Make up version numbers that aren't correct\n\n The current model identity is Kimi K2.5 (though sometimes the exact series designation might vary by deployment, but K2.5 is the current flagship). I'll identify myself as Kimi, an AI assistant by Moonshot AI, and mention I'm from the K2.5 series.\n\n Simple, direct, accurate. ",
        "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:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

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

结论

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