Siden dukket opp ChatGPT og Google Gemini, har vi sett mange apper bli lansert som utnytter disse modellene. Teknikken kalles arbitrage, en metode som tar en av de mange oppgavene AI kan gjøre, forbedrer den med effektive meldinger, og deretter gir den til kundene som en funksjon.
Denne artikkelen vil være en trinn-for-trinn-veiledning for hvordan du integrerer Google Gemini-modellen i vår Node.js-applikasjon. Vi skal se hvordan du bruker både Gemini-pro som håndterer generativ tekst, og Gemini-pro-vision som håndterer bilder.
Vi starter først med å sette opp prosjektet, og deretter bruke det på et eget eksempel.
Krav
-
Node.js versjon 18+
-
Google AI Platform konto for å få API-nøkkelen vår
Starter
Først oppretter du et nytt Node.js-prosjekt i en tom mappe:
mkdir gemini-node
cd gemini-node
npm init -y
Nå vil vi installere de nødvendige pakkene for miljøfilen og Gemini SDK:
npm install dotenv @google/generative-ai
API-nøkkeloppsett
På Google AI-plattformen din, klikk på Hent API-nøkkel-knappen for å få API-nøkkelen, og lagre den i miljøfilen (.env) i rotkatalogen:
API_KEY=YOUR_GEMINI_KEY
Opprett en ny lib-mappe og lag en config.js-fil i den, og for neste trinn eksporterer vi API-nøkkelen vår:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK-oppsett
I dette trinnet vil vi sette opp modellene våre slik at vi kan bruke dem i koden vår. Inne i lib-mappen vår, la oss lage 2 filer, gemini.js for håndtering av tekst og gemini-vision.js for håndtering 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 vil bruke den eksporterte funksjonen til å generere tekst fra en ledetekst. Vi kan bruke det til å bygge et chat-system, tekstoversettelse og mange flere brukssaker.
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 vil bruke den eksporterte funksjonen til å generere tekst fra et bilde.
Bygger appen
Opprett en ny index.js-fil og lim inn denne koden:
const main = async () => {
console.log("Hello world!");
};
main();
Nå kan vi importere våre eksporterte funksjoner og bruke dem til å generere tekst, enten fra et spørsmål eller en bildeforespørsel.
Funksjonen tar en filbane som et argument, så du må legge til en bildefil i prosjektmappen for å teste den.
Koden vår konverteres til:
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();
Hva blir det neste
Nå kan du bruke ExpressJS til å bygge et API i stedet for et skript. Du kan også undersøke om beste fremgangsmåter for å skrive forespørsler for brukstilfellene dine.
Dette er noen eksempler på apper du kan bygge:
-
SEO-metadatagenerator ved hjelp av Unsplash API
-
Fortsett anmelder ved å legge til et ekstra skript som henter innhold fra PDF
-
Instagram bioskribent fra et bilde
Er du interessert i å bygge bedre apper? Bli med på vår nettutviklings-bootcamp og lær hvordan du bygger et fullt funksjonelt produkt!