Text & Chat

Chat-Vervollständigung erstellen

Erstellt eine Vervollständigung für die Chat-Nachricht

POST
/v1/chat/completions

Anfragekörper

Unterstützte optionale Parameter, akzeptierte Werte und Standardeinstellungen hängen vom ausgewählten Modell ab. Überprüfen Sie die Modelldetails, bevor Sie Sampling-, Reasoning- oder Tool-Optionen festlegen.

modelstringerforderlich

ID des zu verwendenden Modells. Siehe Modelle für verfügbare Optionen.

messagesarrayerforderlich

Eine Liste von Nachrichten, die die Konversation bilden.

Jedes Nachrichtenobjekt enthält:

  • role (string): system, developer, user, assistant, tool, function
  • content (string | array | null): Der Nachrichteninhalt

Für eine assistant-Nachricht, die tool_calls enthält, kann content weggelassen oder auf null gesetzt werden.

Wenn content ein Array ist, unterstützt TokenLab strukturierte multimodale Blöcke für kompatible Modelle:

  • text: { "type": "text", "text": "..." }
  • image: { "type": "image_url", "image_url": { "url": "https://..." } }
  • video: { "type": "video_url", "video_url": { "url": "https://..." } }
  • audio: { "type": "audio_url", "audio_url": { "url": "https://..." } }

Verwenden Sie für multimodale Eingaben öffentlich erreichbare https-URLs. Unterstützte Medientypen hängen vom ausgewählten Modell ab.

temperaturenumber

Sampling-Temperatur. Unterstützung, zulässige Werte und der Standardwert hängen vom ausgewählten Modell ab; lassen Sie dieses Feld weg, um den Standardwert zu verwenden.

max_tokensinteger

Maximale Anzahl der zu generierenden Token.

streambooleanStandard: false

Wenn true, werden partielle Nachrichten-Deltas als SSE-Events gesendet.

stream_optionsobject

Optionen für das Streaming. Setzen Sie include_usage: true, um die Token-Nutzung in Stream-Chunks zu erhalten.

top_pnumber

Nucleus-Sampling-Parameter. Wir empfehlen, entweder diesen oder die Temperatur zu ändern, nicht beides.

frequency_penaltynumber

Zahl zwischen -2.0 und 2.0. Positive Werte bestrafen wiederholte Token.

presence_penaltynumber

Zahl zwischen -2.0 und 2.0. Positive Werte bestrafen Token, die bereits im Text vorkommen.

stopstring | array

Stopp-Sequenz oder Liste von Sequenzen. Unterstützung und Sequenzlimits hängen vom ausgewählten Modell ab.

toolsarray

Eine Liste von Tools, die das Modell aufrufen kann (Function Calling).

tool_choicestring | object

Steuert, wie das Modell Tools verwendet. Optionen: auto, none, required oder ein spezifisches Tool-Objekt.

parallel_tool_callsboolean

Erlaubt mehrere Tool-Aufrufe in einem Assistant-Turn, sofern vom ausgewählten Modell unterstützt.

max_completion_tokensinteger

Maximale Token für die Vervollständigung. Alternative zu max_tokens, nützlich für neuere Reasoning-fähige Modellfamilien.

reasoning_effortstring

Reasoning-Aufwand für Modelle, die dies unterstützen. Akzeptierte Werte hängen vom ausgewählten Modell ab.

Bei Claude-Modellen legt der Wert das Denken des Modells fest: ein Aufwandsgrad bei Modellen mit adaptivem Denken oder ein Denkbudget bei Modellen, die eines verwenden. none schaltet das Denken bei Modellen aus, die dies erlauben. Während das Denken aktiviert ist, lehnt Claude eine temperature ungleich 1, top_k, ein top_p außerhalb von 0.95–1 sowie eine vorab ausgefüllte Assistant-Nachricht ab. Ein erzwungenes tool_choice funktioniert mit adaptivem Denken, jedoch nicht mit einem Denkbudget.

anthropic_optionsobject

