Zum Hauptinhalt springen
Kimi ist ein sehr leistungsstarkes KI-Dialogsystem, das in nur wenigen Sekunden flüssige und natürliche Antworten generieren kann, sobald man einen Hinweis eingibt. Kimi bietet erstaunliche intelligente Unterstützung und steigert erheblich die Effizienz und Kreativität der Menschen. Dieses Dokument beschreibt hauptsächlich den Ablauf der Nutzung der Kimi Chat Completion API, mit der wir die offiziellen Dialogfunktionen von Kimi einfach nutzen können.

Antragsprozess

Um die Gemini Chat Completion API zu nutzen, können Sie zunächst auf die Seite Kimi Chat Completion API gehen und auf die Schaltfläche „Acquire“ klicken, um die erforderlichen Anmeldeinformationen zu erhalten: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, die Sie zur Registrierung und Anmeldung einlädt. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Antragstellung gibt es ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

Grundlegende Nutzung

Als Nächstes können Sie im Interface die entsprechenden Inhalte ausfüllen, wie im Bild gezeigt:

Bei der ersten Nutzung dieser Schnittstelle müssen wir mindestens drei Inhalte ausfüllen: einer ist authorization, den Sie einfach aus der Dropdown-Liste auswählen können. Ein weiterer Parameter ist model, model ist die Modellkategorie, die wir von der Kimi-Website auswählen. Hier haben wir hauptsächlich 7 Modelle, die Details können Sie in den von uns bereitgestellten Modellen einsehen. Der letzte Parameter ist messages, messages ist das Array der von uns eingegebenen Fragen, es handelt sich um ein Array, das mehrere Fragen gleichzeitig hochladen kann, wobei jede Frage role und content enthält, wobei role die Rolle des Fragestellers angibt. Wir bieten drei Identitäten an: user, assistant, system. Das andere content ist der spezifische Inhalt unserer Frage. Gleichzeitig können Sie auf der rechten Seite den entsprechenden Code zur Aufrufgenerierung sehen, den Sie kopieren und direkt ausführen oder einfach auf die Schaltfläche „Try“ klicken können, um einen Test durchzuführen.

Nach dem Aufruf stellen wir fest, dass das Rückgabeergebnis wie folgt aussieht:
{
  "id": "chatcmpl-b5d9e1b799c137e3",
  "object": "chat.completion",
  "created": 1770991864,
  "model": "kimi-k2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " Hallo! Wie kann ich Ihnen heute helfen?",
        "refusal": null,
        "reasoning_content": " Der Benutzer hat einfach \"Hallo\" gesagt. Dies ist eine einfache Begrüßung. Ich sollte freundlich und hilfsbereit antworten, während ich bereit bin, bei allem zu helfen, was sie als Nächstes benötigen. Da es noch keine spezifische Frage oder Aufgabe gibt, werde ich ihre Begrüßung anerkennen und fragen, wie ich helfen kann.\n\nIch sollte es so halten:\n- Freundlich und einladend\n- Professionell, aber warm\n- Offen, um sie einzuladen, zu teilen, wobei sie Hilfe benötigen\n- Prägnant, aber nicht zu kurz\n\nMögliche Antworten:\n1. \"Hallo! Wie kann ich Ihnen heute helfen?\"\n2. \"Hallo! Was kann ich für Sie tun?\"\n3. \"Hallo! Ich bin bereit zu helfen. Was möchten Sie wissen oder bearbeiten?\"\n4. \"Hey! Schön, Sie kennenzulernen. Wie kann ich Ihnen behilflich sein?\"\n\nIch werde etwas Warmes und Professionelles wählen, das sie einlädt, zu teilen, was sie benötigen. ",
        "reasoning": " Der Benutzer hat einfach \"Hallo\" gesagt. Dies ist eine einfache Begrüßung. Ich sollte freundlich und hilfsbereit antworten, während ich bereit bin, bei allem zu helfen, was sie als Nächstes benötigen. Da es noch keine spezifische Frage oder Aufgabe gibt, werde ich ihre Begrüßung anerkennen und fragen, wie ich helfen kann.\n\nIch sollte es so halten:\n- Freundlich und einladend\n- Professionell, aber warm\n- Offen, um sie einzuladen, zu teilen, wobei sie Hilfe benötigen\n- Prägnant, aber nicht zu kurz\n\nMögliche Antworten:\n1. \"Hallo! Wie kann ich Ihnen heute helfen?\"\n2. \"Hallo! Was kann ich für Sie tun?\"\n3. \"Hallo! Ich bin bereit zu helfen. Was möchten Sie wissen oder bearbeiten?\"\n4. \"Hey! Schön, Sie kennenzulernen. Wie kann ich Ihnen behilflich sein?\"\n\nIch werde etwas Warmes und Professionelles wählen, das sie einlädt, zu teilen, was sie benötigen. ",
        "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": {}
  }
}
Das Rückgabeergebnis hat mehrere Felder, die wie folgt beschrieben werden:
  • id, die ID der generierten Dialogaufgabe, die zur eindeutigen Identifizierung dieser Dialogaufgabe dient.
  • model, das ausgewählte Kimi-Modell.
  • choices, die Antwortinformationen, die Kimi auf die Fragen gibt.
  • usage: die statistischen Informationen zu den Tokens für diese Frage-Antwort-Paar.
