HiAPI
Blog

Tutorial

So verwendest du Claude Opus 4.8 über die hiapi API

Sep 21, 2026
So verwendest du Claude Opus 4.8 über die hiapi API

Was du erstellen wirst

Eine lauffähige Integration, die Claude Opus 4.8 über die OpenAI-kompatible Chat-Completions-API von hiapi aufruft – das derzeit beste Modell der Claude-4.8-Reihe von Anthropic. Eine einzige Anfrage liefert eine echte Completion samt den Produktionsmustern, die du brauchst, sobald deine Demo läuft (Streaming, Tool-Aufrufe, adaptives Denken).

Voraussetzungen: ein hiapi-API-Schlüssel. Hole ihn dir aus der Konsole – es ist ein sk-...-String, und derselbe Schlüssel funktioniert für alle Modelle, die in deinem Konto aktiviert sind, nicht nur für dieses.

Alles im Folgenden wurde zum Zeitpunkt der Erstellung tatsächlich gegen die Live-API ausgeführt.

Minimales lauffähiges Beispiel

Claude Opus 4.8 ist ein Textmodell am standardmäßigen 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-opus-4-8",
    "messages": [
      {"role": "user", "content": "Review this function for edge cases and suggest a fix."}
    ],
    "max_tokens": 1024
  }'

Antwort (gekürzt):

{
  "id": "msg_011CfFm8abLRcYtLVSky81As",
  "model": "claude-opus-4-8",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "..." },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 10, "completion_tokens": 4, "total_tokens": 14 }
}

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-opus-4-8",
        "messages": [
            {"role": "user", "content": "Review this function for edge cases and suggest a fix."}
        ],
        "max_tokens": 1024,
    },
    timeout=60,
)
resp.raise_for_status()
data = resp.json()
print(data["choices"][0]["message"]["content"])
print(data["usage"])  # prompt_tokens / completion_tokens / total_tokens

Sende die reine Modell-ID claude-opus-4-8 – kein Anbieter-Präfix, kein Routing-Suffix. hiapi listet für dieses Modell zwei Backend-Routen (default und aws) zur Redundanz, aber beide teilen dieselbe Modell-ID; du musst nicht zwischen ihnen wählen.

Da das Anfrageformat OpenAI-kompatibel ist, funktioniert dies auch unverändert mit den offiziellen openai Python/JS-SDKs – setze einfach base_url auf https://api.hiapi.ai/v1 und übergib deinen hiapi-Schlüssel.

Produktionsmuster

Streaming

Setze "stream": true und lies Server-Sent Events. Jeder Chunk enthält ein delta.content-Fragment; der Stream endet mit dem letzten Chunk, der finish_reason: "stop" trägt, gefolgt von einem [DONE]-Sentinel:

curl https://api.hiapi.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-<your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "messages": [{"role": "user", "content": "Count 1 to 3"}],
    "stream": true,
    "max_tokens": 20
  }'
data: {"choices":[{"delta":{"content":"","role":"assistant"},"finish_reason":null,"index":0}]}

data: {"choices":[{"delta":{"content":"1"},"finish_reason":null,"index":0}]}

data: {"choices":[{"delta":{"content":", 2, 3"},"finish_reason":null,"index":0}]}

data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]}

data: [DONE]

Akkumuliere choices[0].delta.content über die Chunks hinweg, um den vollständigen Text zu rekonstruieren. Das letzte Datenereignis (nach finish_reason) trägt die usage-Summen, kein Delta.

Tool-Aufrufe

Deklariere Funktionen genau wie bei OpenAI und spiele dann in der nächsten Runde die tool_calls-Nachricht des Assistenten sowie die 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-opus-4-8",
    "messages": [{"role": "user", "content": "What is the status of task demo-123?"}],
    "max_tokens": 200,
    "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 kommt mit finish_reason: "tool_calls" und enthält in choices[0].message.tool_calls den Funktionsnamen sowie JSON-kodierte Argumente. Führe deine Funktion lokal aus und sende das Ergebnis im nächsten Request als role: "tool"-Nachricht mit passender tool_call_id zurück – das Modell setzt von dort aus fort.

Adaptives Denken

Claude Opus 4.8 unterstützt optional zuschaltbare Reasoning-Runden. Füge "thinking": {"type": "adaptive"} hinzu und wähle die Aufwandsstufe über output_config.effort (low, medium oder high sind alle bestätigt verfügbar):

