Compatibilidade com SDK OpenAI
A Anthropic fornece uma camada de compatibilidade que permite usar o SDK OpenAI para testar a API Anthropic. Com algumas mudanças no código, você pode avaliar rapidamente as capacidades do modelo Anthropic.
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á:
- Usar um SDK OpenAI oficial
- 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
- Revisar a documentação abaixo para quais recursos são suportados
Exemplo de início rápido
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.
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
Campo | Status de suporte |
---|---|
model | Use nomes de modelo Claude |
max_tokens | Totalmente suportado |
max_completion_tokens | Totalmente suportado |
stream | Totalmente suportado |
stream_options | Totalmente suportado |
top_p | Totalmente suportado |
parallel_tool_calls | Totalmente suportado |
stop | Todas as sequências de parada não-espaço em branco funcionam |
temperature | Entre 0 e 1 (inclusive). Valores maiores que 1 são limitados a 1. |
n | Deve ser exatamente 1 |
logprobs | Ignorado |
metadata | Ignorado |
response_format | Ignorado |
prediction | Ignorado |
presence_penalty | Ignorado |
frequency_penalty | Ignorado |
seed | Ignorado |
service_tier | Ignorado |
audio | Ignorado |
logit_bias | Ignorado |
store | Ignorado |
user | Ignorado |
modalities | Ignorado |
top_logprobs | Ignorado |
reasoning_effort | Ignorado |
Campos tools
/ functions
Campos do array messages
Campos de resposta
Campo | Status de suporte |
---|---|
id | Totalmente suportado |
choices[] | Sempre terá um comprimento de 1 |
choices[].finish_reason | Totalmente suportado |
choices[].index | Totalmente suportado |
choices[].message.role | Totalmente suportado |
choices[].message.content | Totalmente suportado |
choices[].message.tool_calls | Totalmente suportado |
object | Totalmente suportado |
created | Totalmente suportado |
model | Totalmente suportado |
finish_reason | Totalmente suportado |
content | Totalmente suportado |
usage.completion_tokens | Totalmente suportado |
usage.prompt_tokens | Totalmente suportado |
usage.total_tokens | Totalmente suportado |
usage.completion_tokens_details | Sempre vazio |
usage.prompt_tokens_details | Sempre vazio |
choices[].message.refusal | Sempre vazio |
choices[].message.audio | Sempre vazio |
logprobs | Sempre vazio |
service_tier | Sempre vazio |
system_fingerprint | Sempre 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çalho | Status de Suporte |
---|---|
x-ratelimit-limit-requests | Totalmente suportado |
x-ratelimit-limit-tokens | Totalmente suportado |
x-ratelimit-remaining-requests | Totalmente suportado |
x-ratelimit-remaining-tokens | Totalmente suportado |
x-ratelimit-reset-requests | Totalmente suportado |
x-ratelimit-reset-tokens | Totalmente suportado |
retry-after | Totalmente suportado |
request-id | Totalmente suportado |
openai-version | Sempre 2020-10-01 |
authorization | Totalmente suportado |
openai-processing-ms | Sempre vazio |