Dalla comparsa di ChatGPT e Google Gemini, abbiamo visto il lancio di molte app che sfruttano questi modelli. La tecnica si chiama arbitraggio, un metodo che prende uno dei molteplici compiti che l’intelligenza artificiale può svolgere, lo migliora con suggerimenti efficienti e quindi lo fornisce ai clienti come funzionalità.
Questo articolo sarà una guida passo passo su come integrare il modello Google Gemini nella nostra applicazione Node.js. Vedremo come utilizzare sia Gemini-pro che gestisce il testo generativo, sia Gemini-pro-vision che gestisce le immagini.
Inizieremo prima impostando il progetto e poi utilizzarlo su un nostro esempio.
Requisiti
-
Node.js versione 18+
-
Account Google AI Platform per ottenere la nostra chiave API
Iniziare
Innanzitutto, crea un nuovo progetto Node.js all'interno di una cartella vuota:
mkdir gemini-node
cd gemini-node
npm init -y
Ora installeremo i pacchetti richiesti per il file di ambiente e Gemini SDK:
npm install dotenv @google/generative-ai
Configurazione della chiave API
Sulla tua piattaforma Google AI, fai clic sul pulsante Ottieni chiave API per ottenere la chiave API, quindi salvala nel file di ambiente (.env) nella directory principale:
API_KEY=YOUR_GEMINI_KEY
Crea una nuova cartella lib e crea un file config.js al suo interno, quindi per il passaggio successivo esporteremo la nostra chiave API:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Configurazione dell'SDK Gemini
In questo passaggio, configureremo i nostri modelli in modo da poterli utilizzare nel nostro codice. All'interno della nostra cartella lib, creiamo 2 file, gemini.js per la gestione del testo e gemini-vision.js per la gestione delle immagini.
1- Google Gemini Pro
const { GoogleGenerativeAI } = require("@google/generative-ai");
const { API_KEY } = require("./config");
const googleAI = new GoogleGenerativeAI(API_KEY);
const geminiConfig = {
temperature: 0.9,
topP: 1,
topK: 1,
maxOutputTokens: 4096,
};
const geminiModel = googleAI.getGenerativeModel({
model: "gemini-pro",
geminiConfig,
});
const generateText = async (prompt) => {
try {
const result = await geminiModel.generateContent(prompt);
const response = result.response;
return response.text();
} catch (error) {
console.log("response error", error);
}
};
module.exports = { generateText };
Utilizzeremo la funzione esportata per generare testo da un prompt. Possiamo usarlo per creare un sistema di chat, traduzione di testi e molti altri casi d'uso.
2- Google Gemini Vision
const { GoogleGenerativeAI } = require("@google/generative-ai");
const { API_KEY } = require("./config");
const fs = require("fs");
const googleAI = new GoogleGenerativeAI(API_KEY);
const geminiConfig = {
temperature: 0.4,
topP: 1,
topK: 32,
maxOutputTokens: 4096,
};
const geminiModel = googleAI.getGenerativeModel({
model: "gemini-pro-vision",
geminiConfig,
});
const interactWithImage = async (filePath) => {
try {
const imageFile = fs.readFileSync(filePath);
const imageBase64 = imageFile.toString("base64");
const promptConfig = [
{ text: "Generate a caption from this image" },
{
inlineData: {
mimeType: "image/jpeg",
data: imageBase64,
},
},
];
const result = await geminiModel.generateContent({
contents: [{ role: "user", parts: promptConfig }],
});
return result.response.text();
} catch (error) {
console.log("response error", error);
}
};
module.exports = { interactWithImage };
Utilizzeremo la funzione esportata per generare testo da un'immagine.
Creazione dell'app
Crea un nuovo file index.js e incolla questo codice:
const main = async () => {
console.log("Hello world!");
};
main();
Ora possiamo importare le nostre funzioni esportate e usarle per generare testo, da una domanda o da un'immagine.
La funzione accetta il percorso di un file come argomento, quindi dovrai aggiungere un file immagine alla cartella del progetto per testarlo.
Il nostro codice verrà convertito in:
const { generateText } = require("./lib/gemini");
const { interactWithImage } = require("./lib/gemini-vision");
const path = require("path");
const main = async () => {
// Text Generation
let textFromPrompt = await generateText(
"tell me about bootcamps in a sentence"
);
console.log(textFromPrompt);
// Caption Generation
const directoryName = path.join(__dirname, "fish.jpg");
let captionFromImage = await interactWithImage(directoryName);
console.log(captionFromImage);
};
main();
Qual è il prossimo passo?
Ora puoi utilizzare ExpressJS per creare un'API anziché uno script. Puoi anche ricercare le migliori pratiche per la scrittura di istruzioni per i tuoi casi d'uso.
Questi sono alcuni esempi di app che puoi creare:
-
Generatore di metadati SEO utilizzando API Unsplash
-
Riprendi il revisore aggiungendo uno script aggiuntivo che ottiene il contenuto dal PDF
-
Scrittore bio di Instagram da un'immagine
Sei interessato a creare app migliori? Partecipa al nostro bootcamp sullo sviluppo Web e scopri come creare un prodotto completamente funzionale!