Odkar sta se pojavila ChatGPT in Google Gemini, smo videli veliko aplikacij, ki izkoriščajo ta modela. Tehnika se imenuje arbitraža, metoda, ki prevzame eno od več nalog, ki jih lahko opravi umetna inteligenca, jo izboljša z učinkovitimi pozivi in jo nato ponudi strankam kot funkcijo.
Ta članek bo vodnik po korakih o tem, kako integrirati model Google Gemini v našo aplikacijo Node.js. Videli bomo, kako uporabljati Gemini-pro, ki obravnava generativno besedilo, in Gemini-pro-vision, ki obravnava slike.
Začeli bomo s postavitvijo projekta, nato pa ga uporabili na lastnem primeru.
Zahteve
-
Node.js različica 18+
-
Račun Google AI Platform za pridobitev ključa API-ja
Kako začeti
Najprej ustvarite nov projekt Node.js v prazni mapi:
mkdir gemini-node
cd gemini-node
npm init -y
Zdaj bomo namestili potrebne pakete za okoljsko datoteko in Gemini SDK:
npm install dotenv @google/generative-ai
Nastavitev ključa API
Na vaši platformi Google AI kliknite gumb Pridobi ključ API, da dobite ključ API, nato pa ga shranite v datoteko okolja (.env) v korenskem imeniku:
API_KEY=YOUR_GEMINI_KEY
Ustvarite novo mapo lib in v njej ustvarite datoteko config.js, nato pa bomo za naslednji korak izvozili naš ključ API:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Nastavitev Gemini SDK
V tem koraku bomo nastavili naše modele, da jih bomo lahko uporabili v naši kodi. Znotraj naše mape lib ustvarimo 2 datoteki, gemini.js za obdelavo besedila in gemini-vision.js za obdelavo slik.
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 };
Izvoženo funkcijo bomo uporabili za ustvarjanje besedila iz poziva. Uporabimo ga lahko za izgradnjo sistema za klepet, prevajanje besedila in številne druge primere uporabe.
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 };
Izvoženo funkcijo bomo uporabili za ustvarjanje besedila iz slike.
Gradnja aplikacije
Ustvarite novo datoteko index.js in prilepite to kodo:
const main = async () => {
console.log("Hello world!");
};
main();
Zdaj lahko uvozimo naše izvožene funkcije in jih uporabimo za ustvarjanje besedila iz vprašanja ali slikovnega poziva.
Funkcija vzame pot datoteke kot argument, zato boste morali dodati slikovno datoteko v mapo projekta, da jo preizkusite.
Naša koda se bo pretvorila v:
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();
Kaj je naslednje
Zdaj lahko uporabite ExpressJS za izdelavo API-ja namesto skripta. Prav tako lahko raziščete najboljše prakse pri pisanju pozivov za vaše primere uporabe.
To je nekaj primerov aplikacij, ki jih lahko ustvarite:
-
Generator meta podatkov SEO z Unsplash API
-
Recenzent nadaljevanja z dodajanjem dodatnega skripta, ki pridobi vsebino iz PDF-ja
-
Instagram biografski pisec iz slike
Vas zanima ustvarjanje boljših aplikacij? Pridružite se našemu zagonskemu kampu za spletni razvoj in se naučite sestaviti popolnoma funkcionalen izdelek!