Saltar para o conteúdo principal
O Anthropic Claude é um sistema de diálogo AI muito poderoso, que pode gerar respostas fluentes e naturais em apenas alguns segundos ao inserir uma palavra-chave. Claude se destaca na indústria por sua excelente capacidade de compreensão e geração de linguagem, e hoje, Claude já é amplamente utilizado em vários setores e áreas, com sua influência se tornando cada vez mais significativa. Seja em diálogos cotidianos, escrita criativa, ou consultoria profissional e programação de código, Claude pode fornecer assistência inteligente impressionante, aumentando significativamente a eficiência e a criatividade do trabalho humano. Este documento apresenta principalmente o fluxo de uso da API de Conclusão de Chat do Claude, permitindo que utilizemos facilmente a funcionalidade de diálogo oficial do Claude.

Fluxo de Solicitação

Para usar a API de Conclusão de Chat do Claude, primeiro você pode acessar a página API de Conclusão de Chat do Claude e clicar no botão “Adquirir” 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 da API.

Uso Básico

Em seguida, você pode preencher os conteúdos correspondentes na interface, como mostrado na imagem:

Na primeira vez que usar esta interface, precisamos preencher pelo menos três conteúdos: um é authorization, que pode ser selecionado diretamente na lista suspensa. O outro parâmetro é model, que é a categoria do modelo que escolhemos usar no site do Claude; aqui temos principalmente 20 modelos, e os detalhes podem ser vistos nos modelos que fornecemos. O último parâmetro é messages, que é um array de palavras-chave que inserimos, representando a possibilidade de enviar várias palavras-chave ao mesmo tempo, onde cada palavra-chave contém role e content, sendo que role representa o papel do questionador, e oferecemos três identidades: user, assistant, system. O outro content é o conteúdo específico da nossa pergunta. Você também pode notar que há um código de chamada correspondente gerado à direita, que você pode copiar e executar diretamente, ou pode clicar no botão “Tentar” para testar. Parâmetros opcionais comuns:
  • max_tokens: limita o número máximo de tokens na resposta única.
  • temperature: gera aleatoriedade, entre 0-2, quanto maior o valor, mais disperso.
  • n: quantas respostas candidatas gerar de uma vez.
  • response_format: configurações do formato de retorno.

