Vai al contenuto principale
DeepSeek è un sistema di dialogo AI molto potente, basta inserire una parola chiave per generare risposte fluide e naturali in pochi secondi. DeepSeek-V3 si distingue nel settore per le sue eccezionali capacità di comprensione e generazione del linguaggio, e oggi è ampiamente utilizzato in vari settori e ambiti, la sua influenza è sempre più significativa. Che si tratti di conversazioni quotidiane, scrittura creativa, consulenze professionali o programmazione di codice, DeepSeek-V3 può fornire un’assistenza intelligente sorprendente, aumentando notevolmente l’efficienza lavorativa e la creatività umana. Questo documento descrive principalmente il processo di utilizzo dell’API di completamento chat di DeepSeek, che ci consente di utilizzare facilmente le funzionalità di dialogo ufficiali di DeepSeek.

Processo di Richiesta

Per utilizzare l’API di completamento chat di DeepSeek, puoi prima visitare la pagina DeepSeek Chat Completion API e cliccare sul pulsante “Acquire” per ottenere le credenziali necessarie per la richiesta: Se non hai ancora effettuato il login o la registrazione, verrai automaticamente reindirizzato alla pagina di login per invitarti a registrarti e accedere; dopo aver effettuato il login o la registrazione, verrai riportato automaticamente alla pagina corrente. Alla prima richiesta, verrà offerto un credito gratuito, che ti consente di utilizzare gratuitamente questa API.

Utilizzo di Base

Successivamente, puoi compilare i contenuti corrispondenti nell’interfaccia, come mostrato nell’immagine:

Quando utilizzi per la prima volta questa interfaccia, è necessario compilare almeno tre contenuti: uno è authorization, che puoi selezionare direttamente dal menu a discesa. Un altro parametro è model, model è la categoria del modello che scegli di utilizzare dal sito ufficiale di DeepSeek; qui abbiamo principalmente 4 modelli, i dettagli possono essere consultati nei modelli forniti. L’ultimo parametro è messages, messages è un array delle parole chiave che inseriamo, rappresenta un array che consente di caricare più parole chiave contemporaneamente, ogni parola chiave contiene role e content, dove role indica il ruolo del richiedente; abbiamo fornito tre identità: user, assistant, system. L’altro content è il contenuto specifico della nostra domanda. Puoi anche notare che a destra c’è un codice di chiamata corrispondente generato, puoi copiare il codice e eseguirlo direttamente, oppure cliccare direttamente sul pulsante “Try” per testare. Parametri opzionali comunemente usati:
  • max_tokens: limita il numero massimo di token per una singola risposta.
  • temperature: genera casualità, tra 0-2, valori più alti portano a maggiore dispersione.
  • n: quante risposte candidate generare in una volta.
  • response_format: impostazione del formato di ritorno.

Dopo la chiamata, scopriamo che il risultato restituito è il seguente:
{
  "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": "Ciao! 😊 Come posso aiutarti oggi?",
        "role": "assistant"
      },
      "refs": null,
      "logprobs": null,
      "finish_reason": "stop",
      "service_tier": null
    }
  ]
}
Il risultato restituito contiene diversi campi, descritti come segue:
  • id, l’ID della generazione di questo compito di dialogo, utilizzato per identificare univocamente questo compito di dialogo.
  • created, informazioni sulla data di creazione di questo compito di dialogo.
  • model, il modello scelto dal sito ufficiale di DeepSeek.
  • choices, le informazioni di risposta fornite da DeepSeek per le parole chiave.
  • usage: statistiche sui token per questo scambio di domande e risposte.
Tra cui choices contiene le informazioni di risposta di DeepSeek, all’interno di choices ci sono le informazioni di risposta di DeepSeek, come mostrato nell’immagine.

Si può vedere che il campo content all’interno di choices contiene il contenuto specifico della risposta di DeepSeek.

Risposta in Streaming

