Tutorial
So verwendest du Claude Sonnet 4.6 über die hiapi API
Was du bauen wirst
Ein lauffähiges Integrationsbeispiel: Aufruf von Claude Sonnet 4.6 über die OpenAI-kompatible Chat Completions API von hiapi – eine einzige Anfrage liefert eine echte Completion, und zugleich werden die produktionsreifen Muster abgedeckt (Streaming, Tool-Aufrufe, adaptives Denken), die du tatsächlich einsetzen wirst, sobald die Demo läuft.
Voraussetzungen: Ein hiapi-API-Schlüssel. Hole ihn dir aus der Konsole – er ist einfach ein sk-...-String, und derselbe Schlüssel gilt für alle in deinem Konto aktivierten Modelle, nicht nur für dieses eine.
Alles im Folgenden wurde zum Zeitpunkt der Erstellung dieses Artikels gegen die Live-API tatsächlich ausgeführt und verifiziert.
Minimales lauffähiges Beispiel
Claude Sonnet 4.6 ist ein Textmodell auf dem Standard-Chat-Completions-Endpunkt – nicht der asynchrone /v1/tasks-Ablauf, den hiapi für Bild-/Video-/Audiomodelle verwendet. Eine Anfrage, eine Antwort, kein Polling.
curl https://api.hiapi.ai/v1/chat/completions \
-H "Authorization: Bearer sk-<your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "Explain how an HTTP cache works in three short paragraphs."}
]
}'
Antwort (gekürzt):
{
"id": "msg_bdrk_011Cf8Bo25qCVFFQF5ETk8Wf",
"model": "claude-sonnet-4-6",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 13, "completion_tokens": 4, "total_tokens": 17 }
}
Derselbe Aufruf in Python, nur mit requests:
import requests
resp = requests.post(
"https://api.hiapi.ai/v1/chat/completions",
headers={"Authorization": "Bearer sk-<your-api-key>"},
json={
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "Explain how an HTTP cache works in three short paragraphs."}
],
},
timeout=60,
)
resp.raise_for_status()
data = resp.json()
print(data["choices"][0]["message"]["content"])
print(data["usage"]) # prompt_tokens / completion_tokens / total_tokens
Da die Struktur mit OpenAI kompatibel ist, funktioniert dieser Code auch ohne Änderungen mit den offiziellen openai-SDKs für Python/JS – setze einfach base_url auf https://api.hiapi.ai/v1 und übergib deinen hiapi-Schlüssel.
Produktionsreife Muster
Streaming
Setze "stream": true und lies Server-Sent Events. Jeder Datenblock trägt ein delta.content-Fragment; der Stream endet mit dem letzten Datenblock mit finish_reason: "stop", gefolgt vom Sentinel [DONE]:
curl https://api.hiapi.ai/v1/chat/completions \
-H "Authorization: Bearer sk-<your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Count 1 to 3"}],
"stream": true
}'
data: {"choices":[{"delta":{"content":"","role":"assistant"},"finish_reason":null,"index":0}]}
data: {"choices":[{"delta":{"content":"Here"},"finish_reason":null,"index":0}]}
data: {"choices":[{"delta":{"content":" you"},"finish_reason":null,"index":0}]}
data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]}
data: [DONE]
Durch Akkumulieren von choices[0].delta.content über alle Datenblöcke hinweg lässt sich der vollständige Text rekonstruieren.
Tool-Aufrufe
Deklariere Funktionen auf dieselbe Weise wie bei OpenAI und spiele dann in der nächsten Runde die tool_calls-Nachricht des Assistenten sowie eine tool-Ergebnismeldung zurück:
curl https://api.hiapi.ai/v1/chat/completions \
-H "Authorization: Bearer sk-<your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "What is the status of task demo-123?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_task_status",
"description": "Look up a task by ID.",
"parameters": {
"type": "object",
"properties": {"task_id": {"type": "string"}},
"required": ["task_id"],
"additionalProperties": false
}
}
}],
"tool_choice": "auto"
}'
Die Antwort liefert finish_reason: "tool_calls", wobei der Funktionsname und die JSON-kodierten Parameter in choices[0].message.tool_calls liegen. Führe deine Funktion lokal aus und sende das Ergebnis dann in der nächsten Anfrage als role: "tool"-Nachricht mit passender tool_call_id zurück – das Modell setzt von dort aus fort.
Adaptives Denken
Claude Sonnet 4.6 unterstützt einen auf Anfrage aktivierbaren Reasoning-Schritt. Füge "thinking": {"type": "adaptive"} hinzu und wähle über output_config.effort die Aufwandsstufe (low, medium, high oder max):
{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Compare two approaches and state the trade-offs."}],
"thinking": {"type": "adaptive"},
"output_config": {"effort": "high"}
}
Die lesbare Reasoning-Spur wird über choices[0].message.reasoning_content zurückgegeben; das Roh-Array reasoning_details enthält Signatur-Metadaten, die du unverändert erhalten musst, wenn du die Unterhaltung fortsetzen und in Tool-Aufrufe übergehen willst – parse, zeige oder erfinde sie nicht, sondern reiche sie einfach im nächsten Request unverändert durch.
Fehlerbehandlung
Authentifizierungsfehler liefern HTTP 401 mit einem hiapi_error-Fehlerumschlag:
{
"error": {
"code": "permission_denied",
"message": "This API key is invalid. Check that it is correct or use another API key and try again.",
"type": "hiapi_error"
}
}
Prüfe response.status_code, bevor du auf response.json()["choices"] zugreifst; wenn du es eskalieren musst, protokolliere error.request_id – das Support-Team kann damit den konkreten Aufruf nachverfolgen.
Idempotenz und Wiederholungen
Chat-Completions-Aufrufe sind nicht per Request-ID idempotent wie /v1/tasks-Jobs – eine wiederholte Anfrage ist eine neue Completion. Umschließe Aufrufe für Produktionsverkehr mit deiner eigenen Retry-Logik mit Backoff für 5xx/Timeouts und setze ein max_tokens-Limit, damit eine Retry-Lawine keine unbegrenzten Kosten verursacht.
Weiterführende Lektüre
- Claude Sonnet 4.6 Modellreferenz – vollständige Parametertabelle, Response-Schema und weitere Request-Beispiele direkt aus der hiapi-Dokumentation.
- Authentifizierung – wie hiapi-API-Schlüssel funktionieren und wie du sie rotierst.
- hiapi-Preise – die aktuellen Token-Tarife für Claude Sonnet 4.6 und alle anderen aktivierten Modelle.
Häufige Fragen
Ist claude-sonnet-4-6 die exakte Modell-ID, die ich senden soll?
Ja – sende den reinen String claude-sonnet-4-6 im Feld model. hiapi leitet ihn hinter der OpenAI-kompatiblen Schnittstelle an Anthropics Claude Sonnet 4.6 weiter, daher ist kein anbieterspezifisches Präfix nötig.
Nutzt das denselben /v1/tasks-Ablauf wie hiapi-Bild- und -Videomodelle?
Nein. Textmodelle wie Claude Sonnet 4.6 verwenden den synchronen POST /v1/chat/completions-Endpunkt – eine Anfrage, eine Antwort (oder einen SSE-Stream). /v1/tasks ist ausschließlich für Medienmodelle (Bild, Video, Audio) gedacht, die asynchron laufen und eine abfragbare URL oder einen Callback zurückgeben.
Kann ich das OpenAI SDK statt nativem curl/requests verwenden?
Ja. Da der Endpunkt OpenAI-kompatibel ist, setze einfach base_url des offiziellen openai-SDK auf https://api.hiapi.ai/v1 und verwende deinen hiapi-Schlüssel als api_key – für Basischat, Streaming oder Tool-Aufrufe sind keine weiteren Codeänderungen nötig.
Unterstützt Claude Sonnet 4.6 Bildeingaben?
Ja, über Inhaltsblöcke – setze content der Nachricht auf ein Array, das neben deinen Textblöcken einen Block mit type: "image_url" enthält, dessen image_url.url auf eine öffentliche Bild-URL verweist.
Was passiert, wenn ich thinking weglasse?
Laut aktueller Version ist adaptives Denken auf Anfrage aktivierbar – lass das Feld thinking weg (oder setze thinking.type auf disabled), und das Modell antwortet direkt, ohne reasoning_content in der Antwort.
Wo sehe ich die aktuellen Preise, bevor ich große Batch-Jobs starte? Die Preisseite von hiapi listet die aktuellen Token-Tarife für Claude Sonnet 4.6 – schaue dort vor der Budgetplanung nach, da sich Tarife ändern können und dieser Artikel keine möglicherweise veraltete Zahl festschreibt.
Ähnliche Artikel
Alle Artikel ansehen →-
Tutorial
So rufen Sie hailuo-2.3-fast/image-to-video über die HiAPI API auf: curl und Python in der Praxis
Die erste lauffähige Anfrage für die schnelle, kostengünstige Bild-zu-Video-Stufe – von der Modell-ID bis zum heruntergeladenen MP4
-
Tutorial
So rufen Sie hailuo-2.3/text-to-video über die HiAPI API auf: curl, Python und lauffähige Anfragebeispiele
-
Tutorial
Kandinsky 6.0 Pro Text-zu-Video auf HiAPI: curl- und Python-Tutorial
Eine anfrageorientierte praktische Demonstration: Aufbau des Aufrufs vom Prompt zum Videoclip, Absenden der Anfrage, Abfragen des Fertigstellungsstatus und Herunterladen des Ergebnisses