Após a chamada, encontramos o resultado retornado como segue:
{
  "id": "msg_bdrk_01Q6WN27v95ypCa1kbanAQ6K",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619365,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Olá! Como posso ajudá-lo hoje?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 12,
    "total_tokens": 20,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
O resultado retornado contém vários campos, descritos a seguir:
  • id, o ID da tarefa de diálogo gerada, usado para identificar exclusivamente esta tarefa de diálogo.
  • model, o modelo do site do Claude escolhido.
  • choices, as informações de resposta que Claude forneceu para as palavras-chave.
  • usage: informações estatísticas sobre os tokens para esta pergunta e resposta.
Entre eles, choices contém as informações de resposta do Claude, onde choices é a informação específica da resposta do Claude, como mostrado na imagem.

Pode-se ver que o campo content dentro de choices contém o conteúdo específico da resposta do Claude.

Resposta em Fluxo

Esta interface também suporta resposta em fluxo, o que é muito útil para integração com páginas da web, permitindo que a página exiba o efeito de exibição letra por letra. Se você deseja retornar a resposta em fluxo, pode alterar o parâmetro stream no cabeçalho da solicitação para true. A modificação é mostrada na imagem, mas o código de chamada precisa ter as alterações correspondentes para suportar a resposta em fluxo.

Após alterar stream para true, a API retornará os dados JSON linha por linha, e no nível do código, precisamos fazer as modificações necessárias para obter os resultados linha por linha. Código de exemplo de chamada em Python:
import requests

url = "https://api.acedata.cloud/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-opus-4-20250514",
    "messages": [{"role":"user","content":"Olá"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
O efeito de saída é o seguinte:
data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": ""}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": "Olá!"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": " Como posso ajudá-lo"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": " hoje?"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [], "usage": {"prompt_tokens": 8, "completion_tokens": 12, "total_tokens": 20, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0}}

data: [DONE]
Pode-se ver que a resposta contém muitos data, onde data contém as choices, que são o conteúdo da resposta mais recente, consistente com o conteúdo apresentado anteriormente. choices é o novo conteúdo da resposta, que você pode integrar ao seu sistema. Além disso, o término da resposta em fluxo é determinado pelo conteúdo de data; se o conteúdo for [DONE], isso indica que a resposta em fluxo foi completamente finalizada. O resultado retornado em data possui vários campos, conforme descrito a seguir:
  • id, que gera a ID da tarefa de diálogo, usada para identificar exclusivamente esta tarefa de diálogo.
  • model, o modelo escolhido no site da Claude.
  • choices, as informações de resposta fornecidas pela Claude em relação às palavras de pergunta.
JavaScript também é suportado, como mostrado no código de chamada em fluxo do Node.js abaixo:
const options = {
  method: "post",
  headers: {
    accept: "application/json",
    authorization: "Bearer {token}",
    "content-type": "application/json",
  },
  body: JSON.stringify({
    model: "claude-opus-4-20250514",
    messages: [{ role: "user", content: "Olá" }],
    stream: true,
  }),
};

fetch("https://api.acedata.cloud/v1/chat/completions", options)
  .then((response) => response.json())
  .then((response) => console.log(response))
  .catch((err) => console.error(err));
Exemplo de código em Java:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "claude-opus-4-20250514");
jsonObject.put("messages", [{"role":"user","content":"Olá"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/v1/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
Outras linguagens podem ser reescritas de acordo, o princípio é o mesmo.

Diálogo em várias rodadas

Se você deseja integrar a funcionalidade de diálogo em várias rodadas, precisa enviar várias palavras de pergunta no campo messages, com exemplos específicos mostrados na imagem abaixo:

Código de exemplo em Python:
import requests

url = "https://api.acedata.cloud/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-opus-4-20250514",
    "messages": [{"role":"user","content":"Olá"},{"role":"assistant","content":"Olá! Como posso ajudá-lo hoje?"},{"role":"user","content":"O que eu disse agora?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Ao enviar várias palavras de pergunta, você pode facilmente realizar diálogos em várias rodadas e obter a seguinte resposta:
{
  "id": "msg_bdrk_01Y1wfQmd89g968TVbFu57Yc",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619674,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Você disse \"Olá\" - essa foi sua primeira mensagem para mim em nossa conversa."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 29,
    "completion_tokens": 20,
    "total_tokens": 49,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
可以看到,choices 包含的信息与基本使用的内容是一致的,这个包含了 Claude 针对多个对话进行回复的具体内容,这样就可以根据多个对话内容来回答对应的问题了。

深度思考模型

claude-opus-4-20250514-thinking 和 claude-sonnet-4-20250514-thinking 模型与其它模型不同,它可以根据提问词来进行深度思考来回答,并且将思考过程的结果返回给你,本文将通过一个具体示例来演示深度思考功能,接下来就可以在 Claude Chat Completion API 界面上填写对应的内容,如图所示:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

调用之后,我们发现返回结果如下:
{
  "id": "msg_018J4YaRoGHtbsTVb4Vvz7oH",
  "object": "chat.completion",
  "created": 1755444014,
  "model": "claude-sonnet-4-20250514-thinking",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "O seno de 30 graus é **1/2** ou **0.5**.\n\nEste é um dos valores trigonométricos fundamentais. Em um triângulo 30-60-90, os lados estão na proporção 1:√3:2, onde o lado oposto ao ângulo de 30° tem comprimento 1 e a hipotenusa tem comprimento 2, nos dando sin(30°) = 1/2.",
        "reasoning_content": "O usuário está perguntando pelo seno de 30 graus. Esta é uma pergunta básica de trigonometria.\n\nO seno de 30 graus é um valor bem conhecido. Em um triângulo 30-60-90, os lados estão na proporção 1:√3:2. \n\nPara um ângulo de 30°:\n- O lado oposto é 1\n- A hipotenusa é 2\n- Então sin(30°) = oposto/hipotenusa = 1/2 = 0.5\n\nEste é um dos valores trigonométricos padrão que é comumente memorizado."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 60,
    "completion_tokens": 239,
    "total_tokens": 299,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
可以看到,choices 里面的回答信息是经过深度思考后得到的,并且也给出了相关的思考过程内容,其中在contentreasoning_content表示模型的思考过程。choices 里面的回答信息是要通过 markdown 语法进行渲染,这样才能获得最佳的体验,最后这也体现出我们模型的联网功能的强大优势。

视觉模型

claude-sonnet-4-20250514 是 Claude 开发的多模态大型语言模型,它在 claude-4 的基础上增加了视觉理解能力。这个模型可以同时处理文本和图像输入,实现了跨模态的理解和生成。 使用 claude-sonnet-4-20250514 模型的文本处理是与上文的基本使用内容一致的,下面将简要介绍一下如果使用模型的图像处理能力。 使用 claude-sonnet-4-20250514 模型的图像处理能力主要是通过在原有的 content 内容基础上添加一个 type 字段,通过该字段可以知道上传的是文本还是图片,从而使用 claude-sonnet-4-20250514 模型的图像处理能力,下面主要讲述采用 Curl 和 Python 俩种方式来调用该功能。
  • Curl 脚本方式
curl -X POST 'https://api.acedata.cloud/v1/chat/completions' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
    "model": "claude-sonnet-4-20250514",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "O que há nesta imagem?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://cdn.acedata.cloud/ueugot.png"
            }
          }
        ]
      }
    ]
  }'
  • Python 脚本方式
import requests

url = "https://api.acedata.cloud/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-sonnet-4-20250514",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text", "text": "O que há nesta imagem?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://cdn.acedata.cloud/ueugot.png"
                    }
                },
            ],
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
然后可以得到下面的结果,结果里面的字段信息是与上文一致的,具体的如下:
{
  "id": "msg_bdrk_01NCrxpZmV17bhQJJRQEFEb9",
  "model": "claude-sonnet-4-20250514",
  "object": "chat.completion",
  "created": 1768628904,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Esta imagem mostra uma interface de configuração de requisição de API para o que parece ser um serviço de conclusão de chat de IA. Aqui estão os principais elementos:\n\n**Parâmetros do Corpo da Requisição:**\n\n1. **model** (string obrigatória) - Definido como \"claude-opus-4-202505...\" - especifica qual modelo de IA usar\n\n2. **messages** (array obrigatória) - Contém o histórico da conversa com:\n   - **role** (string obrigatória) - Definido como \"user\" \n   - **content** (string obrigatória) - Contém \"Olá\" como o conteúdo da mensagem\n\n3. **stream** (booleano) - Definido como \"true\" - habilita deltas de mensagens parciais como no ChatGPT\n\n4. **max_tokens** (número) - Campo para definir o número máximo de tokens que podem ser gerados na resposta\n\n5. **n** (número) - Especifica quantas escolhas de conclusão de chat gerar para cada entrada\n\nA interface tem um tema escuro com texto branco em fundos pretos/cinzas escuros. Há um botão \"Preencher Exemplo\" no canto inferior direito e vários menus suspensos e campos de entrada para configurar os parâmetros da requisição da API. Um ícone de lixeira/vermelho é visível, provavelmente para remover entradas de mensagem."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1570,
    "completion_tokens": 252,
    "total_tokens": 1822,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
Pode-se ver que o conteúdo das respostas é baseado em imagens, portanto, através das duas maneiras mencionadas acima, é possível utilizar facilmente as capacidades de processamento de texto e imagem do modelo claude-3-7-sonnet-20250219.

Tratamento de Erros

Ao chamar a API, se ocorrer um erro, a API retornará o código de erro e as informações correspondentes. Por exemplo:
  • 400 token_mismatched: Solicitação inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 400 api_not_implemented: Solicitaçã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 solicitações, você excedeu o limite de taxa.
  • 500 api_error: Erro interno do servidor, algo deu errado no servidor.

Exemplo de Resposta de Erro

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusão

Através deste documento, você já entendeu como usar a API de Conclusão de Chat do Claude para implementar facilmente as funcionalidades de conversa do Claude oficial. Esperamos que este documento possa ajudá-lo a integrar e usar melhor essa API. Se tiver alguma dúvida, sinta-se à vontade para entrar em contato com nossa equipe de suporte técnico.