Ti stai chiedendo come integrare ChatGPT tramite API REST http in una applicazione? Vorresti capire meglio cos'è e come funziona ChatGPT?
Allora seguimi in questo articolo nel quale vedremo insieme cos'è ChatGPT e come integrarlo in una applicazione usando le API RESTful messe a disposizione da OpenAI.
I contenuti dell'articolo
Cos'è ChatGPT
ChatGPT è senza ombra di dubbio il “fenomeno” del momento, sul web, sui social ed al “Bar” non si parla di altro.
Ma cos'è davvero ChatGPT e perché ha suscitato cosi tanto interesse sia tra gli addetti del Marketing e della comunicazione Web che tra le persone meno tecniche?
Dunque, ChatGPT è un sistema di chatbot basato su un modello di linguaggio generativo pre-addestrato (GPT : Generative Pre-trained Transformer).
GPT è un modello di linguaggio sviluppato da OpenAI che è stato addestrato su una grande quantità di testo presente su Internet per imparare a generare testo che suona “umano“.
ChatGPT utilizza il modello GPT per rispondere ai messaggi di testo inviati da un utente e continuare una conversazione in modo naturale.
Il modello GPT è stato addestrato su una vasta gamma di testi, quindi ChatGPT è in grado di parlare di molti argomenti diversi e può essere utilizzato in molti contesti diversi. Ad esempio, ChatGPT può essere utilizzato come chatbot per il supporto clienti, come assistente virtuale per rispondere alle domande degli utenti o come compagno di conversazione per intrattenere gli utenti.
ChatGPT è stato progettato per essere facile da usare e facilmente integrabile in un'applicazione.
È possibile utilizzare l'API di OpenAI per inviare richieste HTTP POST a un endpoint specifico per ottenere una risposta dal modello di linguaggio e integrare ChatGPT in un'applicazione Web o mobile.
Se invece stai cercando i migliori plugin wordpress per ChatGPT allora ti consiglio questo mio articolo 👇
Quali sono le differenze tra ChatGPT e OpenAI
ChatGPT è un sistema di chatbot basato su un modello di linguaggio generativo pre-addestrato (GPT) sviluppato da OpenAI.
OpenAI è un'organizzazione di ricerca senza scopo di lucro che si occupa di intelligenza artificiale (IA), fondata nel 2015 da Elon Musk e su cui sta investendo tantissimo anche Microsoft, la quale ha sviluppato diversi modelli di linguaggio, tra cui il modello GPT utilizzato in ChatGPT.
Quindi, in sintesi, ChatGPT è un sistema di chatbot che utilizza il modello di linguaggio GPT sviluppato da OpenAI mentre OpenAI è l'organizzazione che ha sviluppato il modello GPT e si occupa di ricerca sull'Intelligenza Artificiale.
Integrare ChatGPT: Modelli e Token
Prima di vedere come integrare ChatGPT (o meglio i modelli di OpenAI) in una applicazione è bene far chiarezza su due concetti fondamentali legati alle funzionalità di OpenAI ossia modelli e token.
I modelli di OpenAI sono algoritmi di intelligenza artificiale che vengono utilizzati per eseguire diverse attività, come il riconoscimento del linguaggio, la traduzione, la scrittura di testi e il gioco.
Mentre i token sono piccole unità di testo che vengono utilizzate nei modelli di linguaggio di OpenAI per rappresentare le parole e le frasi e che consente agli sviluppatori di accedere ai servizi forniti dalla piattaforma OpenAI.
Quindi i modelli OpenAI comprendono ed elaborano il testo scomponendolo in token (parole o pezzi di caratteri)
In sintesi i modelli determinano la caratteristica e la qualità della risposta, mentre i token determinano il “peso” e quindi il costo dell'elaborazione.
I modelli di OpenAI
OpenAI – la società che si occupa di Intelligenza Artificiale – ha implementato non solo il modello GPT, ma anche altri modelli di intelligenza artificiale, organizzati in famiglie di modelli, utilizzati per generare risposte diverse e complesse.
Alcune delle famiglie di modelli più note sono:
- GPT-3 – Un insieme di modelli in grado di comprendere e generare linguaggio naturale
- CodexLimited (beta) – Un insieme di modelli in grado di comprendere e generare codice, inclusa la traduzione del linguaggio naturale in codice
- Content filter – Un modello ottimizzato in grado di rilevare se il testo può essere sensibile o non sicuro
Ogni famiglia utilizza uno o più modelli con caratteristiche e costi specifici, ad esempio la famiglia di modelli GPT-3 è composta dai seguenti modelli:
- text-davinci-003 – Ultimo modello GPT-3 con maggiori potenzialità e caratteristiche. gestisce un output più lungo ed una migliore esecuzione delle istruzioni. Inoltre, supporta l'inserimento di completamenti all'interno del testo. (4.000 tokens – Addestrato con dati fino a giugno 2021)
- text-curie-001 – Molto capace, ma più veloce e dal costo inferiore rispetto a Davinci. (2.048 tokens – Addestrato con dati fino a Ottobre 2019)
- text-babbage-001 – Capace di compiti semplici, molto veloce ed a basso costo. (2,048 tokens – Addestrato con dati fino a Ottobre 2019)
- text-ada-001 – Capace di compiti molto semplici, di solito il modello più veloce della serie GPT-3 e il costo più basso. (2,048 tokens – Addestrato con dati fino a Ottobre 2019)
La famiglia di modelli CodexLimited (comunque derivati del GPT-3) sono in grado di comprendere e generare codice di programmazione. I loro dati di addestramento contengono sia il linguaggio naturale che miliardi di righe di codice pubblico addestrato con i sorgenti di GitHub.
Sono i migliori nel generare codice Python e molto competenti in molti altri linguaggi tra cui JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL e persino Shell.
Questi i modelli:
- code-davinci-002 Il modello Codex più capace ed efficente. Particolarmente bravo a tradurre il linguaggio naturale in codice. Oltre a completare il codice, supporta anche l' inserimento di completamenti all'interno del codice. (8.000 tokens – Addestrato con dati fino a giugno 2021)
- code-cushman-001 Potente quasi quanto Davinci Codex, ma leggermente più veloce. Questo vantaggio di velocità può renderlo preferibile per le applicazioni in real-time. Up to 2,048 tokens
Il GPT-3 ed in particolare text-davinci-003 e code-davinci-002 sono i modelli principali su cui si basa ChatGPT e che hanno permesso a questa applicazione di raggiungere in pochissimi giorni un interesse incredibile.
OpenAI ha realizzato e sta implementando moltissimi altri modelli e famiglie di modelli, questi alcuni esempi :
- DALL-E (Deep Artificial Linguistic Long-term Memory with Pre-training Extraction): un modello di linguaggio che può generare immagini a partire da descrizioni in testo.
- Transformer: un modello di linguaggio che è stato utilizzato per sviluppare molti altri modelli di OpenAI, come GPT e GPT-2.
- DQN (Deep Q-Network): un modello di apprendimento per il rinforzo che è stato utilizzato per addestrare un agente a giocare a numerosi giochi Atari.
- Roboschool: un framework open source che può essere utilizzato per lo sviluppo e l'addestramento di robot fisici e virtuali.
Questi sono solo alcuni dei modelli sviluppati da OpenAI, infatti la società continua a lavorare su nuovi modelli e ad espandere le capacità dei modelli esistenti.
Maggiori informazioni sui modelli di OpenAI a questo link.
I token di OpenAI
I token sono piccole unità di testo che vengono utilizzate nei modelli di linguaggio di OpenAI per rappresentare le parole e le frasi e che consente agli sviluppatori di accedere ai servizi forniti dalla piattaforma OpenAI.
Aiutano a limitare l'accesso ai servizi OpenAI ed a mantenere la sicurezza dei dati, possono essere generati da un account OpenAI ed essere utilizzati per eseguire le richieste API.
Possono essere generati in diverse modi a seconda del modello di linguaggio che viene utilizzato, ad esempio, la parola “hamburger” viene suddivisa nei token “ham“, “bur” e “ger“, mentre una parola breve e comune come “pera” è un singolo token.
Il numero di token elaborati in una determinata richiesta API dipende dalla lunghezza degli input e degli output.
Come regola generale approssimativa, 1 token è di circa 4 caratteri o 0,75 parole per il testo inglese, a questo link un semplice traduttore di testo in token.
Ogni token ha un costo diverso in base al modello, da qui si capisce come usare il giusto modello per la generazione di una risposta sia fondamentale anche per contenere i costi dell'integrazione.
Il modello prezzi di OpenAI è per 1.000 token, questi alcuni esempi:
Famiglia GPT-3
- Ada (più veloce) $0.0004 / 1K tokens
- Babbage $0.0005 / 1K tokens
- Curie $0.0020 / 1K tokens
- Davinci (più potente) $0.0200 / 1K tokens
Da ciò si capisce che per usare le API ed i servizi di OpenAI è necessario registrarsi e creare un account sul sito ufficiale di OpenAI.
Una volta registrato potrai usare i servizi OpenAI gratuitamente con delle limitazioni sul numero di chiamate orarie e sul numero di token generati (dollari spesi).
Qualora tu voglia utilizzare delle soglie più alte dovrai sottoscrivere la versione a pagamento inserendo la tua carta di credito e fornendo informazioni sulla tua attività.
Se verrai approvato come utente o azienda business ti verranno addebitati solo i costi eccedenti la soglia gratuita.
Contattami per una Consulenza
L'argomento è troppo tecnico? Vorresti integrare ChatGPT ma non hai le competenze per realizzarlo?
Se vuoi approfondire l‘argomento e ti serve un esperto in materia di integrazione tra applicazioni non esitare a contattarmi per una consulenza.
Fissa subito un appuntamento gratuito di 30 minuti, potremo conoscerci meglio e verificare come collaborare!
Come Integrare ChatGPT tramite API REST o Librerie
Per integrare ChatGPT in un'applicazione è possibile utilizzare le API Rest ufficiali di OpenAI la cui documentazione è disponibile sul loro sito oppure le librerie sviluppate sia da OpenAI (librerie ufficiali node e pyton) che da altri contributori (librerie non ufficiali per altri linguaggi di programmazione).
Le API Rest di OpenAI permettono di inviare richieste HTTP GET e POST ad un endpoint specifico per ottenere una risposta dal modello di linguaggio scelto.
Registrati su OpenAI
Per usare le API, le librerie e più in generale i servizi di OpenAI è necessario registrarsi e creare un account sul sito loro ufficiale.
Puoi registrarti accedendo alla sezione API del loro website, dovrai fornire informazioni sulla tua attività e sul modo con il quale intendi utilizzare la piattaforma.
Una volta registrato potrai accedere alla tua dashboard personalizzata e monitorare in numero ed il costo delle chiamate effettuate.
Genera la tua chiave API
Per utilizzare le API oltre ad essere un utente registrato dovrai generare una chiave di accesso dal sito web di OpenAI.
Per richiedere una chiave API accedi al portale con le tue credenziali e poi vai alla sezione “View API Keys”
Ora clicca sul bottone “Create new secret key”
Scrivi in un posto sicuro la tua chiave appena generata e non condividerla mai con nessuno.
Una volta ottenuta la chiave API, potrai inviare richieste all'API utilizzando chiamate REST HTTP dirette (Es cURL) oppure una libreria come requests
in Python o openai
in node.js, ma considera che esistono librerie (non ufficiali) per qualsiasi linguaggio compreso Java, php e C#.
Maggiori informazioni sulle librerie sono disponibili a questo link.
In questo articolo vedremo insieme come interrogare le API di OpenAI tramite cURL (riga di comando/postman) e usando la libreria node.js ufficiale.
Per invocare le api http tramite cURL non dovrai installare alcuna libreria, mentre per usare le funzionalità di openai in un progetto node.js dovrai installare la libreria node “openai”
Installa la libreria node “openai”
Apri il tuo editor preferito per lo sviluppo software in node (io utilizzo VSCode) e crea un nuovo file app.js
Dal terminale di VScode lancia il comando
npm install openai
Verifica che sia installata la libreria di openai
Ora potrai iniziare ad interrogare gli endpoint di OpenAI.
Fai la prima chiamata http
Come primo esempio il mio consiglio è quello di fare una semplice interrogazione per ottenere i modelli disponibili in piattaforma invocando una api REST http GET
Accedi al tuo profilo alla sezione Organization > Settings
E copia il valore Organization-ID (ha una forma del tipo org-XXXXXXXXX)
Apri il terminale e copia la stringa seguente per effettuare la chiamata tramite cURL
curl https://api.openai.com/v1/models \ -H 'Authorization: Bearer YOUR_API_KEY' \ -H 'OpenAI-Organization: YOUR_ORG_ID'
Sostituisci al posti di YOUR_API_KEY la tua chiave API e YOUR_ORG_ID il tuo id organizzazione.
Per semplificarti la vita potresti utilizzare anche l'applicazione postman, una applicazione web o desktop che ti permette di invocare endpoint REST http attraverso una intuitiva e semplice interfaccia utente.
Mentre questo il codice da inserire nel file app.js per la chiamata in node
import { Configuration, OpenAIApi } from "openai"; const configuration = new Configuration({ organization: "org-VNDAtbV9fdEjEDMt3DPn0XCc", apiKey: process.env.OPENAI_API_KEY, }); const openai = new OpenAIApi(configuration); const response = await openai.listEngines();
Verifica di utilizzare le ultime versioni di node.js e npm.
Simula una chiamata di “completamento” come ChatGPT
Per effettuare una chiamata http e simulare la response (il risultato) di ChatGPT dovrai invocare l'endpoint “completion” tramite POST http, specificando il modello da utilizzare (es text-davinci-003) più una serie di altri parametri ed attributi nel body della richiesta.
La stringa di testo per effettuare la chiamata cURL da riga di comando sarà simile alla seguente:
curl https://api.openai.com/v1/completions \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -d '{ "model": "text-davinci-003", "prompt": "Che modello usa ChatGPT", "max_tokens": 4000, "temperature": 0.8, "top_p": 1, "frequency_penalty": 0, "presence_penalty": 0 }'
Che tradotto in postman equivale alla seguente chiamata http:
Ricorda di inserire anche i parametri nell'header della chiamata, per cui aggiungi:
Questo un esempio di risposta in postman
mentre l'equivalente codice in node.js è cosi rappresentato
const { Configuration, OpenAIApi } = require("openai"); const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY, }); const openai = new OpenAIApi(configuration); const response = await openai.createCompletion({ model: "text-davinci-003", prompt: "Che modello usa ChatGPT", max_tokens: 4000, temperature: 0.8, top_p: 1, frequency_penalty: 0, presence_penalty: 0 });
Questi sono solo alcuni semplici esempi, ma sul portale di OpenAI dedicato alle API Rest ed alle librerie puoi trovare moltissimi altri esempi ed una ampia documentazione online sia per le chiamate tramite cURL che in node oltre e soprattutto in Pyton che è linguaggio di programmazione meglio integrato e di riferimento per OpenAI.
Ricorda che trattandosi di API Rest http sarà semplicissimo integrarle all'interno di una qualsiasi applicazione usando le moltissime librerie disponibili oppure sfruttando le capability native di ogni linguaggio di programmazione legate proprio al protocollo http.
La video recensione
Se preferisci puoi vedere la mia video recensione su come integrare ChatGPT in una applicazione
Conclusioni
Se ti stavi chiedendo come integrare ChatGPT tramite API http in una applicazione spero di aver risposto alla tua domanda.
In questo articolo abbiamo visto insieme cos'è e come funziona ChatGPT, ma soprattutto ho cercato di porre un accento leggermente più tecnico sul concetto di integrazione.
🧐 Perché ho focalizzato la mia attenzione sull'integrazione?
Perché credo che da oggi saranno sempre più le aziende e quindi gli applicativi che cercheranno di integrarsi nativamente con ChatGPT ed i modelli di OpenAI per sfruttarne caratteristiche e funzionalità.
Quali ripercussioni avrà ChatGPT sulle professioni digitali
Ma quali saranno le reali implicazioni di questa tecnologia? Ci saranno davvero ricadute (sia in positivo che in negativo) sul mondo delle professioni digitali legate all'Intelligenza Artificiale?
Io credo che questo sia stato solo il primissimo tassello di un tecnologia che rivoluzionerà il settore.
Al grande pubblico è arrivato solo in questo periodo, sollevando un controverso dibattito su arte, proprietà intellettuale, diritto sulle immagini, copy, sviluppo e scrittura del codice di programmazione da linguaggio naturale.
Io credo che come tutti i cambiamenti epocali (perché è già un cambiamento epocale) sarà necessario viverlo e saperlo sfruttare al meglio, potrebbe aprire incredibili innovazioni e potrebbe dare linfa vitale a tutto il settore tech e digitale.
Altrimenti, chiudendoci a riccio, rischieremmo di fare tutti la fine di Nokia, speriamo solo di non essere noi e le nostre professioni quelli che verranno tagliate fuori dal mercato del futuro.
Forse una riflessione più profonda sul tema andrà affrontata, da tutti, macchine escluse.
E tu? che ne pensi di questa tecnologia e delle implicazioni che potrebbe avere nel settore tech? Hai già usato e/o integrato ChatGPT nelle tue applicazioni?
👉 Parliamo insieme nei commenti!
2 commenti
Buongiorno Alessandro, molto interessante. Sono anche io alle prese con qualcosa di molto simile.
Ho costruito un voicebot che vorrei integrare nel mio sito web. Non essendo un chatbot non ho a disposizione delle stringe script per una procedura di installazione tipo “enbedd widget”. Ho invece il codice del voicebot sotto forma di curl/node.js/python.
A funzionare, funziona tutto…dal voicebot, alla chiamata api sul sito WordPress….ma ancora non sono riuscita a integrare il tutto in una pagina web del mio sito in modo che il cliente finale abbia proprio davanti a sé il voicebot così come l’ho creato, per poterci interagire.
Ha qualche dritta da darmi?
Grazie mille!
Ciao Stefania,
scusa per il ritardo nella risposta ma sono stato impegnato.
Per rispondere alla tua domanda dovrei avere qualche informazione in più, trattandosi di codice custom non riesco a fornirti una risposta cosi su due piedi ed andrebbe analizzato il codice software.
Ciao