Vai al contenuto principale
Anthropic Claude è un sistema di dialogo AI molto potente, in grado di generare risposte fluide e naturali in pochi secondi semplicemente inserendo un prompt. Claude si distingue nel settore per la sua eccellente comprensione e capacità di generazione del linguaggio, ed è ormai 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, Claude può fornire un’assistenza intelligente sorprendente, aumentando notevolmente l’efficienza e la creatività umana. Questo documento descrive principalmente il processo di utilizzo dell’API di completamento chat di Claude, che ci consente di utilizzare facilmente le funzionalità di dialogo ufficiali di Claude.

Processo di richiesta

Per utilizzare l’API di completamento chat di Claude, è possibile visitare la pagina API di completamento chat di Claude e fare clic sul pulsante “Acquire” per ottenere le credenziali necessarie per la richiesta: Se non si è ancora registrati o loggati, si verrà automaticamente reindirizzati alla pagina di accesso per registrarsi e accedere. Dopo aver effettuato la registrazione e l’accesso, si verrà riportati automaticamente alla pagina corrente. Alla prima richiesta, verrà fornito un credito gratuito, che consente di utilizzare gratuitamente questa API.

Utilizzo di base

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

Quando si utilizza per la prima volta questa interfaccia, è necessario compilare almeno tre contenuti: uno è authorization, che può essere selezionato direttamente dal menu a discesa. Un altro parametro è model, che rappresenta la categoria del modello di Claude che si desidera utilizzare; qui abbiamo principalmente 20 modelli, i dettagli possono essere consultati nei modelli forniti. L’ultimo parametro è messages, che è un array di domande che inseriamo, rappresenta un array che consente di caricare più domande contemporaneamente, ogni domanda 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. Inoltre, si può notare che a destra c’è un codice di chiamata corrispondente generato, che può essere copiato e eseguito direttamente, oppure si può semplicemente fare clic sul pulsante “Try” per testare. Parametri opzionali comuni:
  • max_tokens: limita il numero massimo di token per una singola risposta.
  • temperature: genera casualità, tra 0 e 2, valori più alti producono risultati più vari.
  • 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": "msg_bdrk_01Q6WN27v95ypCa1kbanAQ6K",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619365,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "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
  }
}
Il risultato restituito contiene diversi campi, descritti di seguito:
  • id, l’ID generato per questo compito di dialogo, utilizzato per identificare univocamente questo compito di dialogo.
  • model, il modello scelto dal sito ufficiale di Claude.
  • choices, le informazioni di risposta fornite da Claude in base alla domanda.
  • usage: informazioni statistiche sui token per questo scambio di domande e risposte.
Tra cui choices contiene le informazioni di risposta di Claude, all’interno di choices ci sono i dettagli specifici della risposta di Claude, come mostrato nell’immagine.

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

Risposta in streaming

Questa interfaccia supporta anche le risposte in streaming, il che è molto utile per l’integrazione web, consentendo di visualizzare il contenuto parola per parola. Se si desidera restituire una risposta in streaming, è possibile modificare il parametro stream nell’intestazione della richiesta, impostandolo su true. La modifica è mostrata nell’immagine, ma il codice di chiamata deve essere adeguatamente modificato 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, è necessario 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/v1/chat/completions"

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

payload = {
    "model": "claude-opus-4-20250514",
    "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": "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": "Ciao!"}, "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": " Come posso aiutarti"}, "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": " oggi?"}, "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]
Si può vedere che nella risposta ci sono molti data, data contiene le choices che sono il contenuto della risposta più recente, coerente con quanto descritto in precedenza. Le choices sono il contenuto della risposta aggiuntiva, che puoi integrare nel tuo sistema. 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 restituiti da data hanno diversi campi, descritti come segue:
  • id, l’ID generato per questa attività di dialogo, utilizzato per identificare univocamente questa attività di dialogo.
  • model, il modello scelto dal sito ufficiale di Claude.
  • choices, le informazioni di risposta fornite da Claude in base alla domanda.
JavaScript è supportato, ad esempio, il codice per la chiamata in streaming di Node.js è il seguente:
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: "Ciao" }],
    stream: true,
  }),
};

fetch("https://api.acedata.cloud/v1/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", "claude-opus-4-20250514");
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/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())
Altre lingue possono essere riscritte separatamente, il principio è lo stesso.

Dialogo a più turni

Se desideri integrare la funzionalità di dialogo a più turni, devi caricare più domande nel campo messages, un esempio specifico di più domande è mostrato nell’immagine sottostante:

Esempio di codice Python per la chiamata:
import requests

url = "https://api.acedata.cloud/v1/chat/completions"

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

payload = {
    "model": "claude-opus-4-20250514",
    "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, puoi facilmente realizzare un dialogo a più turni e ottenere la seguente risposta:
{
  "id": "msg_bdrk_01Y1wfQmd89g968TVbFu57Yc",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619674,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hai detto \"Ciao\" - questo è stato il tuo primo messaggio a me nella nostra conversazione."
      },
      "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
  }
}
Si può vedere che le informazioni contenute in choices sono coerenti con i contenuti di base utilizzati, includendo il contenuto specifico delle risposte di Claude a più conversazioni, in modo da poter rispondere a domande corrispondenti basate su più contenuti di conversazione.

Modello di Pensiero Profondo

I modelli claude-opus-4-20250514-thinking e claude-sonnet-4-20250514-thinking sono diversi dagli altri modelli, in quanto possono rispondere a domande attraverso un pensiero profondo e restituire il risultato del processo di pensiero. Questo articolo dimostrerà la funzionalità di pensiero profondo attraverso un esempio concreto, e successivamente si possono compilare i contenuti corrispondenti nell’interfaccia API di Claude Chat Completion, come mostrato nell’immagine:

