In this article
OpenRouter in Python: Beliebige LLMs mit einem API-Schlüssel nutzen
Bei der Entwicklung von KI-Anwendungen müssen oft mehrere API-Schlüssel verwaltet, unterschiedliche Dienstmuster erlernt und verschiedene Authentifizierungsmethoden berücksichtigt werden. Was wäre, wenn Sie mit nur einem API-Schlüssel auf Dutzende erstklassige LLMs zugreifen könnten? Genau das verspricht OpenRouter. In diesem Artikel zeige ich Ihnen, wie Sie es auf einfachste Weise in Python nutzen. In kommenden Artikeln zeigen wir außerdem, wie OpenRouter und LangChain zusammenarbeiten können und wie Sie OpenRouter mit LangChain für Tool Calling verwenden. Den Quellcode zu diesem Artikel finden Sie hier.

Was ist OpenRouter?
OpenRouter dient als einheitliches Gateway zu den führenden Sprachmodellen der Welt – sowohl zu kommerziellen Modellen als auch zu Open-Source-Modellen. Über eine einzige standardisierte API können Sie auf Modelle von OpenAI, Anthropic, Google, Meta, Mistral und weiteren Anbietern zugreifen.
Statt separate Konten bei jedem Anbieter anzulegen und mehrere SDKs zu verwalten, bietet OpenRouter eine Schnittstelle, über die Sie mit nur einer Codezeile jedes Large Language Model eines beliebigen Anbieters nutzen können. Das kann Ihren Entwicklungsworkflow erheblich vereinfachen, wenn Sie Apps mit mehreren unterschiedlichen LLMs entwickeln oder einfach verschiedene Modelle ausprobieren möchten, um herauszufinden, welches am besten zu Ihrem Anwendungsfall passt.
Warum OpenRouter nutzen?
Einige Vorteile haben wir bereits genannt: eine einzige API für den Zugriff auf Dutzende Modelle wie GPT-4, Claude, Gemini, Llama und viele weitere. Darüber hinaus bietet OpenRouter:
Routing zum besten Modell: Es gibt mehrere Möglichkeiten, Prompts je nach Inhalt an unterschiedliche Modelle weiterzuleiten. Wenn Sie beispielsweise "model" auf "openrouter/auto" setzen, entscheidet der AutoRouter, welches Modell für Ihren konkreten Prompt am besten geeignet ist.
Zuverlässigkeit und Redundanz: OpenRouter bietet Failover-Funktionen. So kann Ihre Anwendung auf andere Anbieter ausweichen, wenn einer ausfällt.
OpenAI-kompatible API: Wenn Sie bereits das OpenAI-SDK verwenden, können Sie mit minimalen Codeänderungen zu OpenRouter wechseln.
Einfache OpenRouter-Implementierung
Dies ist die einfachste Möglichkeit, OpenRouter in Python zu nutzen. Der Code in openrouter_simple.py enthält ein minimales Beispiel, mit dem Sie schnell loslegen können. Hier ist das vollständige Skript:
"""
Minimal example for using OpenRouter with the OpenAI client directly.
This is the simplest way to get started with OpenRouter.
"""
import os
import pathlib
from dotenv import load_dotenv
from openai import OpenAI
# Get the current directory and load .env file
current_dir = pathlib.Path(__file__).parent.absolute()
env_path = current_dir / '.env'
load_dotenv(dotenv_path=env_path)
# Get API key from environment
api_key = os.environ.get("OPENROUTER_API_KEY")
# Check if API key is available
if not api_key:
raise ValueError("OpenRouter API key not found. Please set OPENROUTER_API_KEY in your .env file.")
# Create a client for OpenRouter
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=api_key,
default_headers={"HTTP-Referer": "http://localhost:5000"} # Required by OpenRouter
)
# Send a message to the model
response = client.chat.completions.create(
model="openai/gpt-3.5-turbo", # You can change this to any supported model
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, who are you?"}
]
)
# Display the response
print(response.choices[0].message.content)Dieses Skript enthält alles, was Sie für den Einstieg in OpenRouter brauchen. Sie können es in vier Schritte unterteilen:
1. Umgebung einrichten
Zu Beginn lädt das Skript Ihren API-Schlüssel aus einer .env-Datei. So bleiben Ihre Zugangsdaten geschützt:
# Get the current directory and load .env file
current_dir = pathlib.Path(__file__).parent.absolute()
env_path = current_dir / '.env'
load_dotenv(dotenv_path=env_path)
# Get API key from environment
api_key = os.environ.get("OPENROUTER_API_KEY")
# Check if API key is available
if not api_key:
raise ValueError("OpenRouter API key not found. Please set OPENROUTER_API_KEY in your .env file.")Erstellen Sie eine .env-Datei mit Ihrem OpenRouter-API-Schlüssel:
OPENROUTER_API_KEY=your_openrouter_api_keyEinen API-Schlüssel erhalten Sie, indem Sie sich bei openrouter.ai registrieren.
2. OpenAI-Client konfigurieren
Der entscheidende Schritt steckt in diesen wenigen Zeilen:
# Create a client for OpenRouter
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=api_key,
default_headers={"HTTP-Referer": "http://localhost:5000"} # Required by OpenRouter
)Beachten Sie, dass wir den standardmäßigen OpenAI-Client verwenden, ihn aber stattdessen auf den API-Endpunkt von OpenRouter verweisen. Das funktioniert, weil OpenRouter vollständig mit dem API-Format von OpenAI kompatibel ist.
OpenRouter benötigt den Header HTTP-Referer, um zu erkennen, woher die Anfrage kommt. In einer Produktionsumgebung würden Sie hier die URL Ihrer Anwendung eintragen.
3. Modell auswählen und Anfrage stellen
Bei einer Anfrage geben Sie an, welches Modell verwendet werden soll:
# Send a message to the model
response = client.chat.completions.create(
model="openai/gpt-3.5-turbo", # You can change this to any supported model
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, who are you?"}
]
)Die Modellkennung folgt dem Format provider/model-name. Beispiele:
openai/gpt-4o-2024-11-20– OpenAIs GPT-4o (Omni) mit einem bestimmten Wissensstandanthropic/claude-sonnet-4– Anthropics Claude 4 Sonnetgoogle/gemini-2.5-pro-preview– Googles Gemini Pro 2.5 (Preview)meta-llama/llama-4-maverick– Metas Llama 4 17B Instruct
Manchmal ermöglicht OpenRouter Ihnen den Zugriff auf Modelle, die Ihnen sonst möglicherweise nicht zur Verfügung stehen. So konnten Sie beispielsweise früher auf Premium-Modelle wie GPT-4 32K zugreifen. Die vollständige Liste der verfügbaren Modelle finden Sie unter openrouter.ai/models.
4. Antwort verarbeiten
Zum Schluss rufen wir die Antwort ab und geben sie aus:
1# Display the response
2print(response.choices[0].message.content)Die Antwort hat dasselbe Format wie bei der OpenAI-API und lässt sich daher problemlos in vorhandenen Code integrieren.
OpenRouter-Funktionen und -Optionen
Mit dem einfachen Beispiel oben können Sie schnell loslegen. OpenRouter bietet darüber hinaus viele weitere Funktionen:
Modell-Routing steuern
OpenRouter bietet umfassende Optionen, um zu steuern, an welchen zugrunde liegenden Anbieter Ihre Anfrage weitergeleitet wird. Sie können diese Optionen im OpenRouter-JSON-Format angeben (siehe extra_body):
# Provider preference ordering
response = client.chat.completions.create(
model="meta-llama/llama-3.1-8b-instruct",
messages=[{"role": "user", "content": "Hello!"}],
extra_body={"provider": {"order": ["together", "fireworks", "perplexity"]}}
)
# Quantization preferences (only for open-source models)
response = client.chat.completions.create(
model="meta-llama/llama-3.1-8b-instruct", # Must use open-source model
messages=[{"role": "user", "content": "Hello!"}],
extra_body={"provider": {"quantizations": ["fp8"]}}
)
# Fallback control
response = client.chat.completions.create(
model="meta-llama/llama-3.1-8b-instruct",
messages=[{"role": "user", "content": "Hello!"}],
extra_body={"provider": {"allow_fallbacks": True}}
)
# Data collection control
response = client.chat.completions.create(
model="openai/gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello!"}],
extra_body={"provider": {"data_collection": "deny"}}
)In diesem Beispiel legen Sie fest, dass nur Anbieter verwendet werden, die für dieses Modell die fp8-Quantisierung unterstützen.
Antworten streamen
OpenRouter unterstützt das Streaming von Antworten – eine nützliche Funktion für Chat-Anwendungen:
stream = client.chat.completions.create(
model="anthropic/claude-3-sonnet",
messages=[
{"role": "user", "content": "Tell me about renewable energy benefits"}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Vision-Language-Modelle
OpenRouter unterstützt multimodale Modelle, die Bilder verarbeiten können:
import base64
# Method 1: Using local image files
def encode_image_to_base64(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
base64_image = encode_image_to_base64("your_image.png")
response = client.chat.completions.create(
model="openai/gpt-4o", # GPT-4o works reliably for vision
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{base64_image}"}}
]
}
]
)
# Method 2: Using image URLs
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
]
}
]
)Preise und Kostenverwaltung
OpenRouter basiert auf einem Guthabensystem. Je nach Modell wird pro Anfrage unterschiedlich viel Guthaben verbraucht. Zum Testen steht kostenloses Guthaben zur Verfügung. Für den Produktiveinsatz müssen Sie weiteres Guthaben kaufen.
Im OpenRouter-Dashboard können Sie Ihre Nutzung überwachen und Guthabenlimits für API-Schlüssel festlegen, um die Ausgaben zu kontrollieren.
Schnellstart
So verwenden Sie den Code aus diesem Artikel:
Registrieren Sie sich unter openrouter.ai für ein OpenRouter-Konto.
Erstellen Sie unter openrouter.ai/settings/keys einen API-Schlüssel.
Richten Sie eine Python-Umgebung mit den erforderlichen Paketen ein:
pip install openai python-dotenv
Erstellen Sie eine .env-Datei mit Ihrem API-Schlüssel:
OPENROUTER_API_KEY=your_openrouter_api_keyFühren Sie das Beispielskript aus:
python openrouter_simple.pyZusammenfassung
OpenRouter schließt eine Lücke im KI-Ökosystem: Als einheitlicher Marktplatz bündelt es Sprachmodelle an einem Ort. Die Stärke der hier gezeigten Implementierung liegt in ihrer Einfachheit – mit nur wenigen Codezeilen können Sie zwischen Dutzenden führenden Modellen wechseln, ohne die Struktur Ihrer Anwendung zu ändern.
Für Entwicklerinnen und Entwickler, die KI-Anwendungen erstellen, bedeutet das:
Verschiedene Modelle testen, ohne sich auf einen einzigen Anbieter festzulegen
Für jede Aufgabe das am besten geeignete Modell verwenden
Für mehr Zuverlässigkeit Ausweichlösungen implementieren
Kosten senken, indem Sie für jeden Anwendungsfall das kosteneffizienteste Modell auswählen
Das enthaltene Skript openrouter_simple.py bietet Ihnen eine solide Grundlage. Darauf aufbauend können Sie robuste Anwendungen entwickeln, die das volle Potenzial moderner Sprachmodelle nutzen – ohne mehrere APIs verwalten zu müssen.
Sichern Sie Ihre KI-Implementierungen mit Snyk
Wenn Sie Anwendungen mit OpenRouter und anderen KI-Tools entwickeln, ist Sicherheit ein entscheidender Faktor. Snyk bietet Lösungen, die speziell für das entstehende KI-Ökosystem entwickelt wurden.
Snyk AI Security Platform
Die AI-Security-Plattform von Snyk hilft, die besonderen Sicherheitsherausforderungen der KI-gestützten Entwicklung zu bewältigen. Sie unterstützt Entwicklerinnen und Entwickler dabei, sichere KI-Anwendungen zu erstellen – und dabei das hohe Tempo der KI-Entwicklung beizubehalten.
Die AI-Security-Plattform wurde entwickelt, damit Unternehmen KI-gestützte Innovationen beschleunigen, Geschäftsrisiken mindern sowie agentische und generative KI absichern können. Das ist besonders wichtig, da Studien darauf hindeuten, dass fast die Hälfte des gesamten KI-generierten Codes Sicherheitslücken enthält.
Mit der AI-Security-Plattform von Snyk können Teams in einer KI-geprägten Realität schnell entwickeln und sicher bleiben – bei geringerem menschlichem Aufwand und effizienteren Sicherheitsrichtlinien und Governance-Prozessen. Sie basiert auf den umfassenden Test-Engines von Snyk, wird von DeepCode AI unterstützt und greift auf die branchenführende Schwachstellendatenbank des Unternehmens zurück.
Snyk Secure Developer Program für Open Source
Wenn Sie an Open-Source-Projekten mit KI-Technologien wie OpenRouter arbeiten, bietet das Snyk Secure Developer Program wertvolle Ressourcen. Das Programm wurde im Februar 2025 ins Leben gerufen, um die Sicherheit im Open-Source-Ökosystem zu stärken. Als erstes Programm seiner Art unterstützt es Open-Source-Communities dabei, Sicherheitsprogramme auf Unternehmensniveau aufzubauen, mit denen sich Schwachstellen im Code schnell finden und beheben lassen.
Für qualifizierte Open-Source-Projekte umfasst das Programm:
Sicherheitstools auf Unternehmensniveau: Voller, kostenloser Zugriff auf die Premium-Sicherheitsplattform von Snyk
Expertenunterstützung: Praktische Unterstützung durch das Developer-Relations-Team von Snyk
Community-Ressourcen: Zugang zur Discord-Community von Snyk und zu Partner Connect
API-Zugriff: Integrationsmöglichkeiten zur Automatisierung von Sicherheitsprüfungen
Snyk stellt qualifizierten Open-Source-Projekten diese führenden Entwicklersicherheitstools zu 100 % kostenlos zur Verfügung. Ihr Projekt ist teilnahmeberechtigt, wenn es nicht von einem Unternehmen unterstützt wird und mindestens 10.000 GitHub-Stars hat.
Wenn Sie die Flexibilität von OpenRouter mit den Sicherheitstools von Snyk verbinden, können Sie leistungsstarke und sichere KI-Anwendungen entwickeln. Dieser Ansatz ist besonders wertvoll, da die KI-Entwicklung immer schneller voranschreitet und neue Sicherheitsherausforderungen entstehen.
Erfahren Sie mehr über diese Angebote und bewerben Sie sich für das Secure Developer Program.
Vereinbaren Sie eine Live-Demo von Snyk für Open-Source-Sicherheit
Sprechen Sie mit unseren Sicherheitsexperten und erfahren Sie, wie Snyk Ihnen hilft, Open Source sicher zu nutzen