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

# OpenAI-kompatible Funktionen implementieren - Entwicklerhandbuch

> OpenAI-Clientbibliotheken mit der Infercom API nutzen. Drop-in-kompatibel — nur Basis-URL und API-Schlüssel ändern für EU-souveräne Inferenz.

Die Infercom KI-Inferenz-APIs sind für die Kompatibilität mit OpenAI-Client-Bibliotheken konzipiert, um die Einführung unserer Inferenz-Technologien zur Verbesserung Ihrer KI-Anwendungen zu vereinfachen.

## Bibliothek herunterladen

Führen Sie den folgenden Befehl aus, um die Bibliothek herunterzuladen.

```python
pip install openai
```

## Infercom APIs mit OpenAI-Client-Bibliotheken verwenden

Die Konfiguration Ihrer OpenAI-Client-Bibliotheken für die Verwendung der Infercom KI-Inferenz-APIs ist so einfach wie das Festlegen von zwei Werten: der `base_url` und Ihres `api_key`, wie unten dargestellt.

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

```python
from openai import OpenAI

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

Jetzt können Sie eine API-Anfrage an ein Modell stellen und wählen, wie Sie Ihre Ausgabe erhalten möchten.

### Beispiel ohne Streaming

Der folgende Code demonstriert die Verwendung des OpenAI Python-Clients für Vervollständigungen ohne Streaming.

```python
completion = client.chat.completions.create(
  model="Meta-Llama-3.1-8B-Instruct",
  messages = [
      {"role": "system", "content": "Beantworte die Frage in ein paar Sätzen."},
      {"role": "user", "content": "Erzähle mir eine fröhliche Geschichte"}
    ]
)

print(completion.choices[0].message)
```

### Beispiel mit Streaming

Der folgende Code demonstriert die Verwendung des OpenAI Python-Clients für Vervollständigungen mit Streaming.

```python
completion = client.chat.completions.create(
  model="Meta-Llama-3.1-8B-Instruct",
  messages = [
      {"role": "system", "content": "Beantworte die Frage in ein paar Sätzen."},
      {"role": "user", "content": "Erzähle mir eine fröhliche Geschichte"}
    ],
  stream= True
)

for chunk in completion:
  print(chunk.choices[0].delta.content)
```

<Aside type="note">
  Im Streaming-Modus gibt die API Chunks zurück, die mehrere Tokens enthalten. Bei der Berechnung von Metriken wie Tokens pro Sekunde oder Zeit pro Ausgabe-Token stellen Sie sicher, dass Sie alle Tokens in jedem Chunk berücksichtigen.
</Aside>

## Akzeptiert und ignoriert

Zwei OpenAI-Parameter werden aus Gründen der API-Kompatibilität akzeptiert und haben bei keinem Modell eine Wirkung:

- `presence_penalty`
- `frequency_penalty`

Verwenden Sie stattdessen [`repetition_penalty`](#infercom-api-funktionen-die-von-openai-clients-nicht-unterstützt-werden), um Wiederholungen zu steuern.

<Aside type="caution">
  **Entfernen Sie beide Parameter aus Ihren Anfragen oder setzen Sie sie auf `0`.** Sie haben derzeit keine Wirkung. Ein kommendes Plattform-Release gibt für jeden anderen Wert einen Fehler zurück. Anfragen ohne diese Parameter oder mit `0` sind nicht betroffen.
</Aside>

<Aside type="caution">
  `frequency_penalty` akzeptiert zudem Werte außerhalb des dokumentierten Bereichs von -2.0 bis 2.0 ohne Fehler und ignoriert auch diese. `presence_penalty` lehnt sie dagegen mit einem `400` ab.
</Aside>

## Unterstützt, aber nicht bei jedem Modell

Diese Parameter funktionieren. Welche Modelle sie anwenden, ist unterschiedlich. Prüfen Sie daher die Tabelle, bevor Sie sich auf einen verlassen.

| **Parameter** | **Wird angewendet auf** | **Ohne Wirkung auf** | **Anfrage schlägt fehl bei** |
| :------------ | :---------------------- | :------------------- | :--------------------------- |
| `n` | Jedes Modell | - | - |
| `logprobs`, `top_logprobs` | Jedes Modell außer `MiniMax-M3` | `MiniMax-M3` | - |
| `logit_bias` | `gpt-oss-120b` | `gemma-4-31B-it` | `DeepSeek-V3.1`, `DeepSeek-V3.2`, `Meta-Llama-3.3-70B-Instruct`, `MiniMax-M3` |
| `seed` | `gpt-oss-120b`, `DeepSeek-V3.1`, `DeepSeek-V3.2`, `Meta-Llama-3.3-70B-Instruct` | `gemma-4-31B-it`, `MiniMax-M3` | - |
| `repetition_penalty` | `gpt-oss-120b`, `gemma-4-31B-it` | `DeepSeek-V3.1`, `DeepSeek-V3.2`, `Meta-Llama-3.3-70B-Instruct` | `MiniMax-M3`, bei jedem Wert außer 1.0 |

Gemessen auf `/v1/chat/completions`. Eine fehlschlagende Anfrage liefert HTTP 500, außer `logit_bias` bei
`MiniMax-M3`, das HTTP 400 liefert. Die OpenAI-SDKs wiederholen einen 500 zweimal. Senden Sie diese Parameter
daher nicht an diese Modelle.

<Aside type="caution">
  Ein Parameter ohne Wirkung auf ein Modell wird dennoch akzeptiert. Nichts in der Antwort weist darauf hin, dass er verworfen wurde. Prüfen Sie ihn gegen Ihr eigenes Modell, bevor Sie sich darauf verlassen.
</Aside>

## Funktionsunterschiede

`temperature`: Die Infercom API akzeptiert Werte zwischen 0 und 2, denselben Bereich wie OpenAI. Werte über 2 werden mit einem `400` abgelehnt. Anders als OpenAI wendet die Infercom API keinen Standardwert an. Ohne `temperature` dekodieren die meisten Modelle greedy, was sich wie `temperature` 0 verhält. Setzen Sie den Parameter bei jeder Anfrage. Siehe [Wenn Sie temperature weglassen](/de/models/infercomcloud-models#wenn-sie-temperature-weglassen).

## Infercom API-Funktionen, die von OpenAI-Clients nicht unterstützt werden

Die Infercom API unterstützt zwei Parameter, die die OpenAI-Client-Bibliotheken nicht kennen:

- `top_k` - beschränkt das Sampling auf die K wahrscheinlichsten Token. Der Parameter hat keine Wirkung, solange `temperature` nicht mindestens 0.001 beträgt. Siehe [Wie top_k mit temperature zusammenwirkt](/de/models/infercomcloud-models#wie-top_k-mit-temperature-zusammenwirkt).
- `repetition_penalty` - die einzige Wiederholungskontrolle, die diese API anwendet. Der Parameter bestraft auch Token, die in Ihrem Prompt vorkommen. Ein langer System-Prompt kann daher Wörter unterdrücken, auf die der Prompt selbst angewiesen ist. Er ist kein direkter Ersatz für `frequency_penalty`, das akzeptiert und ignoriert wird. Der zulässige Bereich ist 1 bis 2. Setzen Sie zuerst ein passendes `temperature` und halten Sie `repetition_penalty` dann bei höchstens 1.2. Nur auf `/v1/chat/completions` wirksam.

Die OpenAI-SDKs lehnen unbekannte Top-Level-Argumente ab. Senden Sie beide daher über `extra_body`.

```python
response = client.chat.completions.create(
    model="gpt-oss-120b",
    messages=[{"role": "user", "content": "..."}],
    temperature=1.0,
    extra_body={"top_k": 40, "repetition_penalty": 1.05},
)
```
