ERNIE 5.1 wurde am 9. Mai 2026 veröffentlicht; eine Woche später war die Qianfan API verfügbar. Wenn Sie das Modell aus eigenem Code aufrufen, Tool-Aufrufe darüber ausführen oder es mit Apidog in eine Agenten-Schleife integrieren möchten, zeigt dieser Leitfaden die notwendigen Schritte: Konto, API-Schlüssel, Request-Body, Streaming, Tool-Nutzung und Fehlerbehandlung.
Am Ende haben Sie funktionierende Beispiele für curl, Python und Node.js sowie eine Request-Struktur, die Sie in Apidog nachbauen oder importieren können.
Falls Sie die ERNIE 5.1 Startübersicht noch nicht gelesen haben, überfliegen Sie sie zuerst. Sie behandelt Benchmarks und Kompromisse im Vergleich zu DeepSeek V4 und Kimi K2.6. Dieser Beitrag konzentriert sich auf die Implementierung.
Schritt 1: Qianfan API-Schlüssel erstellen
ERNIE 5.1 wird über Baidu Intelligent Clouds Qianfan-Plattform bereitgestellt. Es gibt keine separate „ERNIE API“; alle Aufrufe laufen über Qianfan.
So richten Sie den Zugriff ein:
- Öffnen Sie cloud.baidu.com und erstellen Sie ein Baidu Intelligent Cloud-Konto oder melden Sie sich an.
- Öffnen Sie die Qianfan-Konsole: console.bce.baidu.com/qianfan.
- Gehen Sie zu API Key Management /
API Key Verwaltung. - Klicken Sie auf API Key erstellen.
- Wählen Sie den Arbeitsbereich aus.
- Aktivieren Sie Zugriff auf den Chat-Completions-Dienst.
- Kopieren Sie den Schlüssel.
Der Schlüssel sieht ungefähr so aus:
bce-v3/ALTAK-xxxx/xxxx
Speichern Sie ihn nicht im Quellcode, sondern als Umgebungsvariable:
export QIANFAN_API_KEY="bce-v3/ALTAK-xxxx/xxxx"
Wichtig:
- Der neue
v2-Endpunkt verwendet ein einzelnes Bearer-Token. - Der ältere
v1OAuth-Flow mitaccess_tokenwird eingestellt; bauen Sie keine neue Integration darauf. - ERNIE 5.1 ist ein kostenpflichtiges Modell. Laden Sie für Tests ein kleines Guthaben auf, bevor Sie die erste Anfrage senden.
Schritt 2: OpenAI-kompatiblen Endpunkt mit curl testen
Qianfan stellt einen OpenAI-kompatiblen Chat-Completions-Endpunkt bereit. Wenn Ihr Stack bereits das OpenAI-Format nutzt, müssen Sie in der Regel nur base_url und model ändern.
Basis-URL:
https://qianfan.baidubce.com/v2
Modell-ID:
ernie-5.1
Für Early-Access-Funktionen kann außerdem verfügbar sein:
ernie-5.1-preview
Minimaler Test mit curl:
curl https://qianfan.baidubce.com/v2/chat/completions \
-H "Authorization: Bearer $QIANFAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ernie-5.1",
"messages": [
{"role": "system", "content": "You are a senior API designer."},
{"role": "user", "content": "Sketch a REST schema for a GitHub-style PR review API. Be concise."}
],
"temperature": 0.3
}'
Typische Antwort im OpenAI-kompatiblen Format:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1746780000,
"model": "ernie-5.1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 42,
"completion_tokens": 318,
"total_tokens": 360
}
}
Schnelle Fehlerdiagnose:
-
401 Unauthorized: API-Schlüssel ist falsch oder abgelaufen. -
403 Forbidden: Schlüssel ist gültig, aber ERNIE 5.1 ist im Arbeitsbereich nicht aktiviert. -
400: Request-Body prüfen, insbesonderemessages, Rollen und JSON-Syntax.
Schritt 3: ERNIE 5.1 mit Python aufrufen
Da der Endpunkt OpenAI-kompatibel ist, können Sie das offizielle openai Python SDK verwenden und nur die base_url auf Qianfan setzen.
Installation:
pip install openai
Beispiel:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["QIANFAN_API_KEY"],
base_url="https://qianfan.baidubce.com/v2",
)
response = client.chat.completions.create(
model="ernie-5.1",
messages=[
{"role": "system", "content": "You explain APIs in plain English."},
{"role": "user", "content": "Why would I use server-sent events over WebSockets for a chat UI?"},
],
temperature=0.4,
)
print(response.choices[0].message.content)
print(f"\nTokens used: {response.usage.total_tokens}")
Wenn Sie bereits Wrapper um das OpenAI SDK verwenden, ist ein A/B-Test gegen ERNIE 5.1 meist nur eine Änderung an base_url und model. Dasselbe Muster funktioniert auch für die DeepSeek API und viele andere chinesische Modellanbieter.
Schritt 4: Streaming für Chat-UIs aktivieren
Für benutzerorientierte Chat-Oberflächen sollten Sie Streaming verwenden. Setzen Sie dafür stream=True und lesen Sie die Server-Sent Events schrittweise aus.
Python-Beispiel:
stream = client.chat.completions.create(
model="ernie-5.1",
messages=[
{"role": "user", "content": "Write a haiku about API versioning."}
],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
Debugging mit curl:
curl https://qianfan.baidubce.com/v2/chat/completions \
-H "Authorization: Bearer $QIANFAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ernie-5.1",
"stream": true,
"messages": [
{"role": "user", "content": "Stream a 3-sentence joke."}
]
}' \
--no-buffer
Das Stream-Format entspricht OpenAI:
data: {...}
data: {...}
data: [DONE]
Schritt 5: ERNIE 5.1 mit Tools verwenden
ERNIE 5.1 unterstützt Tool- beziehungsweise Function-Calling im OpenAI-kompatiblen Schema. Damit können Sie das Modell entscheiden lassen, wann eine externe Funktion aufgerufen werden soll.
Beispiel für eine Tool-Definition:
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name, e.g. Singapore"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
},
},
"required": ["city"],
},
},
}
]
Request mit automatischer Tool-Auswahl:
response = client.chat.completions.create(
model="ernie-5.1",
messages=[
{"role": "user", "content": "What's the weather in Tokyo right now?"}
],
tools=tools,
tool_choice="auto",
)
tool_calls = response.choices[0].message.tool_calls
if tool_calls:
call = tool_calls[0]
print(f"Model wants to call: {call.function.name}({call.function.arguments})")
Der typische Ablauf für eine Tool-Schleife:
- User-Nachricht an das Modell senden.
- Prüfen, ob
tool_callsvorhanden sind. - Gewünschte Funktion in Ihrem Code ausführen.
- Ergebnis als Nachricht mit Rolle
toolanhängen. - Modell erneut aufrufen.
- Schleife beenden, wenn
finish_reason == "stop"und keinetool_callsmehr vorhanden sind.
Beachten Sie beim Parsen der Argumente: ERNIE 5.1 kann Tool-Argumente gelegentlich als stringifiziertes JSON innerhalb eines Code-Fences zurückgeben, statt als sauberen JSON-String. Parsen Sie defensiv:
import json
import re
def parse_tool_arguments(raw: str):
try:
return json.loads(raw)
except json.JSONDecodeError:
cleaned = re.sub(r"^```
json|
```$", "", raw.strip(), flags=re.MULTILINE).strip()
return json.loads(cleaned)
Schritt 6: ERNIE 5.1 mit Node.js aufrufen
Für Node.js-Projekte mit openai v5+ setzen Sie ebenfalls nur baseURL und apiKey.
Installation:
npm install openai
Beispiel:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.QIANFAN_API_KEY,
baseURL: "https://qianfan.baidubce.com/v2",
});
const completion = await client.chat.completions.create({
model: "ernie-5.1",
messages: [
{
role: "user",
content: "Return a JSON object with 3 API design tips.",
},
],
response_format: { type: "json_object" },
});
console.log(completion.choices[0].message.content);
response_format: { type: "json_object" } funktioniert und ist zuverlässig. Strikte JSON-Schemata über json_schema werden auf Qianfan noch ausgerollt; validieren Sie die Antwort daher zusätzlich in Ihrer Anwendung.
Beispiel mit einfacher JSON-Prüfung:
const raw = completion.choices[0].message.content;
let parsed;
try {
parsed = JSON.parse(raw);
} catch (error) {
throw new Error(`Model returned invalid JSON: ${raw}`);
}
console.log(parsed);
Schritt 7: Anbieter mit Apidog testen und vergleichen
Wenn Sie ERNIE 5.1, DeepSeek V4 und Kimi K2.6 vergleichen, sollten Sie nicht nur einzelne Terminal-Kommandos ausführen. Nutzen Sie Apidog, um identische Requests, Umgebungen und API-Schlüssel reproduzierbar zu verwalten.
Praktische Einrichtung:
- Öffnen Sie Apidog.
- Erstellen Sie ein neues Projekt, zum Beispiel
LLM-Wettstreit.
- Erstellen Sie eine Umgebung mit folgenden Variablen:
QIANFAN_API_KEY
DEEPSEEK_API_KEY
MOONSHOT_API_KEY
- Erstellen Sie je Anbieter eine Anfrage.
- Verwenden Sie jeweils die passende Basis-URL.
- Setzen Sie die Modelle zum Beispiel auf:
ernie-5.1
deepseek-chat
kimi-k2-6
- Verwenden Sie für alle drei Requests dasselbe
messages-Array. - Führen Sie die Requests mit der Run-Funktion parallel oder nacheinander aus.
- Vergleichen Sie Antwortqualität, Latenz, Token-Nutzung und Fehlerverhalten.
Der kostenlose Tarif reicht für solche Tests aus. Apidog speichert den Anfrageverlauf pro Umgebung, sodass Sie denselben Test später mit einer neuen Modellversion wiederholen können.
Weitere Informationen zum Testen mehrerer Anbieter finden Sie unter Lokale LLMs als APIs testen und im GLM 5.1 API-Leitfaden.
Preise, Ratenbegrenzungen und Kontingente
Die öffentlichen Qianfan-Preise für ERNIE 5.1 waren nicht im Release-Post enthalten. Prüfen Sie deshalb die aktuelle Preisliste in der Konsole, bevor Sie interne Kostenschätzungen weitergeben.
Für die Implementierung sind diese Punkte relevant:
- Ratenbegrenzungen sind arbeitsbereichsbezogen. Neue Konten starten mit niedrigen QPS-Limits. Erhöhen Sie diese nach den ersten Tests in der Konsole.
-
Token-Nutzung steht in jeder Antwort. Das Feld
usageenthältprompt_tokens,completion_tokensundtotal_tokens. - Kostenlogging gehört in Ihre App. Protokollieren Sie Token-Nutzung pro Request; verlassen Sie sich nicht nur auf das Dashboard.
- Caching ist nicht automatisch. Qianfan bietet derzeit keine Prompt-Caching-Primitive für ERNIE 5.1 an. Lange System-Prompts werden daher bei jedem Aufruf erneut berechnet.
Beispiel für einfaches Logging:
response = client.chat.completions.create(
model="ernie-5.1",
messages=messages,
)
usage = response.usage
print({
"model": response.model,
"prompt_tokens": usage.prompt_tokens,
"completion_tokens": usage.completion_tokens,
"total_tokens": usage.total_tokens,
})
Fehlerbehandlung für Produktion
Diese Fehler treten in der Praxis am häufigsten auf:
| Status | Bedeutung | Behebung |
|---|---|---|
401 |
Bearer-Token falsch oder abgelaufen | Schlüssel in der Konsole neu generieren |
403 |
Modell im Arbeitsbereich nicht aktiviert | ERNIE 5.1 in der Konsole aktivieren |
429 |
Ratenbegrenzung erreicht | Exponentielles Backoff mit Jitter |
400 |
Ungültige Nachrichtenstruktur | Rollenreihenfolge und JSON prüfen |
500/502 |
Problem auf Qianfan-Seite | Einmal wiederholen, dann Status prüfen |
Implementieren Sie für produktive Aufrufe maximal drei Wiederholungen mit exponentiellem Backoff. Loggen Sie außerdem die request_id aus den Antwort-Headern, da der Baidu-Support diese für Debugging benötigt.
Minimaler produktionsfähiger Python-Wrapper
Dieser Wrapper deckt die wichtigsten Fälle ab: Standardaufruf, Rate-Limit-Retry und Wiederholung bei temporären Serverfehlern.
import os
import time
import random
from openai import OpenAI, RateLimitError, APIError
client = OpenAI(
api_key=os.environ["QIANFAN_API_KEY"],
base_url="https://qianfan.baidubce.com/v2",
)
def chat(messages, *, model="ernie-5.1", temperature=0.3, max_retries=3):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
)
except RateLimitError:
sleep_seconds = (2 ** attempt) + random.random()
time.sleep(sleep_seconds)
except APIError as error:
is_server_error = error.status_code and error.status_code >= 500
has_retry_left = attempt < max_retries - 1
if is_server_error and has_retry_left:
time.sleep(1 + attempt)
continue
raise
raise RuntimeError("ERNIE 5.1 retries exhausted")
Verwendung:
messages = [
{"role": "system", "content": "You are a precise API reviewer."},
{"role": "user", "content": "Review this endpoint design: GET /users/{id}/orders"},
]
response = chat(messages)
print(response.choices[0].message.content)
Für Streaming und Tool-Schleifen können Sie denselben Wrapper erweitern, sollten aber getrennte Funktionen verwenden, damit Fehlerbehandlung, Logging und Response-Typen klar bleiben.
Häufig gestellte Fragen
Ist die ERNIE 5.1 API kostenlos?
Nein. Qianfan ist ein Pay-as-you-go-Dienst. Es gibt keine dauerhafte kostenlose Stufe; neue Konten erhalten manchmal Testguthaben. Für kostenlose Experimente können Sie die ernie.baidu.com Chat-Oberfläche verwenden oder sich kostenlose LLM-Optionen ansehen.
Kann ich ERNIE 5.1 lokal ausführen?
Nein. Es gibt keine öffentlichen Gewichte. Wenn On-Premise zwingend erforderlich ist, prüfen Sie stattdessen, wie man DeepSeek V4 lokal ausführt, oder vergleichen Sie die besten lokalen LLMs im Jahr 2026.
Funktioniert das OpenAI SDK ohne Änderungen?
Ja, sofern Sie base_url beziehungsweise baseURL auf https://qianfan.baidubce.com/v2 setzen und api_key auf Ihren Qianfan-Schlüssel. Das Feld model erwartet Qianfan-Modell-IDs, nicht OpenAI-IDs. Streaming, Function Calling und response_format: json_object funktionieren. Strikte json_schema-Validierung wird noch eingeführt.
Wie geht ERNIE 5.1 mit chinesischen und englischen Prompts um?
Beide Sprachen werden unterstützt. Der Arena Search Score von 1.223 stammte aus einer gemischtsprachigen Wählerschaft. Für technische englische Aufgaben wie Code und API-Design ist das Modell konkurrenzfähig; für kreatives chinesisches Schreiben gehört es zu den stärkeren chinesischen Modellen.
Was ist die maximale Ausgabelänge?
Sie wurde nicht offiziell veröffentlicht. In der Praxis enden Single-Turn-Antworten ungefähr bei 8K Tokens, bevor das Modell abschließt. Für Langform-Generierung sollten Sie Inhalte segmentieren und mit Folgeprompts fortsetzen.
Wenn Sie einen Agenten auf ERNIE 5.1 aufbauen, können Sie Apidog herunterladen und den Qianfan-Endpunkt neben Ihren anderen Diensten testen, simulieren und dokumentieren.



Top comments (0)