DEV Community

Cover image for ERNIE 5.1 API Nutzung: Eine Anleitung
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

ERNIE 5.1 API Nutzung: Eine Anleitung

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.

Teste Apidog noch heute

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.

ERNIE 5.1 API Übersicht

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:

  1. Öffnen Sie cloud.baidu.com und erstellen Sie ein Baidu Intelligent Cloud-Konto oder melden Sie sich an.
  2. Öffnen Sie die Qianfan-Konsole: console.bce.baidu.com/qianfan.
  3. Gehen Sie zu API Key Management / API Key Verwaltung.
  4. Klicken Sie auf API Key erstellen.
  5. Wählen Sie den Arbeitsbereich aus.
  6. Aktivieren Sie Zugriff auf den Chat-Completions-Dienst.
  7. Kopieren Sie den Schlüssel.

Der Schlüssel sieht ungefähr so aus:

bce-v3/ALTAK-xxxx/xxxx
Enter fullscreen mode Exit fullscreen mode

Speichern Sie ihn nicht im Quellcode, sondern als Umgebungsvariable:

export QIANFAN_API_KEY="bce-v3/ALTAK-xxxx/xxxx"
Enter fullscreen mode Exit fullscreen mode

Wichtig:

  • Der neue v2-Endpunkt verwendet ein einzelnes Bearer-Token.
  • Der ältere v1 OAuth-Flow mit access_token wird 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
Enter fullscreen mode Exit fullscreen mode

Modell-ID:

ernie-5.1
Enter fullscreen mode Exit fullscreen mode

Für Early-Access-Funktionen kann außerdem verfügbar sein:

ernie-5.1-preview
Enter fullscreen mode Exit fullscreen mode

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
  }'
Enter fullscreen mode Exit fullscreen mode

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
  }
}
Enter fullscreen mode Exit fullscreen mode

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, insbesondere messages, 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
Enter fullscreen mode Exit fullscreen mode

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}")
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Das Stream-Format entspricht OpenAI:

data: {...}
data: {...}
data: [DONE]
Enter fullscreen mode Exit fullscreen mode

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"],
            },
        },
    }
]
Enter fullscreen mode Exit fullscreen mode

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})")
Enter fullscreen mode Exit fullscreen mode

Der typische Ablauf für eine Tool-Schleife:

  1. User-Nachricht an das Modell senden.
  2. Prüfen, ob tool_calls vorhanden sind.
  3. Gewünschte Funktion in Ihrem Code ausführen.
  4. Ergebnis als Nachricht mit Rolle tool anhängen.
  5. Modell erneut aufrufen.
  6. Schleife beenden, wenn finish_reason == "stop" und keine tool_calls mehr 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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

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:

  1. Öffnen Sie Apidog.
  2. Erstellen Sie ein neues Projekt, zum Beispiel LLM-Wettstreit.

Apidog Projekt erstellen

  1. Erstellen Sie eine Umgebung mit folgenden Variablen:
QIANFAN_API_KEY
DEEPSEEK_API_KEY
MOONSHOT_API_KEY
Enter fullscreen mode Exit fullscreen mode

Apidog Umgebung konfigurieren

  1. Erstellen Sie je Anbieter eine Anfrage.
  2. Verwenden Sie jeweils die passende Basis-URL.
  3. Setzen Sie die Modelle zum Beispiel auf:
ernie-5.1
deepseek-chat
kimi-k2-6
Enter fullscreen mode Exit fullscreen mode
  1. Verwenden Sie für alle drei Requests dasselbe messages-Array.
  2. Führen Sie die Requests mit der Run-Funktion parallel oder nacheinander aus.
  3. 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 usage enthält prompt_tokens, completion_tokens und total_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,
})
Enter fullscreen mode Exit fullscreen mode

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")
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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)