Funktionen
Anthropic-kompatible Funktionen implementieren - Entwicklerhandbuch
Verwenden Sie das Anthropic SDK und die Messages API mit der Infercom API. Drop-in-kompatibel - ändern Sie nur die Base-URL und den API-Schlüssel für EU-souveräne Inferenz.
Die Infercom API unterstützt das Anthropic Messages API-Format (/v1/messages), sodass Sie das Anthropic Python SDK und kompatible Tools mit Infercom-Modellen verwenden können. Dies ist nützlich für Anwendungen und Frameworks, die auf der Anthropic API aufbauen, wie Claude Code, LangChains Anthropic-Provider oder eigene agentenbasierte Workflows.
Anthropic SDK installieren
Abschnitt betitelt „Anthropic SDK installieren“pip install anthropicClient konfigurieren
Abschnitt betitelt „Client konfigurieren“Setzen Sie die base_url auf die Infercom API und geben Sie Ihren Infercom API-Schlüssel an.
import anthropic
client = anthropic.Anthropic( base_url="https://api.infercom.ai", api_key="ihr-infercom-api-schluessel")Grundlegende Verwendung
Abschnitt betitelt „Grundlegende Verwendung“Nicht-Streaming-Beispiel
Abschnitt betitelt „Nicht-Streaming-Beispiel“import anthropic
client = anthropic.Anthropic( base_url="https://api.infercom.ai", api_key="ihr-infercom-api-schluessel")
message = client.messages.create( model="gpt-oss-120b", max_tokens=1024, messages=[ {"role": "user", "content": "Was ist die Hauptstadt von Deutschland?"} ])
print(message.content[0].text)Streaming-Beispiel
Abschnitt betitelt „Streaming-Beispiel“import anthropic
client = anthropic.Anthropic( base_url="https://api.infercom.ai", api_key="ihr-infercom-api-schluessel")
with client.messages.stream( model="gpt-oss-120b", max_tokens=1024, messages=[ {"role": "user", "content": "Schreibe ein Haiku über KI."} ]) as stream: for text in stream.text_stream: print(text, end="", flush=True)System-Prompts
Abschnitt betitelt „System-Prompts“Verwenden Sie den system-Parameter, um dem Modell Anweisungen zu geben.
message = client.messages.create( model="gpt-oss-120b", max_tokens=1024, system="Du bist ein hilfreicher Assistent, der wie ein Pirat spricht.", messages=[ {"role": "user", "content": "Hallo!"} ])Mehrteilige Konversationen
Abschnitt betitelt „Mehrteilige Konversationen“message = client.messages.create( model="gpt-oss-120b", max_tokens=1024, messages=[ {"role": "user", "content": "Mein Name ist Thomas."}, {"role": "assistant", "content": "Freut mich, Thomas!"}, {"role": "user", "content": "Wie ist mein Name?"} ])Tool-Verwendung (Funktionsaufrufe)
Abschnitt betitelt „Tool-Verwendung (Funktionsaufrufe)“Die Anthropic Messages API unterstützt Tool-Verwendung für Modelle mit Funktionsaufruf-Fähigkeiten.
Tools definieren
Abschnitt betitelt „Tools definieren“import anthropic
client = anthropic.Anthropic( base_url="https://api.infercom.ai", api_key="ihr-infercom-api-schluessel")
message = client.messages.create( model="gpt-oss-120b", max_tokens=200, tools=[ { "name": "get_weather", "description": "Holt das aktuelle Wetter für einen bestimmten Ort", "input_schema": { "type": "object", "properties": { "location": { "type": "string", "description": "Die Stadt und das Land, z.B. München, Deutschland" } }, "required": ["location"] } } ], messages=[ {"role": "user", "content": "Wie ist das Wetter in München?"} ])
print(message.content)Wenn das Modell sich entscheidet, das Tool zu verwenden, enthält die Antwort einen tool_use-Inhaltsblock:
[ { "type": "tool_use", "id": "call_abc123", "name": "get_weather", "input": {"location": "München, Deutschland"} }]Tool-Ergebnisse bereitstellen
Abschnitt betitelt „Tool-Ergebnisse bereitstellen“Nach der Ausführung des Tools senden Sie das Ergebnis zurück, um die Konversation fortzusetzen:
message = client.messages.create( model="gpt-oss-120b", max_tokens=200, tools=[ { "name": "get_weather", "description": "Holt das aktuelle Wetter für einen bestimmten Ort", "input_schema": { "type": "object", "properties": { "location": {"type": "string"} }, "required": ["location"] } } ], messages=[ {"role": "user", "content": "Wie ist das Wetter in München?"}, { "role": "assistant", "content": [ { "type": "tool_use", "id": "call_abc123", "name": "get_weather", "input": {"location": "München, Deutschland"} } ] }, { "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "call_abc123", "content": "Sonnig, 22°C" } ] } ])
print(message.content[0].text)Asynchrone Verwendung
Abschnitt betitelt „Asynchrone Verwendung“import anthropicimport asyncio
async def main(): client = anthropic.AsyncAnthropic( base_url="https://api.infercom.ai", api_key="ihr-infercom-api-schluessel" )
message = await client.messages.create( model="gpt-oss-120b", max_tokens=1024, messages=[ {"role": "user", "content": "Hallo!"} ] ) print(message.content[0].text)
asyncio.run(main())Verwendung mit curl
Abschnitt betitelt „Verwendung mit curl“Sie können die Messages API auch direkt mit curl aufrufen:
curl https://api.infercom.ai/v1/messages \ -H "Content-Type: application/json" \ -H "x-api-key: ihr-infercom-api-schluessel" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "gpt-oss-120b", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Hallo!"} ] }'Unterstützte Parameter
Abschnitt betitelt „Unterstützte Parameter“| Parameter | Typ | Beschreibung |
|---|---|---|
model |
string | Erforderlich. Das zu verwendende Modell (z.B. gpt-oss-120b) |
messages |
array | Erforderlich. Array von Nachrichtenobjekten mit role und content |
max_tokens |
integer | Erforderlich. Maximale Anzahl zu generierender Tokens |
system |
string | System-Prompt für das Modell |
temperature |
number | Sampling-Temperatur (0.0-2.0). Kein Standardwert, anders als bei der Anthropic API, die 1.0 verwendet. |
top_p |
number | Nucleus-Sampling-Parameter |
top_k |
integer | Top-k-Sampling-Parameter |
stop_sequences |
array | Benutzerdefinierte Stoppsequenzen |
stream |
boolean | Streaming-Antworten aktivieren |
tools |
array | Tool-Definitionen für Funktionsaufrufe |
tool_choice |
object | Tool-Verwendung steuern (auto, any oder spezifisches Tool) |
Nicht unterstützte Funktionen
Abschnitt betitelt „Nicht unterstützte Funktionen“Die folgenden Anthropic-spezifischen Funktionen werden nicht unterstützt:
- Extended Thinking (
thinking-Parameter) - Prompt-Caching (
cache_control) - Vision/Bildeingaben
- PDF-Dateieingaben
- Zitate
- Serverseitige Tools (Websuche, Code-Ausführung)
- Batch-API
repetition_penalty(gibt auf diesem Endpunkt HTTP 400 zurück; verwenden Sie/v1/chat/completions)
Unterschiede zur Anthropic API
Abschnitt betitelt „Unterschiede zur Anthropic API“| Aspekt | Anthropic | Infercom |
|---|---|---|
| Modelle | Claude (Opus, Sonnet, Haiku) | Open-Source-Modelle (gpt-oss, Gemma, DeepSeek, Llama) |
| Base-URL | https://api.anthropic.com |
https://api.infercom.ai |
| API-Schlüssel-Header | x-api-key |
x-api-key (identisch) |
| Versions-Header | Erforderlich: anthropic-version |
Unterstützt, aber optional |
| Fehlerstruktur | Anthropic-Fehlerformat | Anthropic-Fehlerformat (siehe unten) |
Fehlerantworten
Abschnitt betitelt „Fehlerantworten“/v1/messages gibt Fehler in der Anthropic-Struktur zurück, nicht in der OpenAI-Hülle der übrigen Infercom-Endpunkte. Der Body trägt ein "type": "error" auf oberster Ebene, und das error-Objekt enthält nur message und type:
{ "type": "error", "error": { "type": "not_found_error", "message": "The model `nonexistent-model` does not exist or you do not have access to it." }, "request_id": "req_6313f64378ad4a89b6005ab233a3f2a9"}| Feld | Hinweise |
|---|---|
type (oberste Ebene) |
Immer error |
error.type |
authentication_error, invalid_request_error oder not_found_error |
error.message |
Für Menschen lesbare Erklärung |
error.param / error.code |
Werden nicht zurückgegeben. Die OpenAI-kompatiblen Endpunkte liefern diese Felder, /v1/messages nicht |
request_id |
Bei jedem Status vorhanden. Die meisten tragen das Präfix req_, bei der 401 fehlt es |
Diese Struktur wird bei jedem Fehlerstatus zurückgegeben, darunter 400, 401, 404, 410 und 422. Die Strukturen der übrigen Endpunkte finden Sie unter API-Fehlercodes.
Wann Anthropic- vs. OpenAI-Kompatibilität verwenden
Abschnitt betitelt „Wann Anthropic- vs. OpenAI-Kompatibilität verwenden“| Anwendungsfall | Empfohlene API |
|---|---|
| Bestehender Anthropic SDK-Code | Anthropic Messages API (/v1/messages) |
| Claude Code, LangChain Anthropic | Anthropic Messages API (/v1/messages) |
| OpenAI SDK-Code | OpenAI Chat Completions API (/v1/chat/completions) |
| Agentenbasierte Workflows, Coding-Tools | Responses API (/v1/responses) |
| Neue Projekte | Beliebig - alle drei APIs funktionieren mit denselben Modellen |
Verwandte Dokumentation
Abschnitt betitelt „Verwandte Dokumentation“- OpenAI-Kompatibilität - Verwendung des OpenAI SDK
- Funktionsaufrufe - Detaillierte Anleitung zur Tool-Verwendung
- Responses API - Agentenbasierte Workflows mit strukturierten Ausgaben
- Unterstützte Modelle - Verfügbare Modelle und Fähigkeiten