> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Solicitação e Uso da API de Conclusão de Chat do Claude

> Claude AI 集成指南 - XHuoAPI

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](https://api.xhuoapi.ai/documents/280928a2-2dce-419c-adb5-1ea835e8183a) e clicar no botão "Adquirir" para obter as credenciais necessárias para a solicitação:

![](https://cdn.xhuoapi.ai/nyq0xz.png)

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:

<p>
  <img src="https://cdn.xhuoapi.ai/ejeq57.png" width="400" className="m-auto" />
</p>

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.

<p>
  <img src="https://cdn.xhuoapi.ai/v6lbjo.png" width="400" className="m-auto" />
</p>

Após a chamada, encontramos o resultado retornado como segue:

```json theme={null}
{
  "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.

<p>
  <img src="https://cdn.xhuoapi.ai/2ulyhw.png" width="400" className="m-auto" />
</p>

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.

<p>
  <img src="https://cdn.xhuoapi.ai/ueugot.png" width="400" className="m-auto" />
</p>

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:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/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:

```json theme={null}
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:

```javascript theme={null}
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.xhuoapi.ai/v1/v1/chat/completions", options)
  .then((response) => response.json())
  .then((response) => console.log(response))
  .catch((err) => console.error(err));
```

Exemplo de código em Java:

```java theme={null}
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.xhuoapi.ai/v1/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:

<p>
  <img src="https://cdn.xhuoapi.ai/odwx82.png" width="400" className="m-auto" />
</p>

Código de exemplo em Python:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/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:

```json theme={null}
{
  "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 界面上填写对应的内容，如图所示：

<p>
  <img src="https://cdn.xhuoapi.ai/d1a4wq.png" width="400" className="m-auto" />
</p>

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

<p>
  <img src="https://cdn.xhuoapi.ai/21nmzq.png" width="400" className="m-auto" />
</p>

调用之后，我们发现返回结果如下：

```json theme={null}
{
  "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` 里面的回答信息是经过深度思考后得到的，并且也给出了相关的思考过程内容，其中在`content`中`reasoning_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.xhuoapi.ai/v1/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.xhuoapi.ai/ueugot.png"
            }
          }
        ]
      }
    ]
  }'
```

* Python 脚本方式

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/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.xhuoapi.ai/ueugot.png"
                    }
                },
            ],
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

然后可以得到下面的结果，结果里面的字段信息是与上文一致的，具体的如下：

```json theme={null}
{
  "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.
