> ## 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.

# DeepSeek Chat Completion API Solicitação e Uso

> DeepSeek AI 集成指南 - XHuoAPI

DeepSeek é um sistema de diálogo AI muito poderoso, que gera respostas fluentes e naturais em poucos segundos ao inserir palavras-chave. O DeepSeek-V3 se destaca na indústria por sua excelente capacidade de compreensão e geração de linguagem, e hoje, o DeepSeek-V3 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, programação de código, o DeepSeek-V3 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 DeepSeek Chat Completion, que nos permite utilizar facilmente a funcionalidade de diálogo oficial do DeepSeek.

## Fluxo de Solicitação

Para usar a API DeepSeek Chat Completion, primeiro você pode acessar a página [DeepSeek Chat Completion API](https://api.xhuoapi.ai/documents/2d6a9bae-9a70-4aaa-bd72-28e5bd60fa67) e clicar no botão "Acquire" 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 o conteúdo correspondente na interface, como mostrado na imagem:

<p>
  <img src="https://cdn.xhuoapi.ai/m9kxkz.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 do site do DeepSeek; aqui temos principalmente 4 tipos de modelos, e mais detalhes podem ser encontrados 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 "Try" 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ção do formato de retorno.

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

Após a chamada, descobrimos que o resultado retornado é o seguinte:

```json theme={null}
{
  "id": "chatcmpl-050bf20a-ebcd-498a-bf6e-63ee0738013b",
  "object": "chat.completion",
  "created": 1764846609,
  "model": "deepseek-v3.2-exp",
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 11,
    "total_tokens": 19
  },
  "choices": [
    {
      "index": 0,
      "message": {
        "content": "Hello! 😊 How can I help you today?",
        "role": "assistant"
      },
      "refs": null,
      "logprobs": null,
      "finish_reason": "stop",
      "service_tier": null
    }
  ]
}
```

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.
* `created`, informações sobre a data de criação da tarefa de diálogo.
* `model`, o modelo escolhido do site do DeepSeek.
* `choices`, informações sobre as respostas fornecidas pelo DeepSeek para as palavras-chave.
* `usage`: estatísticas sobre os tokens usados nesta pergunta e resposta.

Entre eles, `choices` contém as informações de resposta do DeepSeek, onde o `choices` é a informação de resposta do DeepSeek, como mostrado na imagem.

<p>
  <img src="https://cdn.xhuoapi.ai/0pd4q5.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 DeepSeek.

## Resposta em Fluxo

Esta interface também suporta resposta em fluxo, o que é muito útil para integração em páginas da web, permitindo que a página exiba o resultado 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/dsoiqw.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/deepseek/chat/completions"

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

payload = {
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"hello"}],
    "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": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "Olá", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "!", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 😊", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " Como", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " posso", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " eu", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " ajudar", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " você", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " hoje", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "?", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": {"prompt_tokens": 4, "completion_tokens": 12, "total_tokens": 16, "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}}

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`, o ID gerado para esta tarefa de conversa, usado para identificar exclusivamente esta tarefa de conversa.
* `model`, o modelo escolhido do site oficial da DeepSeek.
* `choices`, as informações de resposta fornecidas pela DeepSeek para a palavra de pergunta.

O 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": "deepseek-v3",
    "messages": [{"role":"user","content":"olá"}],
    "stream": true
  })
};

fetch("https://api.xhuoapi.ai/v1/deepseek/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", "deepseek-v3");
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/deepseek/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 forma semelhante, 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ários termos de pergunta no campo `messages`, exemplos específicos de vários termos de pergunta são mostrados na imagem abaixo:

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

Código de exemplo em Python:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/deepseek/chat/completions"

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

payload = {
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"Olá"},{"role":"assistant","content":"Oi! 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 perguntas, é possível realizar facilmente um diálogo em várias rodadas, obtendo a seguinte resposta:

```json theme={null}
{
  "id": "as-8g3qzbsw2b",
  "object": "chat.completion",
  "created": 1755437895,
  "model": "deepseek-v3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Você acabou de dizer:  \n\n**\"Olá\"**  \n\nE eu respondi com:  \n\n**\"Oi! Como posso ajudá-lo hoje?\"**  \n\nEntão você seguiu com:  \n\n**\"O que eu disse agora?\"**  \n\nDeixe-me saber como posso ajudar! 😊"
      },
      "finish_reason": "stop",
      "flag": 0
    }
  ],
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 57,
    "total_tokens": 79
  }
}
```

Pode-se ver que as informações contidas em `choices` são consistentes com o conteúdo do uso básico, incluindo o conteúdo específico da resposta do DeepSeek para múltiplos diálogos, permitindo assim responder às perguntas correspondentes com base em várias interações.

## 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`: 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": "falha ao buscar"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusão

Através deste documento, você aprendeu como usar a API DeepSeek Chat Completion para implementar facilmente a funcionalidade de diálogo do DeepSeek oficial. Esperamos que este documento ajude você a integrar e usar melhor essa API. Se tiver alguma dúvida, entre em contato com nossa equipe de suporte técnico.