Optionen für Claude-Modelle.

  • prompt_caching (boolean): Auf true setzen, um den Beginn des Prompts zu cachen. TokenLab markiert das Ende des System-Prompts und die letzte Benutzer-Nachricht als Cache-Punkte. Eine spätere Anfrage, die mit demselben Inhalt beginnt, liest diesen aus dem Cache. Wenn eine Nachricht bereits cache_control enthält, fügt TokenLab keine Cache-Punkte hinzu.
  • prompt_caching_ttl (string): 5m (Standard) oder 1h. Wenn die Serving-Route keine eine Stunde unterstützt, verwendet TokenLab fünf Minuten und lehnt die Anfrage nicht ab.

extra.prompt_caching und extra.prompt_caching_ttl werden als dieselben Optionen akzeptiert. Siehe Prompt Caching für Preise und Informationen zur Überprüfung der gecachten Token.

seedinteger

Sampling-Seed für Modelle, die dies unterstützen. Identische Ausgaben sind nicht garantiert.

ninteger

Anzahl der zu generierenden Vervollständigungen (1-128).

logprobsboolean

Ob Log-Wahrscheinlichkeiten zurückgegeben werden sollen.

top_logprobsinteger

Anzahl der zurückzugebenden Top-Log-Wahrscheinlichkeiten (0-20). Erfordert logprobs: true.

top_kinteger

Top-K-Sampling für Modelle, die dies unterstützen.

response_formatobject

Antwortformat. Verwenden Sie {"type": "json_object"} für den JSON-Modus oder {"type": "json_schema", "json_schema": {...}} für ein JSON-Schema. Die Unterstützung hängt vom ausgewählten Modell ab.

logit_biasobject

Ändert die Wahrscheinlichkeit des Erscheinens bestimmter Token. Ordnen Sie Token-IDs (als Strings) Bias-Werten von -100 bis 100 zu.

userstring

Ein eindeutiger Identifikator für Ihren Endbenutzer zur Missbrauchsüberwachung.

Antwort

idstring

Eindeutiger Identifikator für die Vervollständigung.

objectstring

Immer chat.completion.

createdinteger

Unix-Zeitstempel der Erstellung der Vervollständigung.

modelstring

Das für die Vervollständigung verwendete Modell.

choicesarray

Liste der Vervollständigungsoptionen.

Jede Option enthält:

  • index (integer): Index der Option
  • message (object): Die generierte Nachricht
  • finish_reason (string): Grund, warum das Modell gestoppt hat, zum Beispiel stop, length oder tool_calls

Wenn das Modell denkt, kann message auch enthalten:

  • reasoning_content (string): Der Denktext. Manche Modelle geben nur eine Zusammenfassung oder gar keinen Text zurück.
  • reasoning_details (array): Denkblöcke mit ihren Signaturen. Um eine Konversation mit Denken fortzusetzen, zum Beispiel nach einem Tool-Aufruf, senden Sie diese unverändert in der Assistant-Nachricht zurück.

In einem Stream kommen dieselben Felder als delta.reasoning_content und delta.reasoning_details an.

usageobject

Statistiken zur Token-Nutzung.

  • prompt_tokens (integer): Token im Prompt
  • completion_tokens (integer): Token in der Vervollständigung, einschließlich Denk-Token
  • total_tokens (integer): Insgesamt verwendete Token
  • completion_tokens_details.reasoning_tokens (integer): Denk-Token, wenn das Modell diese meldet

Anfrage

curl -X POST "https://api.tokenlab.sh/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ],
    "max_tokens": 1000
  }'

Multimodales Beispiel

{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Describe this video briefly." },
        { "type": "video_url", "video_url": { "url": "https://example.com/demo.mp4" } }
      ]
    }
  ],
  "max_tokens": 64
}

Antwort

Response
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1706000000,
  "model": "gpt-5.6-terra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 9,
    "total_tokens": 29
  }
}

Autorisierung

BearerAuth
AuthorizationBearer <token>

API-Key-Authentifizierung. Erstellen oder verwalten Sie API-Keys unter Dashboard > API > API Keys.

Ort: header

Header

X-TokenLab-Delivery-Policy?string

Zustellungsrichtlinie pro Anfrage. Überschreibt die API-Key- und Workspace-Standardeinstellungen. Versucht automatisch zuerst TokenLab Verified und kann vor der Ausgabe, der Annahme der Anfrage oder der Erstellung persistenter Ressourcen einmalig auf Official umstellen.

Zulässige Werte

  • "auto"
  • "verified"
  • "official"

Anfragekörper

application/json

Antwort

application/json

application/json

application/json

application/json

application/json

application/json

application/json