Des de l'aparició de ChatGPT i Google Gemini, hem vist que moltes aplicacions es van llançar aprofitant aquests models. La tècnica s'anomena arbitratge, un mètode que pren una de les múltiples tasques que pot fer l'IA, la millora amb indicacions eficients i després la proporciona als clients com a característica.
Aquest article serà una guia pas a pas sobre com integrar el model Google Gemini a la nostra aplicació Node.js. Veurem com utilitzar tant Gemini-pro que gestiona el text generatiu com Gemini-pro-vision que gestiona imatges.
Primer començarem configurant el projecte i després l'utilitzarem en un exemple propi.
Requisits
-
Node.js versió 18+
-
Compte de Google AI Platform per obtenir la nostra clau d'API
Primers passos
Primer, creeu un nou projecte Node.js dins d'una carpeta buida:
mkdir gemini-node
cd gemini-node
npm init -y
Ara, instal·larem els paquets necessaris per al fitxer d'entorn i el Gemini SDK:
npm install dotenv @google/generative-ai
Configuració de la clau de l'API
A la vostra plataforma Google AI, feu clic al botó Obtén la clau de l'API per obtenir la clau de l'API i deseu-la al fitxer d'entorn (.env) al directori arrel:
API_KEY=YOUR_GEMINI_KEY
Creeu una nova carpeta lib i creeu-hi un fitxer config.js i, per al següent pas, exportarem la nostra clau de l'API:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Configuració de Gemini SDK
En aquest pas, configurarem els nostres models perquè puguem utilitzar-los al nostre codi. Dins de la nostra carpeta lib, creem 2 fitxers, gemini.js per a la gestió de text i gemini-vision.js per a la gestió d'imatges.
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 };
Utilitzarem la funció exportada per generar text des d'una sol·licitud. El podem utilitzar per crear un sistema de xat, traducció de text i molts més casos d'ús.
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 };
Utilitzarem la funció exportada per generar text a partir d'una imatge.
Creació de l'aplicació
Creeu un fitxer index.js nou i enganxeu aquest codi:
const main = async () => {
console.log("Hello world!");
};
main();
Ara, podem importar les nostres funcions exportades i utilitzar-les per generar text, ja sigui a partir d'una pregunta o d'una imatge.
La funció pren una ruta de fitxer com a argument, de manera que haureu d'afegir un fitxer d'imatge a la carpeta del vostre projecte per provar-ho.
El nostre codi es convertirà en:
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();
Què passa
Ara, podeu utilitzar ExpressJS per crear una API en lloc d'un script. També podeu investigar sobre les millors pràctiques per escriure sol·licituds per als vostres casos d'ús.
Aquests són alguns exemples d'aplicacions que podeu crear:
-
Generador de metadades de SEO mitjançant API Unsplash
-
Reprendre el revisor afegint un script addicional que obté contingut del PDF
-
Escriptor de bio d'Instagram a partir d'una imatge
T'interessa crear millors aplicacions? Uniu-vos al nostre bootcamp de desenvolupament web i apreneu a crear un producte totalment funcional!