Como Usar a API ERNIE 5.1: Guia Completo

Ashley Innocent

Ashley Innocent

14 maio 2026

Como Usar a API ERNIE 5.1: Guia Completo

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

ERNIE 5.1 foi lançado em 9 de maio de 2026, e em uma semana a API Qianfan já estava ativa para ele. Se você deseja chamar o modelo a partir do seu próprio código, rotear chamadas de ferramenta através dele ou integrá-lo a um loop de agente com Apidog, este guia percorre todo o caminho: conta, chave, corpo da requisição, streaming, uso de ferramentas, tratamento de erros.

Vamos manter a praticidade. Ao final, você terá trechos de código funcionais em curl, Python e Node, além de uma coleção de requisições que você pode importar para o Apidog.

Se você ainda não leu a análise de lançamento do ERNIE 5.1, leia-a primeiro; ela aborda benchmarks e trade-offs em comparação com DeepSeek V4 e Kimi K2.6. Este post é o acompanhamento da implementação.

Passo 1: Obtenha uma chave de API Qianfan

ERNIE 5.1 é servido através da plataforma Qianfan da Baidu Intelligent Cloud. Não há uma "API ERNIE" separada; tudo é roteado através do Qianfan.

  1. Vá para cloud.baidu.com e crie ou faça login em uma conta Baidu Intelligent Cloud. Desenvolvedores internacionais podem usar o cadastro por e-mail; algumas funcionalidades empresariais ainda exigem um número de telefone da China continental.
  2. Abra o console Qianfan em console.bce.baidu.com/qianfan.
  3. Em Gerenciamento de Chaves de API (API Key 管理), clique em Criar Chave de API. Escolha o espaço de trabalho e conceda acesso ao serviço de `chat-completions`.
  4. Copie a chave. Ela se parece com bce-v3/ALTAK-xxxx/xxxx. Armazene-a em uma variável de ambiente, não no código-fonte.
export QIANFAN_API_KEY="bce-v3/ALTAK-xxxx/xxxx"

Duas coisas para saber de antemão. Primeiro, o novo endpoint v2 usa um único token Bearer; o fluxo OAuth access_token v1 mais antigo está sendo descontinuado e você não deve construir novos códigos com ele. Segundo, o ERNIE 5.1 é um modelo pago desde o primeiro dia. Recarregue um pequeno saldo (¥10 é suficiente para testar) antes da sua primeira requisição.

Passo 2: Acesse o endpoint compatível com OpenAI usando curl

O Qianfan expõe um endpoint de `chat-completions` compatível com OpenAI, então qualquer coisa em sua pilha que já entenda o formato OpenAI funcionará com uma troca de URL base e uma alteração de ID de modelo.

URL Base: https://qianfan.baidubce.com/v2 ID do Modelo: ernie-5.1 (também: ernie-5.1-preview para recursos de acesso antecipado)

Requisição mínima viável:

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
  }'

Você receberá uma resposta no formato padrão 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
  }
}

Se você vir 401 Unauthorized, sua chave está errada ou expirada. Se você vir 403, a chave é válida, mas o modelo não está habilitado neste espaço de trabalho; volte ao console e adicione o ERNIE 5.1 aos modelos permitidos do espaço de trabalho.

Passo 3: Chame o ERNIE 5.1 a partir do Python

Como o endpoint é compatível com OpenAI, o SDK oficial openai para Python funciona como está. Aponte-o para o Qianfan.

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}")

Se você já tem wrappers em torno do SDK da OpenAI em seu código, substituir o ERNIE 5.1 para testes A/B é uma mudança de uma linha. O mesmo truque funciona para a API do DeepSeek e a maioria dos outros provedores de modelos chineses.

Passo 4: Transmita tokens para interfaces de usuário estilo chat

Para qualquer chat voltado para o usuário, você vai querer streaming. Defina stream: true e consuma eventos enviados pelo servidor.

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)

Equivalente em Curl para depuração:

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

O formato de stream é idêntico ao da OpenAI: linhas data: {...} terminadas por data: [DONE].

Passo 5: Use ERNIE 5.1 com ferramentas (a parte "agentic")

É aqui que o ERNIE 5.1 justifica seu título de lançamento. O modelo obteve pontuações acima do DeepSeek-V4-Pro no τ³-bench e SpreadsheetBench-Verified, o que significa que a chamada de ferramentas funciona em produção, não apenas em demonstrações.

Mesmo esquema de chamada de função da 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})")

Depois que seu código executa a ferramenta real, anexe o resultado como uma mensagem de função tool e chame novamente. O loop termina quando finish_reason == "stop" e tool_calls estiver vazio.