Allo stesso tempo, si può notare che a destra c’è il codice di chiamata corrispondente generato, che può essere copiato e eseguito direttamente, oppure si può semplicemente cliccare sul pulsante “Try” per effettuare un test.

Dopo la chiamata, abbiamo scoperto che il risultato restituito è il seguente:
{
  "id": "msg_018J4YaRoGHtbsTVb4Vvz7oH",
  "object": "chat.completion",
  "created": 1755444014,
  "model": "claude-sonnet-4-20250514-thinking",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Il seno di 30 gradi è **1/2** o **0.5**.\n\nQuesto è uno dei valori trigonometrici fondamentali. In un triangolo 30-60-90, i lati sono in rapporto 1:√3:2, dove il lato opposto all'angolo di 30° ha lunghezza 1 e l'ipotenusa ha lunghezza 2, dandoci sin(30°) = 1/2.",
        "reasoning_content": "L'utente sta chiedendo il seno di 30 gradi. Questa è una domanda di base di trigonometria.\n\nIl seno di 30 gradi è un valore ben noto. In un triangolo 30-60-90, i lati sono in rapporto 1:√3:2. \n\nPer un angolo di 30°:\n- Il lato opposto è 1\n- L'ipotenusa è 2\n- Quindi sin(30°) = opposto/ipotenusa = 1/2 = 0.5\n\nQuesto è uno dei valori trigonometrici standard che vengono comunemente memorizzati."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 60,
    "completion_tokens": 239,
    "total_tokens": 299,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
Si può vedere che le informazioni di risposta all’interno di choices sono state ottenute dopo un pensiero profondo e viene fornito anche il contenuto del processo di pensiero correlato, dove in content reasoning_content indica il processo di pensiero del modello. Le informazioni di risposta all’interno di choices devono essere renderizzate utilizzando la sintassi markdown, in modo da ottenere la migliore esperienza, e infine questo riflette anche il potente vantaggio della funzionalità di rete del nostro modello.

Modello Visivo

claude-sonnet-4-20250514 è un modello di linguaggio multimodale di grandi dimensioni sviluppato da Claude, che ha aggiunto capacità di comprensione visiva rispetto a claude-4. Questo modello può gestire simultaneamente input di testo e immagini, realizzando una comprensione e generazione cross-modale. L’elaborazione del testo utilizzando il modello claude-sonnet-4-20250514 è coerente con i contenuti di base utilizzati in precedenza, di seguito verrà fornita una breve introduzione su come utilizzare la capacità di elaborazione delle immagini del modello. L’uso della capacità di elaborazione delle immagini del modello claude-sonnet-4-20250514 avviene principalmente aggiungendo un campo type al contenuto originale di content, attraverso il quale si può sapere se ciò che viene caricato è testo o immagine, permettendo così di utilizzare la capacità di elaborazione delle immagini del modello claude-sonnet-4-20250514. Di seguito si parlerà principalmente di come chiamare questa funzionalità utilizzando due modalità: Curl e Python.
  • Metodo Curl
curl -X POST 'https://api.acedata.cloud/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": "Cosa c'è in questa immagine?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://cdn.acedata.cloud/ueugot.png"
            }
          }
        ]
      }
    ]
  }'
  • Metodo Python
import requests

url = "https://api.acedata.cloud/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": "Cosa c'è in questa immagine?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://cdn.acedata.cloud/ueugot.png"
                    }
                },
            ],
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Poi si può ottenere il seguente risultato, le informazioni dei campi nel risultato sono coerenti con quelle sopra, nello specifico come segue:
{
  "id": "msg_bdrk_01NCrxpZmV17bhQJJRQEFEb9",
  "model": "claude-sonnet-4-20250514",
  "object": "chat.completion",
  "created": 1768628904,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Questa immagine mostra un'interfaccia di configurazione della richiesta API per quello che sembra essere un servizio di completamento chat AI. Ecco gli elementi chiave:\n\n**Parametri del Corpo della Richiesta:**\n\n1. **model** (stringa richiesta) - Impostato su \"claude-opus-4-202505...\" - specifica quale modello AI utilizzare\n\n2. **messages** (array richiesto) - Contiene la cronologia della conversazione con:\n   - **role** (stringa richiesta) - Impostato su \"user\" \n   - **content** (stringa richiesta) - Contiene \"Ciao\" come contenuto del messaggio\n\n3. **stream** (booleano) - Impostato su \"true\" - abilita i delta dei messaggi parziali come in ChatGPT\n\n4. **max_tokens** (numero) - Campo per impostare il numero massimo di token che possono essere generati nella risposta\n\n5. **n** (numero) - Specifica quanti completamenti della chat generare per ogni input\n\nL'interfaccia ha un tema scuro con testo bianco su sfondi neri/grigi scuri. C'è un pulsante \"Fill Example\" in basso a destra e vari menu a discesa e campi di input per configurare i parametri della richiesta API. È visibile un'icona rossa di cestino/cancellazione, probabilmente per rimuovere le voci di messaggio."
      },
      "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
  }
}
Si può vedere che il contenuto delle risposte è basato sulle immagini, quindi attraverso i due metodi sopra menzionati è possibile utilizzare facilmente le capacità di elaborazione di testo e immagini del modello claude-3-7-sonnet-20250219.

Gestione degli errori

Quando si chiama l’API, se si verifica un errore, l’API restituirà il relativo codice di errore e informazioni. 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 di completamento chat di Claude per implementare le funzionalità di conversazione ufficiali di Claude. 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.