Esta camada de compatibilidade é destinada principalmente para testar e comparar capacidades de modelos, e não é considerada uma solução de longo prazo ou pronta para produção para a maioria dos casos de uso. Embora pretendamos mantê-la totalmente funcional e não fazer mudanças que quebrem a compatibilidade, nossa prioridade é a confiabilidade e eficácia da API Anthropic.

Para mais informações sobre limitações conhecidas de compatibilidade, veja Limitações importantes de compatibilidade OpenAI.

Se você encontrar algum problema com o recurso de compatibilidade do SDK OpenAI, por favor nos informe aqui.

Para a melhor experiência e acesso ao conjunto completo de recursos da API Anthropic (processamento de PDF, citações, pensamento estendido, e cache de prompt), recomendamos usar a API Anthropic nativa.

Começando com o SDK OpenAI

Para usar o recurso de compatibilidade do SDK OpenAI, você precisará:

  1. Usar um SDK OpenAI oficial
  2. Alterar o seguinte
    • Atualizar sua URL base para apontar para a API da Anthropic
    • Substituir sua chave de API por uma chave de API Anthropic
    • Atualizar o nome do seu modelo para usar um modelo Claude
  3. Revisar a documentação abaixo para quais recursos são suportados

Exemplo de início rápido

from openai import OpenAI

client = OpenAI(
    api_key="ANTHROPIC_API_KEY",  # Sua chave de API Anthropic
    base_url="https://api.anthropic.com/v1/"  # Endpoint da API Anthropic
)

response = client.chat.completions.create(
    model="claude-opus-4-20250514", # Nome do modelo Anthropic
    messages=[
        {"role": "system", "content": "Você é um assistente útil."},
        {"role": "user", "content": "Quem é você?"}
    ],
)

print(response.choices[0].message.content)

Limitações importantes de compatibilidade OpenAI

Comportamento da API

Aqui estão as diferenças mais substanciais ao usar OpenAI:

  • O parâmetro strict para chamada de função é ignorado, o que significa que o JSON de uso de ferramenta não é garantido para seguir o esquema fornecido.
  • Entrada de áudio não é suportada; será simplesmente ignorada e removida da entrada
  • Cache de prompt não é suportado, mas é suportado no SDK Anthropic
  • Mensagens de sistema/desenvolvedor são elevadas e concatenadas ao início da conversa, pois a Anthropic suporta apenas uma única mensagem de sistema inicial.

A maioria dos campos não suportados são silenciosamente ignorados em vez de produzir erros. Todos estão documentados abaixo.

Considerações de qualidade de saída

Se você fez muitos ajustes no seu prompt, é provável que esteja bem ajustado especificamente para OpenAI. Considere usar nosso melhorador de prompt no Console Anthropic como um bom ponto de partida.

Elevação de mensagem de Sistema / Desenvolvedor

A maioria das entradas para o SDK OpenAI mapeia claramente e diretamente para os parâmetros da API da Anthropic, mas uma diferença distinta é o tratamento de prompts de sistema / desenvolvedor. Esses dois prompts podem ser colocados ao longo de uma conversa de chat via OpenAI. Como a Anthropic suporta apenas uma mensagem de sistema inicial, pegamos todas as mensagens de sistema/desenvolvedor e as concatenamos juntas com uma única nova linha (\n) entre elas. Esta string completa é então fornecida como uma única mensagem de sistema no início das mensagens.

Suporte a pensamento estendido

Você pode habilitar capacidades de pensamento estendido adicionando o parâmetro thinking. Embora isso melhore o raciocínio do Claude para tarefas complexas, o SDK OpenAI não retornará o processo de pensamento detalhado do Claude. Para recursos completos de pensamento estendido, incluindo acesso à saída de raciocínio passo a passo do Claude, use a API Anthropic nativa.

response = client.chat.completions.create(
    model="claude-opus-4-20250514",
    messages=...,
    extra_body={
        "thinking": { "type": "enabled", "budget_tokens": 2000 }
    }
)

Limites de taxa

Os limites de taxa seguem os limites padrão da Anthropic para o endpoint /v1/messages.

Suporte Detalhado da API Compatível com OpenAI

Campos de solicitação

Campos simples

CampoStatus de suporte
modelUse nomes de modelo Claude
max_tokensTotalmente suportado
max_completion_tokensTotalmente suportado
streamTotalmente suportado
stream_optionsTotalmente suportado
top_pTotalmente suportado
parallel_tool_callsTotalmente suportado
stopTodas as sequências de parada não-espaço em branco funcionam
temperatureEntre 0 e 1 (inclusive). Valores maiores que 1 são limitados a 1.
nDeve ser exatamente 1
logprobsIgnorado
metadataIgnorado
response_formatIgnorado
predictionIgnorado
presence_penaltyIgnorado
frequency_penaltyIgnorado
seedIgnorado
service_tierIgnorado
audioIgnorado
logit_biasIgnorado
storeIgnorado
userIgnorado
modalitiesIgnorado
top_logprobsIgnorado
reasoning_effortIgnorado

Campos tools / functions

Campos do array messages

Campos de resposta

CampoStatus de suporte
idTotalmente suportado
choices[]Sempre terá um comprimento de 1
choices[].finish_reasonTotalmente suportado
choices[].indexTotalmente suportado
choices[].message.roleTotalmente suportado
choices[].message.contentTotalmente suportado
choices[].message.tool_callsTotalmente suportado
objectTotalmente suportado
createdTotalmente suportado
modelTotalmente suportado
finish_reasonTotalmente suportado
contentTotalmente suportado
usage.completion_tokensTotalmente suportado
usage.prompt_tokensTotalmente suportado
usage.total_tokensTotalmente suportado
usage.completion_tokens_detailsSempre vazio
usage.prompt_tokens_detailsSempre vazio
choices[].message.refusalSempre vazio
choices[].message.audioSempre vazio
logprobsSempre vazio
service_tierSempre vazio
system_fingerprintSempre vazio

Compatibilidade de mensagem de erro

A camada de compatibilidade mantém formatos de erro consistentes com a API OpenAI. No entanto, as mensagens de erro detalhadas não serão equivalentes. Recomendamos usar as mensagens de erro apenas para logging e depuração.

Compatibilidade de cabeçalho

Embora o SDK OpenAI gerencie automaticamente os cabeçalhos, aqui está a lista completa de cabeçalhos suportados pela API da Anthropic para desenvolvedores que precisam trabalhar com eles diretamente.

CabeçalhoStatus de Suporte
x-ratelimit-limit-requestsTotalmente suportado
x-ratelimit-limit-tokensTotalmente suportado
x-ratelimit-remaining-requestsTotalmente suportado
x-ratelimit-remaining-tokensTotalmente suportado
x-ratelimit-reset-requestsTotalmente suportado
x-ratelimit-reset-tokensTotalmente suportado
retry-afterTotalmente suportado
request-idTotalmente suportado
openai-versionSempre 2020-10-01
authorizationTotalmente suportado
openai-processing-msSempre vazio