{
  "model": "claude-opus-4-8",
  "messages": [{"role": "user", "content": "Compare two approaches and state the trade-offs."}],
  "thinking": {"type": "adaptive"},
  "output_config": {"effort": "high"}
}

Zwei Dinge solltest du wissen, bevor du darauf aufbaust. Erstens bedeutet „adaptiv“, dass das Modell selbst entscheidet, ob ein Prompt des Denkens wert ist – bei low oder sogar medium Aufwand kann eine einfache Frage überhaupt kein reasoning_details-Feld zurückgeben, also gehe nicht davon aus, dass jede Anfrage es enthält. Zweitens gibt Opus 4.8 im Gegensatz zu einigen anderen Textmodellen auf hiapi keinen menschenlesbaren Reasoning-Verlauf zurück: reasoning.text-Einträge im reasoning_details-Array kommen leer zurück, nur signature-Einträge sind befüllt. Behandle reasoning_details als opaken Fortsetzungszustand – gib es unverändert weiter, wenn du die Sitzung in nachfolgende Tool-Aufrufe mitnimmst – und parse oder zeige es nicht dem Benutzer an.

Fehlerbehandlung

Authentifizierungsfehler liefern HTTP 401 mit einem hiapi_error-Umschlag:

{
  "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, und protokolliere error.request_id, falls du es eskalieren musst – der Support kann damit den konkreten Aufruf nachverfolgen.

Idempotenz und Wiederholungen

Chat-Completions-Aufrufe sind im Gegensatz zu /v1/tasks-Aufgaben nicht per Request-ID idempotent – eine wiederholte Anfrage ist eine neue Completion und eine neue Abrechnung. Umschließe für Produktionsverkehr in deinem Code die 5xx-/Timeout-Fälle mit einer Retry-Logik mit Backoff und begrenze max_tokens, damit ein Retry-Sturm (oder länger laufende adaptive Denkaufrufe) keine unbegrenzten Kosten verursacht.

Weiterführende Lektüre

Häufig gestellte Fragen

Ist claude-opus-4-8 die exakte Modell-ID, die ich senden sollte? Ja – sende den reinen String claude-opus-4-8 im Feld model. Kein anbieterspezifisches Präfix und kein Routing-Suffix nötig; hiapi löst ihn intern auf die richtige Backend-Route auf.

Verwendet dies denselben /v1/tasks-Ablauf wie die Bild- und Videomodelle von hiapi? Nein. Textmodelle wie Claude Opus 4.8 verwenden den synchronen Endpunkt POST /v1/chat/completions – eine Anfrage, eine Antwort (oder ein SSE-Stream). /v1/tasks gilt nur für Medienmodelle (Bild, Video, Audio), die asynchron laufen und eine URL oder einen Callback zum Polling zurückgeben.

Kann ich das OpenAI-SDK statt rohem curl/requests verwenden? Ja. Da der Endpunkt OpenAI-kompatibel ist, setze die base_url des offiziellen openai-SDKs auf https://api.hiapi.ai/v1 und verwende deinen hiapi-Schlüssel als api_key – für einfachen Chat, Streaming oder Tool-Aufrufe sind keine weiteren Codeänderungen nötig.

Sollte ich Opus 4.8 oder Sonnet 4.6 verwenden? Opus 4.8 ist die leistungsfähigere und teurere Stufe – wähle sie bei schwierigerem Reasoning, Coding oder Agentenaufgaben, wenn Genauigkeit wichtiger ist als Latenz oder Kosten pro Token. Für hohen oder latenzempfindlichen Verkehr bietet Claude Sonnet 4.6 dieselbe API-Form zu einem niedrigeren Preis.

Gibt thinking immer einen sichtbaren Reasoning-Verlauf zurück? In beiderlei Hinsicht nein: Adaptives Denken kann bei als einfach eingestuften Anfragen das Denken ganz überspringen, und wenn es tatsächlich denkt, liefern die reasoning_details von Opus 4.8 derzeit leere Textfelder – nur die Signatur ist befüllt. Baue keine UI, die einen stets vorhandenen lesbaren Verlauf annimmt.

Wo sehe ich die aktuellen Preise, bevor ich große Batches starte? Die Preisseite von hiapi listet die aktuellen Token-Tarife für Claude Opus 4.8 – schau dort nach, bevor du budgetierst, da dieser Artikel keine möglicherweise veralteten Zahlen fest einprogrammiert.

Ä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