Sedan ChatGPT och Google Gemini uppträdde har vi sett många appar lanseras som utnyttjar dessa modeller. Tekniken kallas arbitrage, en metod som tar en av de många uppgifterna AI kan göra, förbättrar den med effektiva uppmaningar och sedan tillhandahåller den till kunderna som en funktion.
Den här artikeln kommer att vara en steg-för-steg-guide om hur du integrerar Google Gemini-modellen i vår Node.js-applikation. Vi kommer att se hur man använder både Gemini-pro som hanterar generativ text och Gemini-pro-vision som hanterar bilder.
Vi börjar först med att sätta upp projektet och sedan använda det som ett eget exempel.
Krav
-
Node.js version 18+
-
Google AI Platform konto för att få vår API-nyckel
Komma igång
Skapa först ett nytt Node.js-projekt i en tom mapp:
mkdir gemini-node
cd gemini-node
npm init -y
Nu kommer vi att installera de nödvändiga paketen för miljöfilen och Gemini SDK:
npm install dotenv @google/generative-ai
API Key Setup
På din Google AI-plattform klickar du på knappen Hämta API-nyckel för att hämta API-nyckeln och sparar sedan den i din miljöfil (.env) i rotkatalogen:
API_KEY=YOUR_GEMINI_KEY
Skapa en ny lib-mapp och skapa en config.js-fil i den, och för nästa steg kommer vi att exportera vår API-nyckel:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK Setup
I det här steget kommer vi att ställa in våra modeller så att vi kan använda dem i vår kod. Inuti vår lib-mapp, låt oss skapa 2 filer, gemini.js för hantering av text och gemini-vision.js för hantering av bilder.
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 };
Vi kommer att använda den exporterade funktionen för att generera text från en prompt. Vi kan använda det för att bygga ett chattsystem, textöversättning och många fler användningsfall.
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 };
Vi kommer att använda den exporterade funktionen för att generera text från en bild.
Bygger appen
Skapa en ny index.js-fil och klistra in den här koden:
const main = async () => {
console.log("Hello world!");
};
main();
Nu kan vi importera våra exporterade funktioner och använda dem för att generera text, antingen från en fråga eller en bildprompt.
Funktionen tar en filsökväg som ett argument, så du måste lägga till en bildfil i din projektmapp för att testa den.
Vår kod kommer att konverteras till:
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();
Vad kommer härnäst
Nu kan du använda ExpressJS för att bygga ett API istället för ett skript. Du kan också söka efter bästa praxis för att skriva uppmaningar för dina användningsfall.
Det här är några exempel på appar du kan bygga:
-
SEO-metadatagenerator med Unsplash API
-
Återuppta granskare genom att lägga till ett extra skript som hämtar innehåll från PDF
-
Instagram bioskribent från en bild
Är du intresserad av att bygga bättre appar? Gå med i vårt bootcamp för webbutveckling och lär dig hur du bygger en fullt fungerande produkt!