Skip to main content
Anthropic Claude é um sistema de diálogo AI muito poderoso, que pode gerar respostas fluentes e naturais em questão de segundos, apenas com a entrada de um prompt. A API Claude Messages é o formato nativo oficial da Anthropic, que, ao contrário do formato compatível da OpenAI (Chat Completion), adota uma estrutura de solicitação e resposta própria da Anthropic, permitindo melhor aproveitamento das capacidades únicas do Claude, como entrada de conteúdo multimodal, chamadas de ferramentas, pensamento profundo (Extended Thinking) e outros recursos avançados. Este documento descreve principalmente o fluxo de uso da API Claude Messages, permitindo que utilizemos uma interface nativa consistente com a oficial da Anthropic para acessar as funcionalidades de diálogo do Claude.

Fluxo de Solicitação

Para usar a API Claude Messages, primeiro você pode acessar a página Claude Messages API e clicar no botão “Acquire” para obter as credenciais necessárias para a solicitação: Se você ainda não estiver logado ou registrado, será redirecionado automaticamente para a página de login, convidando-o a se registrar e fazer login. Após o registro e login, você será redirecionado de volta para a página atual. Na primeira solicitação, haverá um crédito gratuito disponível, permitindo o uso gratuito dessa API.

Uso Básico

O caminho de solicitação da API Claude Messages é /v1/messages, mantendo a consistência com a API oficial da Anthropic. Precisamos fornecer pelo menos três parâmetros obrigatórios:
  • model: escolha o modelo Claude a ser utilizado, como claude-opus-4-20250514, claude-sonnet-4-20250514, etc.
  • messages: array de mensagens de entrada, onde cada mensagem contém role (papel) e content (conteúdo), sendo que role suporta user e assistant.
  • max_tokens: número máximo de tokens de saída, usado para limitar o comprimento da resposta única.
Parâmetros opcionais comuns:
  • system: prompt do sistema, usado para definir o comportamento e o papel do modelo.
  • temperature: aleatoriedade da geração, entre 0-1, quanto maior o valor, mais dispersa a resposta.
  • stream: se deve usar resposta em fluxo, configurado como true para obter um efeito de retorno palavra por palavra.
  • stop_sequences: sequência de parada personalizada, o modelo parará de gerar ao encontrar esses textos.
  • top_p: parâmetro de amostragem nuclear, que, em conjunto com a temperatura, controla a aleatoriedade da geração.
  • top_k: amostra apenas entre as K opções com maior probabilidade.
  • tools: definição de ferramentas, para permitir que o modelo chame funções externas.
  • tool_choice: controla como o modelo usa as ferramentas fornecidas.

Exemplo cURL

Exemplo Python

Após a chamada, o resultado retornado é o seguinte:
Descrição dos campos do resultado retornado:
  • id: identificador único da mensagem atual.
  • type: sempre será message.
  • role: sempre será assistant.
  • content: array de conteúdo da resposta, onde cada elemento contém type (como text) e o conteúdo correspondente.
  • model: nome do modelo que processou a solicitação.
  • stop_reason: razão da parada, os valores possíveis incluem end_turn (término normal), max_tokens (alcance do comprimento máximo), stop_sequence (encontro de sequência de parada), tool_use (chamada de ferramenta).
  • stop_sequence: se a parada foi devido a uma sequência de parada personalizada, exibe o texto correspondente da sequência de parada.
  • usage: estatísticas de uso de tokens, incluindo input_tokens (número de tokens de entrada) e output_tokens (número de tokens de saída).

Prompt do Sistema

A API Claude Messages suporta a definição de prompts do sistema através do campo system, usado para definir o comportamento, papel e contexto do modelo.

Exemplo Python

Ao definir o prompt system, é possível controlar com precisão o papel e o modo de atuação do Claude.

Resposta em Fluxo

Esta interface também suporta resposta em fluxo, definindo o parâmetro stream como true para obter um efeito de retorno passo a passo, ideal para exibição palavra por palavra em uma página da web.

Exemplo Python

A resposta em fluxo retorna no formato de Server-Sent Events (SSE), onde cada linha é precedida por event: e data:. Os tipos de eventos em fluxo incluem:
  • message_start: início da mensagem, contendo informações básicas da mensagem e nome do modelo.
  • content_block_start: início do bloco de conteúdo.
  • content_block_delta: atualização incremental do bloco de conteúdo, contendo novos trechos de texto gerados.
  • content_block_stop: fim do bloco de conteúdo.
  • message_delta: atualização incremental em nível de mensagem, contendo stop_reason e informações finais de usage.
  • message_stop: fim da mensagem.
