> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Kimi Chat Completion API Antrag und Nutzung

> Kimi API guide - Ace Data Cloud

Kimi ist eine AI-Modellreihe, die von der Dunklen Seite des Mondes eingeführt wurde. Das derzeit empfohlene `kimi-k3` richtet sich an langfristige Programmierung, Agenten, komplexe Schlussfolgerungen und Wissensarbeit und kann über die OpenAI-kompatible Chat Completions API aufgerufen werden.

Dieses Dokument beschreibt hauptsächlich den Ablauf der Nutzung der Kimi Chat Completion API, mit der wir die offiziellen Kimi-Dialogfunktionen einfach nutzen können.

## Antragsprozess

Um die Kimi Chat Completion API zu nutzen, müssen Sie zunächst Ihr API-Token im [Ace Data Cloud Dashboard](https://platform.acedata.cloud/console/applications) abrufen und für zukünftige Verwendung aufbewahren.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, wo Sie zur Registrierung und Anmeldung eingeladen werden. Nach Abschluss werden Sie automatisch zur aktuellen Seite zurückgeleitet.

**Ein API-Token reicht aus, um alle Dienste der Plattform aufzurufen, es ist nicht erforderlich, für jeden Dienst separat einen Antrag zu stellen.** Bei der ersten Beantragung erhalten Sie ein kostenloses Kontingent, um es kostenlos auszuprobieren; wenn das Kontingent nicht ausreicht, können Sie im [Dashboard](https://platform.acedata.cloud/console/coin) Ihr allgemeines Guthaben aufladen.

> 📘 Vollständige Dokumentation: [Kimi Chat Completion API →](https://platform.acedata.cloud/documents/kimi-chat-completions)

## Grundlegende Nutzung

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

<p>
  <img src="https://cdn.acedata.cloud/ej5ozg.png" width="400" className="m-auto" />
</p>

Bei der ersten Nutzung dieser Schnittstelle müssen mindestens drei Inhalte ausgefüllt werden: `authorization` kann direkt aus der Dropdown-Liste ausgewählt werden; `model` dient zur Auswahl des Kimi-Modells, empfohlen wird die Verwendung von `kimi-k3`; `messages` ist ein Array von Dialognachrichten, wobei jede Nachricht `role` und `content` enthält, wobei `role` `user`, `assistant`, `system` und `tool` unterstützt.

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.

<p>
  <img src="https://cdn.acedata.cloud/six7e3.png" width="400" className="m-auto" />
</p>

Hier ist die echte K3-Antwort, die mit `reasoning_effort: max` erhalten wurde (nicht verwendete Erweiterungsfelder wurden weggelassen):

```json theme={null}
{
  "id": "msg_2D4Btbg1WgvkNE3tCYkR4xGA",
  "object": "chat.completion",
  "created": 1784466588,
  "model": "kimi-k3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hallo! Wie kann ich Ihnen heute helfen?"
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 86,
    "completion_tokens": 206,
    "total_tokens": 292
  }
}
```

Die Rückgabe enthält 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 von der offiziellen Website.
* `choices`, die Antwortinformationen, die Kimi auf die gestellten Fragen gibt.
* `usage`: Statistische Informationen zu den Tokens für diese Frage-Antwort-Paar.

Dabei enthält `choices` die Antwortinformationen von Kimi, und die darin enthaltenen `choices` sind die spezifischen Informationen, die Kimi gegeben hat, wie im Bild zu sehen ist.

<p>
  <img src="https://cdn.acedata.cloud/tv9rul.png" width="400" className="m-auto" />
</p>

Es ist zu erkennen, dass das `content`-Feld in `choices` den spezifischen Inhalt der Antwort von Kimi enthält; K3 kann auch `reasoning_content` zurückgeben, um den Schlussfolgerungsprozess darzustellen.

## K3 Schlussfolgerungsstärke

`kimi-k3` aktiviert immer die Schlussfolgerung. Der oberste Teil des Anforderungskörpers unterstützt das Feld `reasoning_effort`, wobei der derzeit einzige unterstützte Wert `max` ist; wenn dieses Feld weggelassen wird, wird ebenfalls `max` verwendet. `standard`, `high` oder andere Zeichenfolgen können von einigen kompatiblen Upstream-Anwendungen locker akzeptiert werden, aber es wird nicht garantiert, dass sie das Schlussfolgerungsverhalten ändern, verlassen Sie sich nicht darauf.

```bash theme={null}
curl https://api.acedata.cloud/kimi/chat/completions \
  -H "Authorization: Bearer $ACEDATACLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "messages": [{"role": "user", "content": "Überprüfen Sie diesen Code und geben Sie eine Lösung an"}],
    "reasoning_effort": "max"
  }'
```

Bei der Verwendung des OpenAI SDK kann dieses Feld direkt übergeben werden:

```python theme={null}
response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Entwerfen Sie eine zuverlässige Aufgabenwarteschlange"}],
    reasoning_effort="max",
)
```

Bei mehrstufigen Dialogen und Toolaufrufen sollten Sie die vollständige Assistant-Nachricht der vorherigen Runde in `messages` zurückgeben, einschließlich `reasoning_content` und `tool_calls`.

### Offizielle Referenzen

* [Thinking Effort](https://platform.kimi.ai/docs/guide/use-thinking-effort): Erläutert, dass Kimi K3 immer die Schlussfolgerung aktiviert, wobei der derzeit einzige unterstützte Wert für `reasoning_effort` `max` ist.
* [Model Parameter Reference](https://platform.kimi.ai/docs/api/models-overview): Vergleicht die Schlussfolgerungsparameter, Kontextfenster und Unterschiede bei Toolaufrufen zwischen K3 und K2-Serien.
* [Create Chat Completion](https://platform.kimi.ai/docs/api/chat): Offizielle Chat Completions-Anfragen, -Antworten und OpenAPI-Felddefinitionen von Moonshot.

## 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 Anzeige zeilenweise zu realisieren.

Wenn Sie eine Stream-Antwort zurückgeben möchten, können Sie den `stream`-Parameter im Anforderungsheader auf `true` ändern.

Die Änderung ist wie im Bild gezeigt, jedoch muss der Aufrufcode entsprechend geändert werden, um Stream-Antworten zu unterstützen.

<p>
  <img src="https://cdn.acedata.cloud/a3nzpw.png" width="400" className="m-auto" />
</p>

Nachdem `stream` auf `true` geändert wurde, gibt die API die entsprechenden JSON-Daten zeilenweise zurück, und auf der Codeebene müssen wir entsprechende Änderungen vornehmen, um die zeilenweisen Ergebnisse zu erhalten.

Python-Beispielaufrufcode:

```python theme={null}
import requests

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

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

payload = {
    "model": "kimi-k3",
    "messages": [{"role":"user","content":"Hallo"}],
    "reasoning_effort": "max",
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Im Folgenden sind die Anfangs-, Schlussfolgerungs-, Haupt-, End- und Verbrauchsdatenblöcke aus einer echten K3 Max Stream-Antwort ausgewählt:

```json theme={null}
data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":null}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{"reasoning_content":"Die"},"finish_reason":null}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{"content":"Hallo"},"finish_reason":null}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null}

data: {"id":"msg_er7WZjyv2kD3TG2yzbFPu5ZJ","object":"chat.completion.chunk","created":1784466598,"model":"kimi-k3","choices":[],"usage":{"prompt_tokens":172,"completion_tokens":168,"total_tokens":340}}

data: [DONE]
```

Sie können sehen, dass die Antwort viele `data` enthält, wobei `data` die neuesten Antwortinhalte in `choices` sind, die mit den oben beschriebenen Inhalten übereinstimmen. `choices` sind die neuen Antwortinhalte, die Sie in Ihr System integrieren können. Das Ende der Streaming-Antwort wird anhand des Inhalts von `data` bestimmt; wenn der Inhalt `[DONE]` ist, bedeutet dies, dass die Streaming-Antwort vollständig beendet ist. Die zurückgegebenen `data`-Ergebnisse haben mehrere Felder, die wie folgt beschrieben werden:

* `id`, die ID der generierten Dialogaufgabe, um diese Dialogaufgabe eindeutig zu identifizieren.
* `model`, das gewählte Kimi-Modell von der offiziellen Website.
* `choices`, die Antwortinformationen von Kimi auf die gestellten Fragen.

JavaScript wird ebenfalls unterstützt, zum Beispiel ist der Code für den Streaming-Aufruf in Node.js wie folgt:

```javascript theme={null}
const options = {
  method: "post",
  headers: {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k3",
    "messages": [{"role":"user","content":"Hallo"}],
    "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-Beispielcode:

```java theme={null}
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "kimi-k3");
jsonObject.put("messages", [{"role":"user","content":"Hallo"}]);
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())
```

Andere Sprachen können entsprechend umgeschrieben werden, das Prinzip ist dasselbe.

## Mehrere Runden im Dialog

Wenn Sie die Funktion für mehrere Runden im Dialog integrieren möchten, müssen Sie mehrere Fragen im `messages`-Feld hochladen. Ein konkretes Beispiel für mehrere Fragen ist im folgenden Bild dargestellt:

<p>
  <img src="https://cdn.acedata.cloud/g85v2a.png" width="400" className="m-auto" />
</p>

Python-Beispielaufrufcode:

```python theme={null}
import requests

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

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

payload = {
    "model": "kimi-k3",
    "messages": [{"role":"assistant","content":"Hallo! Wie kann ich Ihnen heute helfen?"},{"role":"user","content":"Welches Modell sind Sie?"}],
    "reasoning_effort": "max"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Durch das Hochladen mehrerer Fragen können Sie problemlos mehrere Runden im Dialog realisieren. Hier ist die echte K3 Max-Antwort, die von dieser Anfrage erhalten wurde (nicht verwendete Erweiterungsfelder wurden weggelassen):

```json theme={null}
{
  "id": "msg_Rqp8nPGBDHWwBlL4VpxuafOp",
  "object": "chat.completion",
  "created": 1784466628,
  "model": "kimi-k3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Ich bin Kimi, ein KI-Assistent, der von Moonshot AI (月之暗面) entwickelt wurde. Ich habe hier keine spezifische öffentliche Modellversionskennung, die ich teilen kann."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 134,
    "completion_tokens": 346,
    "total_tokens": 480
  }
}
```

Sie können sehen, dass die Informationen in `choices` mit den grundlegenden Inhalten übereinstimmen, die Kimi für mehrere Dialoge bereitstellt, um die entsprechenden Fragen zu beantworten.

## Fehlerbehandlung

Wenn Sie die API aufrufen und auf einen Fehler stoßen, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:

* `400 token_mismatched`: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
* `400 api_not_implemented`: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
* `401 invalid_token`: Unbefugt, 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.

### Beispiel für eine Fehlerantwort

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

## Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die Kimi Chat Completion API verwenden, um normale Gespräche, Streaming-Antworten, mehrere Runden im Dialog zu realisieren und die K3-Inferenzstärke über `reasoning_effort` zu steuern.
