> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infercom.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 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.

<Note>
  Das Anthropic SDK wurde für Claude-Modelle entwickelt. Bei der Verwendung mit Infercom greifen Sie über eine Anthropic-kompatible Schnittstelle auf Open-Source-Modelle (wie MiniMax, DeepSeek, Llama) zu - nicht auf Claude selbst.
</Note>

## Anthropic SDK installieren

```bash theme={null}
pip install anthropic
```

## Client konfigurieren

Setzen Sie die `base_url` auf die Infercom API und geben Sie Ihren Infercom API-Schlüssel an.

<Note>
  Sie haben noch keinen Infercom API-Schlüssel? Holen Sie sich Ihren auf der Seite [API-Schlüssel und URLs](/de/get-started/api-keys-urls).
</Note>

```python theme={null}
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.infercom.ai",
    api_key="ihr-infercom-api-schluessel"
)
```

## Grundlegende Verwendung

### Nicht-Streaming-Beispiel

```python theme={null}
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.infercom.ai",
    api_key="ihr-infercom-api-schluessel"
)

message = client.messages.create(
    model="MiniMax-M2.7",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Was ist die Hauptstadt von Deutschland?"}
    ]
)

print(message.content[0].text)
```

### Streaming-Beispiel

```python theme={null}
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.infercom.ai",
    api_key="ihr-infercom-api-schluessel"
)

with client.messages.stream(
    model="MiniMax-M2.7",
    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

Verwenden Sie den `system`-Parameter, um dem Modell Anweisungen zu geben.

```python theme={null}
message = client.messages.create(
    model="MiniMax-M2.7",
    max_tokens=1024,
    system="Du bist ein hilfreicher Assistent, der wie ein Pirat spricht.",
    messages=[
        {"role": "user", "content": "Hallo!"}
    ]
)
```

### Mehrteilige Konversationen

```python theme={null}
message = client.messages.create(
    model="MiniMax-M2.7",
    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)

Die Anthropic Messages API unterstützt Tool-Verwendung für Modelle mit Funktionsaufruf-Fähigkeiten.

<Note>
  Tool-Verwendung funktioniert mit `MiniMax-M2.7`, `MiniMax-M2.5` und `gpt-oss-120b`. Andere Modelle rufen möglicherweise nicht zuverlässig Tools auf. Siehe [Funktionsaufrufe](/de/features/function-calling) für modellspezifische Hinweise.
</Note>

### Tools definieren

```python theme={null}
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.infercom.ai",
    api_key="ihr-infercom-api-schluessel"
)

message = client.messages.create(
    model="MiniMax-M2.7",
    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:

```json theme={null}
[
  {
    "type": "tool_use",
    "id": "call_abc123",
    "name": "get_weather",
    "input": {"location": "München, Deutschland"}
  }
]
```

### Tool-Ergebnisse bereitstellen

Nach der Ausführung des Tools senden Sie das Ergebnis zurück, um die Konversation fortzusetzen:

```python theme={null}
message = client.messages.create(
    model="MiniMax-M2.7",
    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

```python theme={null}
import anthropic
import 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="MiniMax-M2.7",
        max_tokens=1024,
        messages=[
            {"role": "user", "content": "Hallo!"}
        ]
    )
    print(message.content[0].text)

asyncio.run(main())
```

## Verwendung mit curl

Sie können die Messages API auch direkt mit curl aufrufen:

```bash theme={null}
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": "MiniMax-M2.7",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hallo!"}
    ]
  }'
```

## Unterstützte Parameter

| Parameter        | Typ     | Beschreibung                                                         |
| ---------------- | ------- | -------------------------------------------------------------------- |
| `model`          | string  | Erforderlich. Das zu verwendende Modell (z.B. `MiniMax-M2.7`)        |
| `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-1.0)                                        |
| `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

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

## Unterschiede zur Anthropic API

| Aspekt               | Anthropic                         | Infercom                                              |
| -------------------- | --------------------------------- | ----------------------------------------------------- |
| Modelle              | Claude (Opus, Sonnet, Haiku)      | Open-Source-Modelle (MiniMax, DeepSeek, Llama, Gemma) |
| 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                            |

## 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](/de/features/responses-api) (`/v1/responses`)  |
| Neue Projekte                           | Beliebig - alle drei APIs funktionieren mit denselben Modellen |

## Verwandte Dokumentation

* [OpenAI-Kompatibilität](/de/features/openai-compatibility) - Verwendung des OpenAI SDK
* [Funktionsaufrufe](/de/features/function-calling) - Detaillierte Anleitung zur Tool-Verwendung
* [Responses API](/de/features/responses-api) - Agentenbasierte Workflows mit strukturierten Ausgaben
* [Unterstützte Modelle](/de/models/infercomcloud-models) - Verfügbare Modelle und Fähigkeiten