Um detalhe: o ERNIE 5.1 ocasionalmente retorna os argumentos da ferramenta como um JSON stringificado dentro de um bloco de código em vez de uma string JSON limpa. Faça o parse defensivamente com json.loads() envolvido em try/except, e se falhar, remova os blocos de código ```json antes de tentar novamente.

Passo 6: Chame o ERNIE 5.1 a partir do Node.js

Integração direta para qualquer projeto Node que use openai v5+:

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" } funciona e é confiável. Esquemas JSON estritos (json_schema) ainda estão sendo implementados no Qianfan; verifique o formato da resposta no código em vez de confiar na restrição.

Passo 7: Teste e compare com Apidog

Se você está decidindo entre ERNIE 5.1, DeepSeek V4 e Kimi K2.6, não faça isso pelo terminal. Use Apidog para construir um único espaço de trabalho com uma pasta para cada provedor, corpos de requisição idênticos e ambientes salvos por chave de API.

A configuração de 60 segundos:

  1. Abra o Apidog e crie um novo projeto chamado "LLM bake-off."

Adicione um ambiente com QIANFAN_API_KEY, DEEPSEEK_API_KEY, MOONSHOT_API_KEY como variáveis.

Crie três requisições apontando para a URL base de cada provedor com model definido para ernie-5.1, deepseek-chat e kimi-k2-6 respectivamente.

Fixe o mesmo array de messages em todos os três. Use o recurso "Run" do Apidog para executá-los em paralelo e comparar as saídas.

O nível gratuito lida com isso confortavelmente. Apidog salva o histórico de requisições por ambiente, para que você possa voltar na próxima semana e reexecutar a mesma avaliação exata contra uma nova versão do modelo. É melhor do que ficar gerenciando curl em um painel tmux.

Para mais informações sobre testes com múltiplos provedores, consulte Teste LLMs locais como APIs e nosso guia da API GLM 5.1.

Preços, limites de taxa e cotas

Os preços públicos do Qianfan para o ERNIE 5.1 não foram incluídos no post de lançamento; verifique o cartão de taxas do console ao vivo antes de citar números internamente. Três dicas práticas enquanto você espera:

Tratamento de erros que o salvará

Os erros que você encontrará na prática, em ordem aproximada de frequência:

Status Significado Correção
401 Token Bearer errado ou expirado Regenerar no console
403 Modelo não habilitado neste espaço de trabalho Adicionar ERNIE 5.1 no console
429 Limite de taxa atingido Backoff + nova tentativa com jitter
400 (invalid messages) Ordenação de `message-role` errada Garantir alternância de `user`/`assistant`
500/502 Falha no Qianfan Tentar novamente uma vez; se persistir, verificar a página de status

Envolva cada chamada em um mecanismo de repetição com backoff exponencial limitado a 3 tentativas. Para produção, registre o request_id dos cabeçalhos de resposta; o suporte Baidu precisa dele para depurar seu caso.

Um wrapper mínimo com formato de produção

Se você deseja integrar o ERNIE 5.1 em um aplicativo real hoje, aqui está o menor wrapper que não é embaraçoso:

import os, time, random, json
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:
            time.sleep((2 ** attempt) + random.random())
        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")

Isso cobre 80% dos casos. Para loops de ferramenta e streaming, construa em cima disso.

Perguntas Frequentes

A API do ERNIE 5.1 é gratuita? Não. O Qianfan funciona no modelo de pagamento conforme o uso. Não há um nível gratuito permanente; novas contas às vezes recebem créditos de teste. Para experimentação gratuita, use a interface de chat em ernie.baidu.com ou procure por opções gratuitas de LLM.

Posso executar o ERNIE 5.1 localmente? Não. Não há pesos públicos. Se a implantação local for um requisito rígido, veja como executar o DeepSeek V4 localmente ou os melhores LLMs locais em 2026.

O SDK da OpenAI funciona sem alterações? Sim, com base_url definido para https://qianfan.baidubce.com/v2 e api_key definido para sua chave Qianfan. O campo model aceita IDs de modelo Qianfan, não da OpenAI. Chamada de função, streaming e response_format: json_object funcionam. A validação estrita de json_schema ainda está sendo lançada.

Como o ERNIE 5.1 lida com prompts em chinês versus inglês? Ambos são de primeira classe. A pontuação de 1.223 no Arena Search veio de um grupo de eleitores de idiomas mistos. Para tarefas técnicas em inglês (código, design de API), ele é competitivo com a fronteira fechada; para escrita criativa em chinês, é o melhor da categoria entre os modelos chineses.

Qual é o comprimento máximo de saída? Não publicado oficialmente. Na prática, respostas de uma única vez chegam a cerca de 8K tokens antes que o modelo finalize. Para geração de textos longos, divida e continue.

Construindo um agente no ERNIE 5.1? Baixe o Apidog e use a coleção de requisições compatíveis com OpenAI para simular, testar e documentar o endpoint Qianfan junto com o restante dos seus serviços.

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs