OpenAI API Python Tutorial 2026 | APIMaster.ai
Vollständiges OpenAI API Python-Tutorial – SDK installieren, Chat-Antworten erstellen, Antworten streamen, Funktionsaufrufe nutzen und asynchrone Apps erstellen. Funktioniert mit APIMaster.ai für vergünstigten Zugang.
OpenAI API Python Tutorial
Dieses Tutorial behandelt die Nutzung der OpenAI API mit Python – von der Installation bis zu fortgeschrittenen Anwendungsfällen. Alle Beispiele funktionieren mit APIMaster.ai – ändern Sie einfach den api_key und die base_url.
Installation
pip install openai
Erfordert Python 3.8+. Das Paket openai ist das offizielle Python SDK von OpenAI (Version 1.x).
Ersteinrichtung
from openai import OpenAI
client = OpenAI(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai/v1",
)
Oder verwenden Sie Umgebungsvariablen (empfohlen):
export OPENAI_API_KEY="YOUR_APIMASTER_KEY"
export OPENAI_BASE_URL="https://apimaster.ai/v1"
from openai import OpenAI
client = OpenAI() # liest Umgebungsvariablen automatisch
Grundlegende Chat-Antworten
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{"role": "system", "content": "You are a Python expert."},
{"role": "user", "content": "What is a generator in Python?"},
],
)
print(response.choices[0].message.content)
print(f"Tokens used: {response.usage.total_tokens}")
Streaming-Antworten
stream = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Write a binary search in Python."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
print()
Mehrfachgespräche
messages = [
{"role": "system", "content": "You are a helpful coding assistant."}
]
def send(user_text):
messages.append({"role": "user", "content": user_text})
resp = client.chat.completions.create(model="gpt-5.4", messages=messages)
reply = resp.choices[0].message.content
messages.append({"role": "assistant", "content": reply})
return reply
print(send("Explain list comprehensions."))
print(send("Give me a harder example."))
Strukturierte Ausgabe (JSON-Modus)
Erzwingen Sie, dass das Modell gültiges JSON zurückgibt:
import json
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{
"role": "user",
"content": "Extract the name, email, and company from: 'Contact Jane Smith (jane@acme.com) at Acme Corp.'",
}
],
response_format={"type": "json_object"},
)
data = json.loads(response.choices[0].message.content)
print(data) # {"name": "Jane Smith", "email": "jane@acme.com", "company": "Acme Corp"}
Funktionsaufruf (Tool-Nutzung)
import json
tools = [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Get the current stock price for a ticker symbol",
"parameters": {
"type": "object",
"properties": {
"ticker": {"type": "string", "description": "Stock ticker, e.g. AAPL"},
},
"required": ["ticker"],
},
},
}
]
messages = [{"role": "user", "content": "What's the current price of Apple stock?"}]
response = client.chat.completions.create(
model="gpt-5.4",
messages=messages,
tools=tools,
tool_choice="auto",
)
# Process tool call
if response.choices[0].finish_reason == "tool_calls":
tool_call = response.choices[0].message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
print(f"Calling {tool_call.function.name} with {args}")
# Simulate function result
result = {"ticker": args["ticker"], "price": 189.50}
# Send result back
messages.append(response.choices[0].message)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": json.dumps(result),
})
final = client.chat.completions.create(model="gpt-5.4", messages=messages)
print(final.choices[0].message.content)
Einbettungen
response = client.embeddings.create(
model="text-embedding-3-small",
input=["OpenAI API Python tutorial", "Machine learning basics"],
)
embeddings = [item.embedding for item in response.data]
print(f"Embedding dimensions: {len(embeddings[0])}")
Asynchrone Nutzung
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai/v1",
)
async def generate(prompt: str) -> str:
resp = await client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": prompt}],
)
return resp.choices[0].message.content
async def main():
# Run 5 requests concurrently
prompts = [f"Explain concept #{i}" for i in range(5)]
results = await asyncio.gather(*[generate(p) for p in prompts])
for r in results:
print(r[:100])
asyncio.run(main())
Fehlerbehandlung
from openai import OpenAI, AuthenticationError, RateLimitError, APIError
import time
def safe_call(client, **kwargs):
for attempt in range(3):
try:
return client.chat.completions.create(**kwargs)
except AuthenticationError:
raise # Don't retry auth errors
except RateLimitError:
time.sleep(2 ** attempt)
except APIError as e:
if e.status_code >= 500:
time.sleep(1)
else:
raise
raise RuntimeError("Max retries exceeded")
Modellauswahl-Leitfaden
| Aufgabe | Modell | Grund |
|---|---|---|
| Zusammenfassung, Klassifikation | gpt-4o-mini | Niedrige Kosten |
| Allgemeines Programmieren, Schreiben | gpt-5.4 | Beste Balance |
| Komplexes Denken | gpt-5.5 oder o3 | Hohe Fähigkeit |
| Stapelverarbeitung | gpt-4o-mini oder gpt-5.4 | Wählen Sie nach Qualität und Budget |
Häufig gestellte Fragen
Wie installiere ich die OpenAI Python-Bibliothek?
Führen Sie pip install openai aus. Für den APIMaster-Zugang ist kein zusätzliches Paket erforderlich – setzen Sie einfach base_url und api_key beim Initialisieren des Clients.
Welche Python-Version wird für die OpenAI-Bibliothek benötigt? Python 3.8 oder höher. Der asynchrone Client erfordert Python 3.10+ für beste Kompatibilität.
Wie gehe ich mit OpenAI API-Ratenbegrenzungen in Python um?
Verwenden Sie exponentielles Backoff – fangen Sie RateLimitError ab und wiederholen Sie den Vorgang mit zunehmenden Verzögerungen. Die Bibliothek tenacity vereinfacht dies. Das Routing von APIMaster bietet zusätzliche Stabilität.
Kann ich die OpenAI Python-Bibliothek mit Claude-Modellen verwenden?
Ja – über APIMaster. Setzen Sie base_url="https://apimaster.ai/v1" und verwenden Sie Modell-IDs wie claude-sonnet-4-6. Das Antwortformat ist identisch mit GPT-Antworten.
Wie verwende ich asynchrone OpenAI-Aufrufe in Python?
Verwenden Sie AsyncOpenAI anstelle von OpenAI und await Sie die API-Aufrufe. Siehe das asynchrone Beispiel in der Anleitung oben.