Desde a aparición de ChatGPT e Google Gemini, vimos que se lanzaron moitas aplicacións aproveitando estes modelos. A técnica chámase arbitraxe, un método que toma unha das múltiples tarefas que pode facer a IA, realízaa con indicacións eficientes e, a continuación, ofrécelle aos clientes como función.
Este artigo será unha guía paso a paso sobre como integrar o modelo Google Gemini na nosa aplicación Node.js. Veremos como usar tanto Gemini-pro que manexa texto xerativo como Gemini-pro-vision que manexa imaxes.
Comezaremos primeiro configurando o proxecto, e despois utilizalo nun exemplo propio.
Requisitos
-
Node.js versión 18+
-
Conta Google AI Platform para obter a nosa clave API
Comezando
Primeiro, crea un novo proxecto Node.js dentro dun cartafol baleiro:
mkdir gemini-node
cd gemini-node
npm init -y
Agora, instalaremos os paquetes necesarios para o ficheiro de ambiente e o SDK Gemini:
npm install dotenv @google/generative-ai
Configuración da chave API
Na túa plataforma de AI de Google, fai clic no botón Obter clave API para obter a clave API e despois gárdaa no ficheiro do teu contorno (.env) no directorio raíz:
API_KEY=YOUR_GEMINI_KEY
Cree un novo cartafol lib e cree un ficheiro config.js dentro del, a continuación, para o seguinte paso, exportaremos a nosa clave API:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Configuración do SDK Gemini
Neste paso, configuraremos os nosos modelos para que poidamos utilizalos no noso código. Dentro do noso cartafol lib, creemos 2 ficheiros, gemini.js para manexar texto e gemini-vision.js para xestionar imaxes.
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 };
Usaremos a función exportada para xerar texto a partir dunha solicitude. Podemos usalo para construír un sistema de chat, tradución de texto e moitos máis casos de 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 };
Usaremos a función exportada para xerar texto a partir dunha imaxe.
Creando a aplicación
Crea un novo ficheiro index.js e pega este código:
const main = async () => {
console.log("Hello world!");
};
main();
Agora, podemos importar as nosas funcións exportadas e usalas para xerar texto, xa sexa a partir dunha pregunta ou dunha imaxe.
A función toma un camiño de ficheiro como argumento, polo que terás que engadir un ficheiro de imaxe ao cartafol do teu proxecto para probalo.
O noso código converterase 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();
Que segue
Agora podes usar ExpressJS para crear unha API en lugar dun script. Tamén podes investigar sobre as mellores prácticas para escribir solicitudes para os teus casos de uso.
Estes son algúns exemplos de aplicacións que podes crear:
-
Xerador de metadatos de SEO usando Unsplash API
-
Reanude o revisor engadindo un script adicional que obtén contido de PDF
-
Escritor de biografía de Instagram a partir dunha imaxe
Estás interesado en crear mellores aplicacións? Únete ao noso bootcamp de desenvolvemento web e aprende a crear un produto totalmente funcional!