> ## 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 Richiesta e Utilizzo

> DeepSeek AI 集成指南 - XHuoAPI

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](https://api.xhuoapi.ai/documents/2d6a9bae-9a70-4aaa-bd72-28e5bd60fa67) e cliccare sul pulsante "Acquire" per ottenere le credenziali necessarie per la richiesta:

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

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:

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

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.

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

Dopo la chiamata, scopriamo che il risultato restituito è il seguente:

```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": "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.

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

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.

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

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:

```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)
```

L'output sarà il seguente:

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

```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":"ciao"}],
    "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));
```

Esempio di codice Java:

```java theme={null}
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.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())
```

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:

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

Esempio di codice di chiamata 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":"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:

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