Integra GPT-3 con il tuo bot di Oct8ne (in cinque minuti!)
GPT-3 (Generative Pre-trained Transformer version 3) è un modello di deep learning sviluppato da OpenAI (www.openai.com) focalizzato sull’elaborazione del linguaggio naturale, che è stato addestrato con una grande quantità d’informazioni ed è in grado di “capire” i testi che gli forniamo per rispondere a domande, classificare dati, rilevare intenzioni, riscrivere testi o tradurli in altre lingue, per citare alcune delle sue utilità.
Ecco cosa occorre fare per integrarlo con Oct8ne:
- Creare un account OpenAI e ottenere una chiave di accesso all’API.
- Modellare una conversazione nel configuratore di Oct8ne che chieda all’utente il testo di entrata al chat GPT3 e visualizzare la risposta utilizzando l’API OpenAI.
Vediamolo passo per passo:
1. Creare un account su OpenAI e ottenere una API key
Per accedere alle API di OpenAI, è sufficiente visitare il sito web di OpenAI all’indirizzo https://openai.com/api/ e registrarsi come utente. La registrazione è gratuita, ma è possibile utilizzare la piattaforma solo per un numero limitato di volte, dopodiché è necessario sottoscrivere un account a pagamento per continuare.
Dopo la registrazione, dobbiamo accedere al menu delle API key, dove utilizzeremo il pulsante “Crea una nuova secret key” per generare una nuova chiave di accesso API.
È necessario prendere nota di questa chiave perché la utilizzeremo in seguito.
2. Modellare la conversazione
Utilizzando il configuratore del bot di Oct8ne, creeremo una semplice conversazione, in cui chiederemo all’utente solo la domanda da fare al modello OpenAI GPT-3 e mostreremo la risposta, terminando la conversazione in quel momento.
Per farlo, utilizzeremo l’azione “Ask for data” del configuratore del bot per richiedere il testo all’utente. Le informazioni inserite saranno salvate nella variabile “query”:
Quindi, inseriamo un’azione “Richiesta HTTP” nella conversazione. Questa azione consente di inviare o richiedere informazioni da sistemi esterni che dispongono di un’API pubblica, come OpenAI.
L’azione “Richiesta HTTP” deve essere configurata con i seguenti aspetti di base:
- Il verbo deve essere “POST”.
- L’URL deve essere quello fornito da OpenAI per l’API, che in questo caso è “https://api.openai.com/v1/completions“.
- Per il corpo della richiesta dobbiamo selezionare l’opzione “application/json” e nell’area di testo utilizzare il seguente contenuto:
{
“model”: “text-davinci-003”,
“prompt”: “<var>consulta</var>”,
“temperature”: 0,
“max_tokens”: 300
}
I valori forniti indicano che il modello GPT-3 che utilizzeremo nella query è “text-davinci-003”, che è il più potente dei modelli di base generici pre-addestrati forniti da OpenAI. Ma potremmo utilizzare altri modelli disponibili, o anche modelli addestrati su misura, per coprire scenari più specifici.
Il prompt è il testo che invieremo all’API. Come si può vedere, in questo caso inseriamo il contenuto della variabile “query”, che è esattamente il punto in cui abbiamo memorizzato il testo inserito dall’utente.
Con il parametro “temperatura” regoliamo il grado di creatività o di casualità delle risposte del GPT-3. Possiamo indicare valori compresi tra zero e uno, dove zero darà risultati più prevedibili, mentre uno ci permetterà di restituire risposte più creative (anche se con maggiori probabilità di sbagliare).
Infine, “max_tokens” ci permette di limitare la dimensione delle risposte. Tenete presente che l’API OpenAI ha dei costi che dipendono dalla dimensione dei testi che inviamo e riceviamo, quindi questo è un modo per controllare i costi.
Una volta configurati questi punti, dobbiamo impostare altre due configurazioni nell’azione “Richiesta HTTP”:
- Nella sezione “Request Headers”, dobbiamo aggiungere un header chiamato “Authorization”, il cui valore deve essere la chiave d’uso dell’API che abbiamo precedentemente ottenuto dal sito web di OpenAI.
- Nella sezione “Response mapping”, dobbiamo aggiungere una mappatura in modo che la variabile “response” venga caricata con il contenuto del campo “choices[0].text” restituito dall’API.
Infine, dobbiamo mostrare il risultato all’utente. Si tratta solo di aggiungere un’azione “Chat” che includa il risultato ottenuto dall’API nell’interfaccia della conversazione (che sia WhatsApp web, Messenger, ecc.). Infine, collegheremo un’azione “End” in modo che la conversazione venga terminata in quel preciso momento, o tornare all’azione “Ask for data” per consentire all’utente di effettuare nuovamente una richiesta. Ne vedremo un esempio qui di seguito..
E questo è quanto! Se lanciamo il bot a questo punto, potremo vedere che è pronto a rispondere alle nostre domande, offrendo sempre risultati sorprendenti.
Un esempio piú completo
La conversazione che segue rispecchia sostanzialmente i passaggi descritti sopra, anche se abbiamo aggiunto un “wrapper” per rendere il risultato più professionale e interattivo per gli utenti. Iniziamo la conversazione salutando il visitatore e poi gli indichiamo la possibilità di inserire la domanda o di “terminare” per chiudere la chat.
Nel caso in cui l’interlocutore voglia concludere, è sufficiente condurre il flusso all’azione “Fine”, che chiude la conversazione. Altrimenti, utilizzeremo l’azione “HTTP Request” per inviare il testo inserito a OpenAI e attendere la risposta, che sarà memorizzata nella variabile “response”. Quindi, torneremo al punto di partenza per richiedere all’utente un altro testo di input, sempre fino a quando non verrà inserito il testo “fine”.
Lanciando il bot, potremo avere conversazioni interessanti come le seguenti: