---
title: "OpenAI SDK-Integration (Python / Node)"
description: "GPT- und Claude-Modelle von 1折AI über die offiziellen OpenAI-SDKs aufrufen: Nur base_url und api_key ändern, mit Streaming-Beispiel und Umgebungsvariablen-Schreibweise."
headingIds: {"Installation":"section-1","Aufruf":"section-2","Streaming-Ausgabe":"section-3","Umgebungsvariablen verwenden, ohne Code zu ändern":"section-4","Wann man zum Anthropic SDK wechseln sollte":"section-5","Häufige Fragen":"section-6","Responses und vollständige Programme":"section-7"}
---

<aside className="docs-publication" data-pagefind-ignore>

Dokumentation gepflegt von [1ZheAI](https://1zheai.com/en/editorial/#publisher). [Quellen und Korrekturen](https://1zheai.com/en/editorial/).

Fehler gefunden? [Support kontaktieren](mailto:support@1zheai.com) mit Seitenadresse und Beschreibung. Senden Sie keine API-Schlüssel oder Kontodaten.

</aside>
Wenn bereits Code mit dem OpenAI SDK geschrieben wurde, braucht man für 1折AI nur zwei Parameter zu ändern: `base_url` und `api_key`. Als Modellname die aktuell verfügbare GPT- oder Claude-Modell-ID eintragen.

## Installation

<CodeGroup>
```bash title="Python"
pip install openai
```
```bash title="Node.js"
npm install openai
```
</CodeGroup>

## Aufruf

<CodeGroup>
```python title="Python"
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://1zheai.com/v1",
    api_key=os.environ["ONEZHE_API_KEY"],
)

resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "用一句话解释什么是 prompt caching"}],
)
print(resp.model)
print(resp.choices[0].message.content)
print(resp.usage)
```
```javascript title="Node.js"
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://1zheai.com/v1",
  apiKey: process.env.ONEZHE_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "用一句话解释什么是 prompt caching" }],
});
console.log(resp.model);
console.log(resp.choices[0].message.content);
console.log(resp.usage);
```
</CodeGroup>

`base_url` muss `/v1` enthalten.

## Streaming-Ausgabe

<CodeGroup>
```python title="Python"
stream = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "写一首四行的诗"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
```
```javascript title="Node.js"
const stream = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "写一首四行的诗" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
```
</CodeGroup>

## Umgebungsvariablen verwenden, ohne Code zu ändern

Die offiziellen OpenAI-SDKs (Python und Node) lesen `OPENAI_BASE_URL` und `OPENAI_API_KEY`. Wenn im Code keine Parameter übergeben werden, reicht es, diese beiden Variablen zu setzen, um umzuschalten:

```bash
export OPENAI_BASE_URL="https://1zheai.com/v1"
export OPENAI_API_KEY="sk-你的Key"
```

Beachten: Dies betrifft alle Programme in derselben Umgebung, die das OpenAI SDK verwenden.

## Wann man zum Anthropic SDK wechseln sollte

Die OpenAI-kompatible Schnittstelle eignet sich für "bereits vorhandenen Code, nur das Modell wechseln". Wenn `cache_control` für Prompt Caching, extended thinking oder das Tool-Call-Format von Claude benötigt werden, ist der Weg über das [Anthropic SDK](/de/docs/quickstart-anthropic-sdk/) zur nativen Schnittstelle besser geeignet.

## Häufige Fragen

<AccordionGroup>
<Accordion title="404？">

`base_url` fehlt `/v1`. Das OpenAI SDK hängt nur `/chat/completions` hinten an.

</Accordion>
<Accordion title="Kann ich GPT-Modelle aufrufen?">

Ja. Die OpenAI-/GPT-Modelle sind online; bitte die Modell-ID verwenden, die in [unterstützten Modellen](/de/docs/models/) mit deinem Schlüssel aufrufbar ist.

</Accordion>
</AccordionGroup>

## Responses und vollständige Programme

Für das Responses-Protokoll die [Responses-Schnittstelle](/de/docs/api-responses/) ansehen. Beim ersten Einsatz mit Python oder Node.js kann das [vollständige Beispiel](/de/docs/code-examples/) direkt ausgeführt werden; vor dem Produktivbetrieb [Timeouts und begrenzte Wiederholungen](/de/docs/retries/) konfigurieren.
