ERNIE 5.1 dirilis pada 9 Mei 2026, dan API Qianfan tersedia untuk model ini dalam seminggu. Jika Anda ingin memanggil ERNIE 5.1 dari aplikasi sendiri, menghubungkannya ke tool-calling, atau mengujinya dalam loop agen dengan Apidog, panduan ini berisi alur implementasi lengkap: akun, API key, request body, streaming, penggunaan alat, dan penanganan error.
Di akhir artikel, Anda akan memiliki contoh curl, Python, dan Node.js yang bisa langsung dijalankan, plus struktur request yang bisa dimasukkan ke Apidog untuk pengujian berulang.
Jika Anda belum membaca rincian peluncuran ERNIE 5.1, baca sekilas terlebih dahulu. Artikel tersebut membahas benchmark dan kompromi dibandingkan DeepSeek V4 dan Kimi K2.6. Artikel ini fokus pada implementasi API.
Langkah 1: Dapatkan API key Qianfan
ERNIE 5.1 disajikan melalui platform Qianfan dari Baidu Intelligent Cloud. Tidak ada “API ERNIE” terpisah; akses model dilakukan melalui Qianfan.
Langkah setup:
- Buka cloud.baidu.com, lalu buat akun atau masuk ke Baidu Intelligent Cloud.
- Pengembang internasional dapat menggunakan pendaftaran email.
- Beberapa fitur enterprise masih dapat memerlukan nomor telepon daratan Tiongkok.
- Buka konsol Qianfan: console.bce.baidu.com/qianfan.
- Masuk ke Manajemen Kunci API (
API Key 管理). - Klik Buat Kunci API.
- Pilih workspace dan aktifkan akses ke layanan chat-completions.
- Salin API key. Formatnya mirip:
bce-v3/ALTAK-xxxx/xxxx
Simpan key sebagai environment variable, bukan di source code:
export QIANFAN_API_KEY="bce-v3/ALTAK-xxxx/xxxx"
Catatan penting sebelum request pertama:
- Endpoint v2 menggunakan satu Bearer token. Alur OAuth
access_tokenv1 yang lebih lama sedang dihentikan, jadi jangan membangun integrasi baru di atasnya. - ERNIE 5.1 adalah model berbayar sejak awal. Isi saldo kecil terlebih dahulu, misalnya ¥10 untuk pengujian awal.
Langkah 2: Panggil endpoint OpenAI-compatible dengan curl
Qianfan menyediakan endpoint chat-completions yang kompatibel dengan format OpenAI. Jika stack Anda sudah memakai format OpenAI, biasanya cukup ganti base_url, API key, dan ID model.
Konfigurasi dasar:
Base URL: https://qianfan.baidubce.com/v2
Model ID: ernie-5.1
Preview model: ernie-5.1-preview
Request minimal:
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
}'
Responsnya mengikuti bentuk OpenAI:
{
"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
}
}
Troubleshooting cepat:
-
401 Unauthorized: API key salah atau kedaluwarsa. -
403 Forbidden: API key valid, tetapi model belum diaktifkan di workspace. Aktifkan ERNIE 5.1 dari konsol Qianfan.
Langkah 3: Panggil ERNIE 5.1 dari Python
Karena endpoint Qianfan kompatibel dengan OpenAI, SDK resmi openai untuk Python dapat digunakan langsung dengan mengganti base_url.
Install dependency jika belum ada:
pip install openai
Contoh implementasi:
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}")
Jika aplikasi Anda sudah memiliki wrapper untuk SDK OpenAI, pengujian A/B dengan ERNIE 5.1 biasanya hanya membutuhkan perubahan base_url dan model.
Pola yang sama juga berlaku untuk API DeepSeek dan banyak penyedia model Tiongkok lain yang menyediakan endpoint OpenAI-compatible.
Langkah 4: Streaming token untuk UI chat
Untuk UI chat, gunakan streaming agar user melihat output token demi token. Set stream=True, lalu iterasi chunk dari server-sent events.
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)
Versi curl untuk debugging:
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
Format stream mengikuti OpenAI:
data: {...}
data: {...}
data: [DONE]
Gunakan --no-buffer saat debugging dengan curl agar output tidak tertahan di buffer terminal.
Langkah 5: Gunakan ERNIE 5.1 dengan tool-calling
ERNIE 5.1 mendapatkan perhatian pada aspek agentic. Model ini mencetak skor di atas DeepSeek-V4-Pro pada τ³-bench dan SpreadsheetBench-Verified, yang menunjukkan tool-calling dapat dipakai untuk skenario produksi, bukan hanya demo.
Skema tool-calling mengikuti format function calling OpenAI:
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"],
},
},
}
]
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})")
Alur produksi untuk tool loop:
- Kirim pesan user dan daftar
tools. - Jika model mengembalikan
tool_calls, jalankan fungsi yang diminta di kode Anda. - Tambahkan hasil fungsi sebagai pesan dengan role
tool. - Panggil model lagi dengan riwayat pesan yang sudah diperbarui.
- Berhenti ketika
finish_reason == "stop"dantool_callskosong.
Contoh parsing argumen tool secara defensif:
import json
import re
def parse_tool_arguments(raw_args: str):
try:
return json.loads(raw_args)
except json.JSONDecodeError:
cleaned = re.sub(r"^```
json|
```$", "", raw_args.strip(), flags=re.MULTILINE).strip()
return json.loads(cleaned)
Alasannya: ERNIE 5.1 kadang mengembalikan argumen tool sebagai JSON yang dibungkus blok kode, bukan string JSON bersih. Jangan langsung percaya formatnya; validasi dan parse secara defensif.
Langkah 6: Panggil ERNIE 5.1 dari Node.js
Untuk proyek Node.js yang menggunakan openai v5+, cukup arahkan client ke Qianfan.
Install dependency:
npm install openai
Contoh request:
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" } berfungsi dan dapat diandalkan. Namun, skema JSON ketat (json_schema) masih diluncurkan di Qianfan. Untuk produksi, tetap validasi bentuk respons di kode Anda.
Contoh validasi sederhana:
const content = completion.choices[0].message.content;
const data = JSON.parse(content);
if (!Array.isArray(data.tips)) {
throw new Error("Invalid response shape: expected tips array");
}
Langkah 7: Uji dan bandingkan model dengan Apidog
Jika Anda membandingkan ERNIE 5.1, DeepSeek V4, dan Kimi K2.6, jangan hanya menjalankan curl manual. Gunakan Apidog untuk membuat satu workspace pengujian dengan request yang konsisten.
Setup 60 detik:
- Buka Apidog.
- Buat proyek baru bernama
LLM bake-off.
- Tambahkan environment variable berikut:
QIANFAN_API_KEY
DEEPSEEK_API_KEY
MOONSHOT_API_KEY
- Buat tiga request, satu untuk setiap provider.
- Gunakan base URL masing-masing provider.
- Atur
modelsecara berurutan:ernie-5.1deepseek-chatkimi-k2-6
- Pakai array
messagesyang sama pada semua request. - Jalankan request secara paralel dan bandingkan outputnya.
Contoh body yang bisa dipakai sebagai baseline:
{
"model": "ernie-5.1",
"messages": [
{
"role": "system",
"content": "You are a concise API design reviewer."
},
{
"role": "user",
"content": "Review this endpoint design: POST /users/{id}/activate. Return risks and improvements."
}
],
"temperature": 0.3
}
Tier gratis Apidog cukup untuk workflow ini. Apidog menyimpan riwayat request per environment, sehingga Anda dapat menjalankan ulang evaluasi yang sama minggu depan terhadap versi model baru.
Untuk pengujian multi-provider lebih lanjut, lihat Uji LLM lokal sebagai API dan panduan API GLM 5.1.
Harga, rate limit, dan kuota
Harga publik Qianfan untuk ERNIE 5.1 tidak tercantum dalam postingan rilis. Periksa kartu tarif di konsol Qianfan sebelum mengutip angka secara internal.
Hal yang perlu diimplementasikan sejak awal:
- Rate limit default dibatasi per workspace. Akun baru biasanya memiliki batas QPS rendah. Naikkan batas dari konsol setelah pengujian awal selesai.
-
Usage token tersedia di respons. Field
usageberisiprompt_tokens,completion_tokens, dantotal_tokens. Log field ini per request untuk akuntansi biaya. - Caching tidak otomatis. Qianfan saat ini tidak menyediakan primitive prompt-caching untuk ERNIE 5.1. Jika system prompt Anda 2.000 token, token tersebut dihitung di setiap panggilan.
Contoh logging usage:
response = client.chat.completions.create(
model="ernie-5.1",
messages=messages,
)
usage = response.usage
print({
"prompt_tokens": usage.prompt_tokens,
"completion_tokens": usage.completion_tokens,
"total_tokens": usage.total_tokens,
})
Penanganan error yang wajib ada
Error yang umum ditemui:
| Status | Arti | Perbaikan |
|---|---|---|
| 401 | Bearer token salah atau kedaluwarsa | Buat ulang API key dari konsol |
| 403 | Model tidak aktif di workspace | Aktifkan ERNIE 5.1 di konsol Qianfan |
| 429 | Rate limit tercapai | Gunakan backoff + retry dengan jitter |
400 (invalid messages) |
Urutan role message salah | Pastikan urutan user/asisten/tool valid |
| 500/502 | Error sisi Qianfan | Retry sekali; jika berlanjut, cek halaman status |
Untuk produksi:
- Batasi retry maksimal, misalnya 3 kali.
- Gunakan exponential backoff.
- Tambahkan jitter untuk menghindari retry serentak.
- Log
request_iddari header respons jika tersedia. Dukungan Baidu membutuhkannya untuk debugging.
Wrapper Python minimal untuk produksi
Berikut wrapper kecil yang cukup aman untuk mulai dipakai di aplikasi nyata:
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 e:
if e.status_code and e.status_code >= 500 and attempt < max_retries - 1:
time.sleep(1 + attempt)
continue
raise
raise RuntimeError("ERNIE 5.1 retries exhausted")
Contoh pemakaian:
response = chat([
{"role": "system", "content": "You are a concise API reviewer."},
{"role": "user", "content": "Review this endpoint: GET /orders/recent"}
])
print(response.choices[0].message.content)
Wrapper ini menangani sebagian besar kasus umum: request normal, rate limit, dan error 5xx sementara. Untuk streaming dan tool loop, gunakan pola yang sama tetapi bungkus alur iterasi stream atau eksekusi tool.
Pertanyaan yang sering diajukan
Apakah API ERNIE 5.1 gratis?
Tidak. Qianfan adalah layanan bayar sesuai penggunaan. Tidak ada tier gratis permanen, meskipun akun baru terkadang mendapatkan kredit percobaan. Untuk eksperimen gratis, gunakan UI chat ernie.baidu.com atau lihat opsi LLM gratis.
Bisakah ERNIE 5.1 dijalankan secara lokal?
Tidak. Bobot model tidak tersedia publik. Jika deployment lokal adalah kebutuhan wajib, lihat cara menjalankan DeepSeek V4 secara lokal atau LLM lokal terbaik di tahun 2026.
Apakah OpenAI SDK berfungsi tanpa perubahan besar?
Ya. Atur:
base_url = https://qianfan.baidubce.com/v2
api_key = QIANFAN_API_KEY
model = ernie-5.1
Streaming, function calling, dan response_format: json_object berfungsi. Validasi json_schema yang ketat masih dalam proses peluncuran, jadi tetap validasi output di aplikasi Anda.
Bagaimana performa prompt Bahasa Mandarin vs Bahasa Inggris?
Keduanya didukung sebagai kelas satu. Skor Arena Search sebesar 1.223 berasal dari kumpulan pemilih multibahasa. Untuk tugas teknis Bahasa Inggris seperti coding dan desain API, ERNIE 5.1 kompetitif dengan model tertutup. Untuk penulisan kreatif Bahasa Mandarin, model ini termasuk yang terkuat di antara model Tiongkok.
Berapa panjang output maksimum?
Belum dipublikasikan secara resmi. Dalam praktiknya, respons satu giliran dibatasi sekitar 8K token sebelum model selesai. Untuk pembuatan konten panjang, pecah tugas menjadi beberapa bagian dan lanjutkan secara bertahap.
Penutup
Untuk mulai membangun dengan ERNIE 5.1:
- Buat API key Qianfan.
- Simpan key di environment variable.
- Gunakan endpoint
https://qianfan.baidubce.com/v2. - Panggil model
ernie-5.1dengan format OpenAI-compatible. - Tambahkan retry, logging token usage, dan validasi output.
- Gunakan Apidog untuk membandingkan request antar-provider dan menyimpan histori evaluasi.
Membangun agen di ERNIE 5.1? Unduh Apidog dan gunakan koleksi request OpenAI-compatible untuk mem-mock, menguji, dan mendokumentasikan endpoint Qianfan bersama layanan API Anda yang lain.



Top comments (0)