L’autore ha selezionato il Programma Direct Relief per ricevere una donazione come parte del programma Scrivere per le Donazioni.
Introduzione
I modelli OpenAI GPT hanno guadagnato popolarità grazie al loro ampio utilizzo nella generazione di contenuti testuali per vari compiti come la stesura di email, la risposta alle FAQ del servizio clienti e la traduzione linguistica, per citarne alcuni.
Questi modelli GPT sono generalmente utilizzati tramite ChatGPT, un chatbot rilasciato da OpenAI, o tramite API e librerie che forniscono un maggiore controllo. Questo tutorial ti guiderà nell’utilizzo di questi modelli utilizzando l’API OpenAI all’interno del tuo progetto web Django. Imparerai come chiamare l’API ChatCompletion utilizzando diversi parametri e come formattare e utilizzare le sue risposte.
Alla fine di questo tutorial, avrai creato un endpoint Django che, quando chiamato, invia una richiesta a OpenAI per costruire una breve storia utilizzando le parole fornite e restituisce la sua risposta.
Prerequisiti Per completare questo tutorial, avrai bisogno di:
Per completare questo tutorial, avrai bisogno:
-
Un progetto Django esistente. Se stai partendo da zero, puoi configurare un progetto Django seguendo il tutorial su come configurare un ambiente di sviluppo Django.
-
Un account OpenAI: Vai al sito web della piattaforma OpenAI e cerca il pulsante ‘Registrati’. Dopo esserti registrato, devi verificare la tua email e inserire informazioni personali.
-
Una chiave API OpenAI: Una volta configurato l’account, accedi e naviga nella sezione API Keys dal tuo dashboard. Fai clic su ‘Crea nuova chiave segreta’. La tua chiave API verrà generata e avrà un aspetto simile a
sk-abcdefghijklmnop
. Assicurati di salvarla in un luogo sicuro, poiché non sarai in grado di vederla di nuovo. -
Il pacchetto Python di OpenAI: Se hai seguito il tutorial nel primo prerequisito, dovresti già avere un ambiente virtuale chiamato
env
attivo all’interno di una directory chiamatadjango-apps
. Assicurati che il tuo ambiente virtuale sia attivo confermando che il suo nome appaia tra parentesi all’inizio del prompt del tuo terminale. Se non è attivo, puoi attivarlo manualmente eseguendo il comando:
Nel tuo terminale dalla directory django-apps
. Una volta che il tuo ambiente è attivo, esegui quanto segue per installare il pacchetto Python di OpenAI:
Passo 1 — Effettuare chiamate a OpenAI
In questo passaggio, aggiungerai la tua chiave API di OpenAI al client di OpenAI e effettuerai una semplice chiamata API all’API di ChatCompletion. Esaminerai anche la risposta che ricevi dall’API.
Per iniziare, apri il tuo interprete Python:
Prima di tutto, importa il client di OpenAI e aggiungi la tua chiave API al client:
Sostituisci "your-api-key"
con la chiave API effettiva che hai ottenuto dalla piattaforma OpenAI.
Ora, effettuiamo una chiamata API all’API di ChatCompletion. Utilizza il metodo chat.completions.create()
:
Nel codice sopra, abbiamo specificato il modello da utilizzare come gpt-3.5-turbo
, aggiunto un singolo oggetto messaggio contenente il ruolo utente
(le altre opzioni sono sistema
e assistente
) e il contenuto / prompt conta da 1 a 10
.
Per vedere la risposta dalla chiamata API, puoi stampare il messaggio di risposta, che dovrebbe contenere i numeri da 1 a 10 in un bel piccolo elenco:
Output:
Congratulazioni! Hai effettuato con successo una semplice chiamata API a OpenAI e hai recuperato una risposta. Formatteremo e utilizzeremo la risposta dell’API per creare una breve storia nei prossimi passaggi.
Passaggio 2 — Lavorare con i parametri
Ora che hai effettuato con successo una semplice chiamata API all’API di ChatCompletion, esploriamo come lavorare con i parametri per personalizzare il comportamento del modello. Ci sono diversi parametri disponibili che ti consentono di controllare la generazione del testo. Daremo un’occhiata ai tre seguenti.
1. Temperatura: Il parametro temperatura determina quanto casuale sia il contenuto generato. Un valore di temperatura più alto, come 0.8, darà risposte più diverse e creative, mentre un valore di temperatura più basso, come 0.1, produrrà risposte più simili. Ad esempio:
Proviamo nuovamente temperatura=0.1
per vedere il testo appena generato:
Il testo è risultato essere lo stesso. Ora, proviamo temperatura=0.8
due volte:
2. Massimo token: Questo ti consente di limitare la lunghezza del testo generato. Impostando un valore specifico si assicura che la risposta non superi un certo numero di token. I token sono proporzionali al numero di parole nella risposta. Ad esempio:
Cambiando il valore a 20:
3. Stream: Questo determina se le risposte devono essere trasmesse in streaming o restituite. Quando impostato su True
, la risposta dell’API verrà trasmessa in streaming, il che significa che riceverai l’output a pezzi man mano che viene generato. Questo è utile per conversazioni lunghe o applicazioni in tempo reale. Per abilitare lo streaming, aggiungi il parametro stream
con un valore di True
alla chiamata API. Ad esempio:
Nel codice sopra, la variabile chunk_message
contiene il contenuto del messaggio in ciascun frammento restituito dall’API. Prima di aggiungerlo alla lista collected_messages
, verifichiamo se il frammento è None
poiché il contenuto del frammento finale è di solito None
.
Utilizzando questi parametri è possibile personalizzare il comportamento del modello e controllare le risposte generate per adattarle meglio alla propria applicazione o progetto. Sperimentare con valori diversi per ottenere i risultati desiderati.
Nel prossimo passaggio, forniremo un contesto al modello sotto forma di prompt di sistema.
Passo 3 — Creazione di un prompt di sistema
In questo passaggio, combineremo tutte le informazioni apprese e creeremo un prompt di sistema che fornisce contesto al modello GPT, comunicandogli il suo scopo e specificando le sue regole.
Prima, creiamo un modulo Python contenente una funzione per gestire questo compito. Chiudere l’interprete e creare un nuovo file chiamato story_generator.py
nella directory del progetto Django.
Successivamente, è possibile aggiungere la chiave API di OpenAI alle variabili ambientali in modo da non aggiungerla direttamente al file Python:
Aprire story_generator.py
e al suo interno creare un client openai e definire una funzione chiamata generate_story
che accetta una raccolta di parole in input:
In questa funzione, chiamiamo una funzione separata, get_short_story
, per effettuare la chiamata all’API di OpenAI per la storia e poi un’altra funzione, format_response,
, per formattare la risposta dall’API.
Ora, concentriamoci sulla funzione get_short_story
. Aggiungi quanto segue in fondo al tuo file story_generator.py
:
In questa funzione, impostiamo innanzitutto il prompt di sistema, che informa il modello del compito che deve svolgere e specifica quanto lunga dovrebbe essere la storia. Passiamo quindi questo prompt di sistema all’API ChatCompletion e restituiamo la sua risposta.
Infine, possiamo implementare la funzione format_response
. Aggiungi quanto segue in fondo al tuo file story_generator.py
:
È possibile testare queste funzioni chiamando la funzione generate_story
, passando una collezione di parole come suo argomento e stampando la sua risposta. Aggiungi quanto segue alla fine del tuo file story_generator.py
:
Ora salva ed esci dal file. Esegui lo script per vedere la storia generata:
Output:
Piuttosto interessante! Eliminiamo la riga con l’istruzione print
poiché chiameremo la funzione generate_story
da una vista Django. Rimuovi la riga evidenziata dal tuo file story_generator.py
:
Sentiti libero di sperimentare con il prompt di sistema e aggiungere più contesto e regole per migliorare le storie generate.
Continua al passaggio successivo per integrare il modulo story_generator
nel tuo progetto Django.
Passo 4 – Integrazione con una vista back-end:
Devi creare una vista Django e un percorso URL per integrare il modulo story_generator
nel tuo progetto Django. Nella vista, estrarrai le parole previste dalla richiesta, chiamerai la funzione generate_story
e restituirai la risposta.
Per prima cosa, apri il file views.py
nella directory della tua app Django. Importa i moduli necessari e aggiungi una funzione di vista chiamata generate_story_from_words
:
Successivamente, aprire il file urls.py
e aggiungere un modello di URL per la vista generate_story_from_words
:
Ora è possibile richiedere il punto di accesso /generate-story/
. Ad esempio, per testare usando curl, è possibile effettuare una richiesta GET al punto di accesso con le parole attese come parametro di query. Aprire il terminale e eseguire il seguente comando:
Assicurarsi di sostituire "http://il_tuo_dominio"
con il dominio effettivo dove è ospitato il tuo progetto Django. Le parole "gatto,libro,computer,sole,acqua"
rappresentano le parole attese con cui si desidera generare una storia. È possibile cambiarle con qualsiasi parole si preferisca.
Dopo aver eseguito il comando, si dovrebbe vedere la risposta dal server, che conterrà la storia generata:
Output:
Conclusione
Dopo aver completato questo tutorial, hai imparato come integrare i modelli OpenAI GPT nel tuo progetto Django utilizzando l’API OpenAI. Hai effettuato chiamate all’API ChatCompletion, personalizzato il comportamento del modello lavorando con parametri come temperatura e max token, e creato un prompt di sistema per fornire contesto al modello. Hai anche integrato il modulo story_generator
nel tuo progetto Django. Ora puoi generare brevi storie richiedendo il punto di accesso /generate-story/
con le parole attese come parametro di query.
Per migliorare ulteriormente il tuo progetto Django, puoi esplorare funzionalità aggiuntive dell’API OpenAI e sperimentare con diversi prompt di sistema e parametri per generare storie uniche e creative.