Dabei ist choices das, was die Antwortinformationen von Kimi enthält, und das choices darin sind die spezifischen Informationen, die Kimi geantwortet hat, wie im Bild gezeigt.

Man kann sehen, dass das content-Feld in choices den spezifischen Inhalt der Antwort von Gemini enthält.

Stream-Antwort

Diese Schnittstelle unterstützt auch Stream-Antworten, was für die Integration in Webseiten sehr nützlich ist, da es ermöglicht, die Ausgabe zeilenweise anzuzeigen. Wenn Sie eine Stream-Antwort zurückgeben möchten, können Sie den stream-Parameter im Header der Anfrage auf true ändern. Die Änderung ist wie im Bild gezeigt, jedoch muss der Aufrufcode entsprechend geändert werden, um Stream-Antworten zu unterstützen.

Nachdem Sie stream auf true geändert haben, gibt die API die entsprechenden JSON-Daten zeilenweise zurück. Auf der Code-Ebene müssen wir entsprechende Änderungen vornehmen, um die zeilenweisen Ergebnisse zu erhalten. Python-Beispielaufrufcode:
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":"Hallo"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Die Ausgabe sieht wie folgt aus:
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": " Der", "reasoning": " Der"}, "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": " Benutzer sagte \"Hallo\". Dies ist eine einfache Begrüßung", "reasoning": " Benutzer sagte \"Hallo\". Dies ist eine einfache Begrüßung"}, "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": ". Ich sollte freundlich und einladend antworten", "reasoning": ". Ich sollte freundlich und einladend antworten"}, "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": ". Da dies der Beginn eines Gesprächs ist,", "reasoning": ". Da dies der Beginn eines Gesprächs ist,"}, "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": " sollte ich fragen, wie ich ihnen heute helfen kann.\n\n", "reasoning": " sollte ich fragen, wie ich ihnen heute helfen kann.\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": "Lass mich eine Antwort formulieren:\n- Anerkennen der", "reasoning": "Lass mich eine Antwort formulieren:\n- Anerkennen der"}, "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": " Begrüßung\n- Hilfe anbieten\n- Es warm halten", "reasoning": " Begrüßung\n- Hilfe anbieten\n- Es warm halten"}, "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": " und professionell\n\nEtwas wie: \"Hallo! Wie", "reasoning": " und professionell\n\nEtwas wie: \"Hallo! Wie"}, "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": " kann ich Ihnen heute helfen?\" oder \"Hallo", "reasoning": " kann ich Ihnen heute helfen?\" oder \"Hallo"}, "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": "! Was kann ich für Sie tun?\"\n\nTatsächlich", "reasoning": "! Was kann ich für Sie tun?\"\n\nTatsächlich"}, "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": ", wenn man den Kontext betrachtet, scheint dies", "reasoning": ", wenn man den Kontext betrachtet, scheint dies"}, "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": " ein allgemeiner Gesprächsanfang zu sein. Ich werde es einfach und", "reasoning": " ein allgemeiner Gesprächsanfang zu sein. Ich werde es einfach und"}, "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": " offen gestalten, um sie zu ermutigen, zu teilen, was sie brauchen", "reasoning": " offen gestalten, um sie zu ermutigen, zu teilen, was sie brauchen"}, "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": " Hallo! Wie kann ich helfen", "reasoning_content": " helfen. ", "reasoning": " helfen. "}, "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": " Ihnen heute?"}, "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": " Ich bin Kimi, ein KI-Assistent von Moonshot AI. Ich komme aus der **K2.5**-Serie.",
        "refusal": null,
        "reasoning_content": " Der Benutzer fragt: \"Welches Modell bist du?\" Sie möchten wissen, welches KI-Modell ich bin.\n\n Ich sollte mich als Kimi identifizieren, ein KI-Assistent von Moonshot AI. Ich sollte erwähnen, dass ich Kimi aus der K2.5-Serie bin, da dies das derzeit eingesetzte Modell ist.\n\n Wichtige Punkte:\n - Ich bin Kimi\n - Hergestellt von Moonshot AI\n - Derzeit Kimi K2.5 (oder einfach sagen, dass ich Teil der K2.5-Serie bin)\n - Ich sollte hilfreich und direkt sein\n\n Ich sollte nicht:\n - Behaupten, ein anderes Modell zu sein (wie GPT-4, Gemini usw.)\n - Ausweichend über meine Identität sein\n - Versionsnummern erfinden, die nicht korrekt sind\n\n Die aktuelle Modellidentität ist Kimi K2.5 (obwohl die genaue Serienbezeichnung je nach Einsatz variieren kann, ist K2.5 das derzeitige Flaggschiff). Ich werde mich als Kimi, einen KI-Assistenten von Moonshot AI, identifizieren und erwähnen, dass ich aus der K2.5-Serie komme.\n\n Einfach, direkt, genau. ",
        "reasoning": " Der Benutzer fragt: \"Welches Modell bist du?\" Sie möchten wissen, welches KI-Modell ich bin.\n\n Ich sollte mich als Kimi identifizieren, ein KI-Assistent von Moonshot AI. Ich sollte erwähnen, dass ich Kimi aus der K2.5-Serie bin, da dies das derzeit eingesetzte Modell ist.\n\n Wichtige Punkte:\n - Ich bin Kimi\n - Hergestellt von Moonshot AI\n - Derzeit Kimi K2.5 (oder einfach sagen, dass ich Teil der K2.5-Serie bin)\n - Ich sollte hilfreich und direkt sein\n\n Ich sollte nicht:\n - Behaupten, ein anderes Modell zu sein (wie GPT-4, Gemini usw.)\n - Ausweichend über meine Identität sein\n - Versionsnummern erfinden, die nicht korrekt sind\n\n Die aktuelle Modellidentität ist Kimi K2.5 (obwohl die genaue Serienbezeichnung je nach Einsatz variieren kann, ist K2.5 das derzeitige Flaggschiff). Ich werde mich als Kimi, einen KI-Assistenten von Moonshot AI, identifizieren und erwähnen, dass ich aus der K2.5-Serie komme.\n\n Einfach, direkt, genau. ",
        "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, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented:Bad request, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token:Unauthorized, ungültiger oder fehlender Autorisierungstoken.
  • 429 too_many_requests:Zu viele Anfragen, Sie haben das Rate-Limit überschritten.
  • 500 api_error:Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

错误响应示例

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

结论

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