Saltar para o conteúdo principal
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 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 da API.

Uso Básico

Em seguida, você pode preencher o conteúdo correspondente 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 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.

Após a chamada, descobrimos que o resultado retornado é o seguinte:
{
  "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.

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.

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/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:
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:
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.acedata.cloud/deepseek/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", "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.acedata.cloud/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:

Código de exemplo em Python:
import requests

url = "https://api.acedata.cloud/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:
{
  "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.