HiAPI
Blog

Tutorial

So verwendest du Claude Sonnet 4.6 über die hiapi API

Sep 17, 2026
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 →

Starte mit persistenten KI-Artefakten

Hol dir deinen API-Key und rufe Bild-, Video- und Audiomodelle über eine einzige task-basierte API auf.

API-Dokumentation lesen