1. Costruzione delle Richieste API
1.1 Invio delle Richieste Usando CURL
CURL è uno strumento da riga di comando che supporta l'invio e la ricezione di dati utilizzando vari protocolli come HTTP e HTTPS. Per inviare una richiesta all'API di OpenAI usando CURL, è necessario prima avere una chiave API valida e quindi aggiungerla all'intestazione della richiesta.
Ecco un esempio di un comando CURL utilizzato per inviare una richiesta all'API di OpenAI:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Dì che questa è una prova!"}],
"temperature": 0.7
}'
È necessario sostituire $OPENAI_API_KEY
con la propria chiave API. Per motivi di sicurezza, evitare di esporre la propria chiave API in qualsiasi contesto pubblico.
1.2 Analisi degli Intestazioni della Richiesta
Nel comando CURL sopra, abbiamo utilizzato due intestazioni cruciali della richiesta: Content-Type
e Authorization
.
-
Content-Type
: Questo informa il server che stiamo inviando dati in formato JSON. Il suo valore è tipicamenteapplication/json
. -
Authorization
: Questa è la credenziale utilizzata per autenticare la richiesta API, e il suo formato è sempreBearer (tua chiave API)
.
Garantire la correttezza di queste due intestazioni è fondamentale per il successo della richiesta.
1.3 Costruzione del Corpo della Richiesta
Il corpo della richiesta è una stringa formattata in JSON che informa OpenAI sulle nostre intenzioni. In questa richiesta, utilizziamo model
per specificare il modello che stiamo utilizzando, passiamo un array messages
che definisce l'input dell'utente, e impostiamo un temperature
per regolare la variabilità della risposta.
Il JSON appare così:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Dì che questa è una prova!"}],
"temperature": 0.7
}
In questo esempio, stiamo richiedendo al modello di generare una risposta di prova basata sul messaggio di input.
1.4 Spiegazione Dettagliata dei Parametri della Richiesta
All'interno del corpo della richiesta, ci sono diversi parametri importanti da notare:
-
model
: Specifica il modello di intelligenza artificiale che intendiamo utilizzare. OpenAI fornisce molti modelli, ognuno con diverse funzionalità ed effetti. -
messages
: Questo è un array contenente uno o più oggetti di messaggio, con ciascun messaggio che consiste in unrole
che fornisce il ruolo del messaggio econtent
che rappresenta il contenuto del messaggio. -
temperature
: Controlla la certezza della risposta. Untemperature
più basso genera risposte più certe, mentre un valore più alto porta a più casualità.
2. Analisi delle Risposte dell'API
2.1 Comprensione della Risposta
Quando si invia una richiesta, il server restituirà un codice di stato HTTP e eventualmente un corpo della risposta. Tipicamente, una richiesta riuscita riceverà un codice di stato della serie 200. I dati JSON restituiti contengono il risultato della richiesta, e un esempio di risposta è il seguente:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-3.5-turbo-1106",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"choices": [
{
"message": {
"role": "assistente",
"content": "\n\nQuesta è una prova!"
},
"logprobs": null,
"finish_reason": "stop",
"index": 0
}
]
}
In questa risposta, possiamo vedere l'ID di completamento, il timestamp di creazione, il modello utilizzato, l'uso dei token e il contenuto effettivo della risposta (nel campo choices
).
2.2 Completezza e Gestione degli Errori
Il campo finish_reason
indica perché l'API ha smesso di produrre altro contenuto. I motivi comuni per la terminazione includono stop
, length
e idle
. Se si verifica un errore, come superare i limiti dei token o una chiave API incorretta, si riceverà il messaggio di errore corrispondente e il codice di stato. È importante gestire questi errori in modo appropriato per garantire la continuità dell'esperienza dell'utente e la stabilità dell'applicazione. Per la gestione degli errori, è possibile decidere una strategia di gestione degli errori appropriata in base al codice di stato restituito e al messaggio di errore, come ripetere la richiesta o fornire feedback all'utente spiegando il motivo dell'errore.
2.3 Invio delle richieste API utilizzando Python SDK
Di seguito è riportato un esempio di utilizzo dell'SDK ufficiale di OpenAI in Python per effettuare chiamate API.
Innanzitutto, è necessario installare la libreria openai, che può essere fatta utilizzando pip:
pip install --upgrade openai
Successivamente, è possibile utilizzare il seguente codice Python per effettuare una richiesta API simile all'esempio sopra. Ricorda di sostituire YOUR_OPENAI_API_KEY
con la tua chiave API.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Sei un assistente di sviluppo professionale, esperto nel risolvere vari problemi di programmazione."},
{"role": "user", "content": "Scrivi una funzione per quicksort in Go."}
]
)
print(completion.choices[0].message)