Questa interfaccia supporta anche le risposte in streaming, il che è molto utile per l’integrazione web, consentendo di realizzare un effetto di visualizzazione parola per parola. Se desideri restituire la risposta in streaming, puoi modificare il parametro stream nell’intestazione della richiesta, impostandolo su true. La modifica è mostrata nell’immagine, ma il codice di chiamata deve essere modificato di conseguenza per supportare la risposta in streaming.

Dopo aver modificato stream in true, l’API restituirà i dati JSON riga per riga; a livello di codice, dobbiamo apportare le modifiche necessarie per ottenere i risultati riga per riga. Esempio di codice di chiamata in 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)
L’output sarà il seguente:
data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "Ciao", "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": " Come", "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": " io", "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": " assistere", "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": " te", "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": " oggi", "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]
Si può vedere che la risposta contiene molti data, data all’interno di choices è il contenuto della risposta più recente, coerente con quanto descritto in precedenza. choices è il contenuto della risposta aggiuntiva fornita da DeepSeek. Inoltre, la fine della risposta in streaming è determinata dal contenuto di data; se il contenuto è [DONE], significa che la risposta in streaming è completamente terminata. I risultati di data restituiti hanno diversi campi, descritti come segue:
  • id, l’ID generato per questa attività di conversazione, utilizzato per identificare univocamente questa attività di conversazione.
  • model, il modello scelto dal sito ufficiale di DeepSeek.
  • choices, le informazioni di risposta fornite da DeepSeek in base alle parole di domanda.
JavaScript è supportato, ad esempio, il codice di chiamata in streaming per Node.js è il seguente:
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":"ciao"}],
    "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));
Esempio di codice Java:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "deepseek-v3");
jsonObject.put("messages", [{"role":"user","content":"ciao"}]);
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())
Altre lingue possono essere riscritte separatamente, il principio è lo stesso.

Conversazione a più turni

Se desideri integrare la funzionalità di conversazione a più turni, è necessario caricare più parole di domanda nel campo messages, un esempio specifico di più parole di domanda è mostrato nell’immagine sottostante:

Esempio di codice di chiamata 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":"Ciao"},{"role":"assistant","content":"Ciao! Come posso aiutarti oggi?"},{"role":"user","content":"Cosa ho appena detto?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Caricando più domande, è possibile realizzare facilmente conversazioni a più turni, ottenendo risposte come la seguente:
{
  "id": "as-8g3qzbsw2b",
  "object": "chat.completion",
  "created": 1755437895,
  "model": "deepseek-v3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hai appena detto:  \n\n**\"Ciao\"**  \n\nE io ho risposto con:  \n\n**\"Ciao! Come posso aiutarti oggi?\"**  \n\nPoi hai continuato con:  \n\n**\"Cosa ho appena detto?\"**  \n\nFammi sapere come posso aiutarti! 😊"
      },
      "finish_reason": "stop",
      "flag": 0
    }
  ],
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 57,
    "total_tokens": 79
  }
}
Si può notare che le informazioni contenute in choices sono coerenti con il contenuto di base utilizzato, includendo il contenuto specifico delle risposte di DeepSeek a più conversazioni, permettendo così di rispondere a domande corrispondenti in base a più contenuti di dialogo.

Gestione degli errori

Quando si chiama l’API, se si verifica un errore, l’API restituirà il codice di errore e le informazioni corrispondenti. Ad esempio:
  • 400 token_mismatched: Richiesta non valida, probabilmente a causa di parametri mancanti o non validi.
  • 400 api_not_implemented: Richiesta non valida, probabilmente a causa di parametri mancanti o non validi.
  • 401 invalid_token: Non autorizzato, token di autorizzazione non valido o mancante.
  • 429 too_many_requests: Troppe richieste, hai superato il limite di frequenza.
  • 500 api_error: Errore interno del server, qualcosa è andato storto sul server.

Esempio di risposta di errore

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

Conclusione

Attraverso questo documento, hai appreso come utilizzare facilmente l’API DeepSeek Chat Completion per implementare la funzionalità di chat ufficiale di DeepSeek. Speriamo che questo documento possa aiutarti a integrare e utilizzare meglio questa API. Se hai domande, non esitare a contattare il nostro team di supporto tecnico.