Compatibilidade com SDK OpenAI (beta)
Com algumas alterações no código, você pode usar o SDK OpenAI para testar a API da Anthropic. A Anthropic fornece uma camada de compatibilidade que permite avaliar rapidamente as capacidades do modelo Anthropic com esforço mínimo.
Envie feedback ou bugs relacionados ao recurso de compatibilidade do SDK OpenAI aqui.
Antes de começar
Esta camada de compatibilidade destina-se a testar e comparar as capacidades do modelo com esforço mínimo de desenvolvimento e não é considerada uma solução de longo prazo ou pronta para produção para a maioria dos casos de uso. 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 prompts), 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 saber quais recursos são suportados
Exemplo de início rápido
Limitações importantes de compatibilidade com OpenAI
Comportamento da API
Aqui estão as diferenças mais substanciais em relação ao uso da OpenAI:
- O parâmetro
strict
para chamada de função é ignorado, o que significa que o JSON de uso da ferramenta não é garantido que siga o esquema fornecido. - A entrada de áudio não é suportada; ela será simplesmente ignorada e removida da entrada
- O cache de prompts não é suportado, mas é suportado no SDK da Anthropic
- Mensagens de sistema/desenvolvedor são elevadas e concatenadas no início da conversa, já que 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 estes estão documentados abaixo.
Considerações sobre qualidade de saída
Se você fez muitos ajustes em seu prompt, é provável que ele esteja bem ajustado especificamente para a OpenAI. Considere usar nosso aprimorador de prompts no Console Anthropic como um bom ponto de partida.
Elevação de mensagens de sistema / desenvolvedor
A maioria das entradas para o SDK OpenAI mapeia 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 com uma única quebra de linha (\n
) entre elas. Essa string completa é então fornecida como uma única mensagem de sistema no início das mensagens.
Suporte a pensamento estendido
Você pode habilitar recursos 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 ao resultado do 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 à 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 sem 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 mensagens 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 registro 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 diretamente com eles.
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 |