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 Claude.Para mais informações sobre limitações conhecidas de compatibilidade, consulte 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 Claude (processamento de PDF, citações, pensamento estendido, e cache de prompt), recomendamos usar a API Claude 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 Claude
    • Substituir sua chave API por uma chave API Claude
    • 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 API Claude
    base_url="https://api.anthropic.com/v1/"  # o endpoint da API Claude
)

response = client.chat.completions.create(
    model="claude-sonnet-4-5", # 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 de 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 Claude 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 quebra de 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 Claude nativa.
response = client.chat.completions.create(
    model="claude-sonnet-4-5",
    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 tools[n].function
CampoStatus de suporte
nameTotalmente suportado
descriptionTotalmente suportado
parametersTotalmente suportado
strictIgnorado

Campos do array messages

Campos para messages[n].role == "developer"
Mensagens de desenvolvedor são elevadas ao início da conversa como parte da mensagem de sistema inicial
CampoStatus de suporte
contentTotalmente suportado, mas elevado
nameIgnorado

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 Claude 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