ChatGPT NodeJS: Guida e Snippet Rapidi per Sviluppatori
Introduzione
Vuoi integrare l’intelligenza artificiale nel tuo progetto Node.js? Con le ChatGPT API di OpenAI puoi creare chatbot, assistenti virtuali e generatori di codice in pochi passi. In questa guida vedremo come utilizzare ChatGPT NodeJS, dagli esempi di base alle funzionalità avanzate come Text-to-Speech, Vision e Image Generation. Partiamo!
Cosa vedremo:
- Come configurare il progetto Node.js e ottenere la chiave API.
- Esempi pratici per i casi d’uso principali.
- Capabilities avanzate per Vision, Audio e Image Generation.
1. Configurare il Progetto e Ottenere la Chiave API
1.1 Creare un progetto su OpenAI e ottenere la chiave API
- Vai su https://platform.openai.com/welcome?step=create e segui la procedura per ottenere la chiave API.
- È un processo semplice e guidato. Dovrai:
- Creare un account (se non l’hai già fatto).
- Configurare un metodo di pagamento, se richiesto.
- Generare la chiave API.
1.2 Creare il progetto, installare i package e configurare apiClient.js
In questa sezione, ti guiderò passo dopo passo nella creazione del progetto Node.js, nell’installazione dei package necessari e nella configurazione del file apiClient.js
per centralizzare la gestione delle richieste all’API di OpenAI.
Creare il progetto Node.js
- Apri il terminale e crea una nuova directory per il progetto:
mkdir chatgpt-node && cd chatgpt-node
- Inizializza un nuovo progetto Node.js:
Questo comando creerà un filenpm init -y
package.json
con le impostazioni predefinite.
Installare i package necessari
Per utilizzare OpenAI e gestire le variabili di ambiente, installa i seguenti package:
npm install openai dotenv
Struttura del progetto:
chatgpt-node/
├── .env # File per le variabili di ambiente
├── package.json # File di configurazione del progetto Node.js
├── main.js # File principale del progetto
└── utils/
└── apiClient.js # File per configurare e gestire le richieste all’API di OpenAI
apiClient.js:
Ecco il contenuto del file apiClient.js
:
const { OpenAI } = require('openai');
require('dotenv').config();
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
module.exports = openai;
Configurazione del file .env
:
Crea un file .env
nella root del progetto e aggiungi la tua chiave API:
OPENAI_API_KEY=la_tua_chiave_api
2. Esempi Principali: chat.completions.create
Questa sezione ti guida nell’uso di chat.completions.create
, la funzionalità principale delle ChatGPT API, per creare chatbot e gestire richieste in diversi scenari pratici.
1. Esempio di base (Chat semplice)
Questo esempio mostra come inviare un prompt semplice e ricevere una risposta diretta da ChatGPT.
const openai = require('./utils/apiClient'); // Importa la configurazione centralizzata per OpenAI
async function basicChat(prompt) {
try {
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: prompt }],
max_tokens: 200,
});
console.log("Risposta:", response.choices[0].message.content);
} catch (error) {
console.error("Errore:", error);
}
}
basicChat("Cos'è Node.js?");
2. Traduzione automatica
Utilizza ChatGPT per tradurre testi in diverse lingue in modo rapido e preciso.
async function translateText(text, targetLanguage) {
try {
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "system", content: "Sei un traduttore esperto. Traduci il testo nella lingua richiesta." },
{ role: "user", content: `Traduci questo testo in ${targetLanguage}: ${text}` }
],
max_tokens: 200,
});
console.log(`Traduzione (${targetLanguage}):`, response.choices[0].message.content);
} catch (error) {
console.error("Errore:", error);
}
}
translateText("Ciao, come stai?", "inglese");
3. Analisi del sentiment
Analizza il tono emotivo di un testo per capire se è positivo, negativo o neutro.
async function analyzeSentiment(text) {
try {
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "system", content: "Analizza il sentiment del seguente testo." },
{ role: "user", content: `Analizza il sentiment di questo testo: ${text}` }
],
max_tokens: 100,
});
console.log("Sentiment:", response.choices[0].message.content);
} catch (error) {
console.error("Errore:", error);
}
}
analyzeSentiment("Oggi è stata una giornata meravigliosa, mi sento davvero felice!");
4. Generatore di codice automatico
ChatGPT può aiutarti a scrivere codice e fornire spiegazioni dettagliate su come funziona.
async function generateCode(prompt) {
try {
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "system", content: "Sei un assistente per lo sviluppo software. Fornisci codice funzionante e spiegazioni chiare." },
{ role: "user", content: prompt }
],
max_tokens: 500,
});
console.log("Codice generato:", response.choices[0].message.content);
} catch (error) {
console.error("Errore:", error);
}
}
generateCode("Scrivi una funzione in Node.js per leggere un file JSON e restituire un oggetto.");
3. Capabilities Avanzate
Le capabilities avanzate delle API di OpenAI aprono infinite possibilità, come l’analisi delle immagini, la generazione di contenuti visivi e la gestione avanzata dell’audio, per offrire esperienze ancora più interattive e coinvolgenti. Ecco alcuni esempi:
1. Audio Generation (Text-to-Speech)
Converti un testo in un file audio utilizzando l’API Text-to-Speech di OpenAI.
const fs = require('node:fs');
const path = require('node:path');
const openai = require('./utils/apiClient');
const speechFile = path.resolve('./speech.mp3');
async function textToSpeech(text) {
try {
const response = await openai.audio.speech.create({
model: 'tts-1',
voice: 'alloy',
input: text,
});
const buffer = Buffer.from(await response.arrayBuffer());
await fs.promises.writeFile(speechFile, buffer);
console.log('Audio generato:', speechFile);
} catch (error) {
console.error('Errore nella generazione dell\'audio:', error);
}
}
textToSpeech('Ciao Luca, come stai?');
2. Vision (analisi immagini)
Analizza le immagini e ottieni descrizioni dettagliate del loro contenuto.
const openai = require('./utils/apiClient');
async function analyzeImage(imageUrl) {
try {
const response = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{
role: "user",
content: [
{ type: "text", text: "Cosa c'è in questa immagine?" },
{
type: "image_url",
image_url: {
"url": imageUrl,
},
},
],
},
],
store: true,
});
console.log('Descrizione dell\'immagine:', response.choices[0]);
} catch (error) {
console.error('Errore nell\'analisi dell\'immagine:', error);
}
}
analyzeImage("https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Winterswijk_%28NL%29%2C_Woold%2C_Boven_Slinge_--_2014_--_3170.jpg/1125px-Winterswijk_%28NL%29%2C_Woold%2C_Boven_Slinge_--_2014_--_3170.jpg");
3. Image Generation (generazione immagini)
Genera immagini da descrizioni testuali, ideali per contenuti creativi.
const openai = require('./utils/apiClient');
async function generateImage(prompt) {
try {
const response = await openai.images.generate({
prompt: prompt,
n: 1,
size: '1024x1024'
});
console.log('URL immagine:', response.data[0].url);
} catch (error) {
console.error('Errore nella generazione dell\'immagine:', error);
}
}
generateImage("Un gatto che vola nello spazio con occhiali da sole.");
Conclusione
Questa guida ti offre una panoramica sulle ChatGPT API in Node.js, partendo dagli esempi principali (chat.completions.create
) fino alle capabilities avanzate come Vision, Text-to-Speech, e Image Generation. Se desideri approfondire ulteriormente queste funzionalità, puoi consultare la documentazione ufficiale nelle risorse aggiuntive qui sotto.