Kernleitfäden

API-Formate

Chat Completions, Responses, Messages oder Gemini wählen

Ein TokenLab-Schlüssel funktioniert mit vier API-Formaten. Behalten Sie das vorhandene Format Ihrer Anwendung bei und prüfen Sie tokenlab.accepted_request_formats auf der Modellseite oder mit GET /v1/models/{model}. Nicht jedes Modell unterstützt alle vier Formate.

Chat Completions

POST /v1/chat/completions · openai_chat_completions

Geeignet für bestehende OpenAI-kompatible Chat-Clients, Nachrichtenverlauf, Streaming und vom Modell unterstützte Funktionsaufrufe. Felder anderer Formate sind nicht automatisch verfügbar.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKENLAB_API_KEY"],
    base_url="https://api.tokenlab.sh/v1",
)

response = client.chat.completions.create(
    model="gpt-5.6-luna",
    messages=[{"role": "user", "content": "Hello!"}],
)

print(response.choices[0].message.content)

Responses

POST /v1/responses · openai_responses

Verwenden Sie dieses Format, wenn accepted_request_formats den Wert openai_responses enthält. Es bietet Erstellen, Abrufen, Kompaktieren, Löschen, Streaming, Erstellen und Fortsetzen über WebSocket sowie Hintergrundantworten für unterstützte Modelle. Das Löschen einer gespeicherten Antwort bricht eine laufende Antwort nicht ab.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKENLAB_API_KEY"],
    base_url="https://api.tokenlab.sh/v1",
)

response = client.responses.create(
    model="gpt-5.6-terra",
    input="Explain why the sky is blue in two sentences.",
)

print(response.output_text)

Anthropic Messages

POST /v1/messages · anthropic_messages

Verwenden Sie im Anthropic SDK den TokenLab-Host ohne /v1. Claude-Tool-Aufrufe, thinking-Blöcke und Prompt-Cache-Felder bleiben im Messages-Format.

import os
from anthropic import Anthropic

client = Anthropic(
    api_key=os.environ["TOKENLAB_API_KEY"],
    base_url="https://api.tokenlab.sh",
)

message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=512,
    messages=[{"role": "user", "content": "Hello!"}],
)

print(message.content[0].text)

Gemini

POST /v1beta/models/:model:generateContent · gemini_generate_content

Geeignet für Anwendungen mit Gemini contents, parts, Dateien, Cache oder Tools. ProtoJSON lowerCamelCase und ursprüngliche snake_case-Namen werden akzeptiert; senden Sie dasselbe Feld nicht in beiden Schreibweisen.

curl "https://api.tokenlab.sh/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Hello!"}]}]
  }'

Ein Format pro Gespräch

Die Formate bilden Gesprächszustand und Tool-Ergebnisse unterschiedlich ab. Verwenden Sie ein Format pro Gespräch und konvertieren und prüfen Sie gespeicherte Verläufe vor einer Migration in Ihrer Anwendung.

Unbekannte Felder

Die Weiterleitung eines Felds garantiert keine Modellunterstützung. Verlassen Sie sich auf die dokumentierten Funktionen des gewählten Modells und behandeln Sie Fehler für nicht unterstützte Felder.

Referenzen

Auf dieser Seite