Tutorial
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
- Claude Opus 4.8 auf hiapi – aktuelle Preise und Modellkarte.
- Authentifizierung – wie hiapi-API-Schlüssel funktionieren und wie du sie rotierst.
- So verwendest du Claude Sonnet 4.6 über die hiapi API – dasselbe Integrationsmuster für die kostengünstigere Claude-Stufe auf hiapi, falls deine Workloads kein so starkes Modell wie Opus 4.8 benötigen.
- hiapi-Preise – aktuelle Token-Tarife für Claude Opus 4.8 und alle anderen aktivierten Modelle.
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 →-
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