O efeito de saída é o seguinte:
Pode-se ver que a resposta em fluxo contém eventos content_block_delta que incluem o texto gerado passo a passo, e ao concatenar todos os text_delta, é possível obter a resposta completa.

Exemplo em JavaScript

Diálogo em várias rodadas

Se você deseja integrar a funcionalidade de diálogo em várias rodadas, deve alternar as mensagens dos papéis user e assistant no array messages, incluindo o histórico de conversas anteriores.

Exemplo em Python

O resultado retornado é o seguinte:
Ao passar o histórico completo de conversas em messages, Claude pode fornecer respostas precisas com base no contexto.

Modelo de Pensamento Profundo

Claude suporta a funcionalidade de Pensamento Estendido, que permite que o modelo realize raciocínios internos antes de responder, aumentando a precisão no tratamento de questões complexas. Para usar essa funcionalidade, é necessário passar o parâmetro thinking.

Exemplo em Python

O resultado retornado é o seguinte:
Pode-se ver que o array content contém dois blocos de conteúdo:
  • type: "thinking": o processo de pensamento interno do modelo, mostrando os passos de raciocínio.
  • type: "text": o resultado final da resposta.
Observações:
  • Ao usar thinking, max_tokens deve ser maior que budget_tokens, pois budget_tokens é o orçamento de tokens alocado para o processo de pensamento.
  • Quanto maior o budget_tokens, maior será o espaço para o modelo realizar um raciocínio mais profundo, adequado para lidar com questões complexas.

Modelo Visual

Claude suporta entrada multimodal, podendo processar texto e imagens simultaneamente. Na API de Mensagens, você pode usar a capacidade visual definindo content como um formato de array e incluindo blocos de conteúdo de imagem.

Usando Imagem Codificada em Base64

Usando Imagem por URL

Exemplo de cURL

Formatos de imagem suportados incluem: image/jpeg, image/png, image/gif, image/webp. Exemplo de resultado retornado:

Chamada de Ferramenta (Tool Use)

A API de Mensagens do Claude suporta nativamente a funcionalidade de chamada de ferramentas, permitindo que o modelo chame suas ferramentas/funções pré-definidas quando necessário.

Exemplo em Python

Quando o modelo decide chamar uma ferramenta, o resultado retornado terá content contendo um bloco de conteúdo do tipo tool_use:
Note que stop_reason é tool_use, indicando que o modelo precisa chamar uma ferramenta. Após receber esse resultado, você deve executar a função da ferramenta e retornar o resultado na forma de tool_result para o modelo:
O modelo gerará a resposta final em linguagem natural com base no resultado retornado pela ferramenta.

Diferença em Relação à API de Conclusão de Chat

A Ace Data Cloud oferece dois formatos de API do Claude, e as principais diferenças são as seguintes: Se o seu sistema já estiver integrado ao formato da API do OpenAI, você pode usar a API de Conclusão de Chat para uma transição suave. Se você precisar usar todas as capacidades nativas do Claude, recomenda-se usar a API de Mensagens.

Tratamento de Erros

Ao chamar a API, se ocorrer um erro, a API retornará o código de erro e a mensagem correspondente. Por exemplo:
  • 400 token_mismatched: Requisição inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 400 api_not_implemented: Requisição inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 401 invalid_token: Não autorizado, token de autorização inválido ou ausente.
  • 429 too_many_requests: Muitas requisições, você excedeu o limite de taxa.
  • 500 api_error: Erro interno do servidor, algo deu errado no servidor.

Exemplo de Resposta de Erro

Conclusão

Através deste documento, você já entendeu como usar a API de Mensagens Claude para chamar a funcionalidade de conversa do Claude no formato nativo da Anthropic. A API de Mensagens suporta uma variedade de recursos, como conversas básicas, prompts de sistema, respostas em fluxo, diálogos de múltiplas rodadas, pensamento profundo, compreensão visual e chamadas de ferramentas. Se tiver alguma dúvida, sinta-se à vontade para entrar em contato com nossa equipe de suporte técnico.