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:

  1. Come configurare il progetto Node.js e ottenere la chiave API.
  2. Esempi pratici per i casi d’uso principali.
  3. 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

  1. Vai su https://platform.openai.com/welcome?step=create e segui la procedura per ottenere la chiave API.
  2. È 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

  1. Apri il terminale e crea una nuova directory per il progetto:
    mkdir chatgpt-node && cd chatgpt-node
  2. Inizializza un nuovo progetto Node.js:
    npm init -y
    Questo comando creerà un file 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.

Risorse aggiuntive


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna in alto