A ChatGPT és a Google Gemini megjelenése óta számos olyan alkalmazást láthattunk, amely ezeket a modelleket használja ki. A technikát arbitrázsnak nevezik, amely egy olyan módszer, amely a mesterséges intelligencia számos feladatának egyikét veszi igénybe, hatékony promptokkal javítja, majd szolgáltatásként biztosítja az ügyfelek számára.
Ez a cikk egy lépésről lépésre bemutatja, hogyan integrálhatja a Google Gemini modellt a Node.js alkalmazásunkba. Meglátjuk, hogyan kell használni a generatív szöveget kezelő Gemini-pro-t és a képeket kezelő Gemini-pro-vision-t.
Először a projekt beállításával kezdjük, majd egy saját példánkon használjuk fel.
Követelmények
-
Node.js 18+ verzió
-
Google AI Platform fiók az API-kulcs beszerzéséhez
Első lépések
Először hozzon létre egy új Node.js projektet egy üres mappában:
mkdir gemini-node
cd gemini-node
npm init -y
Most telepítjük a szükséges csomagokat a környezetfájlhoz és a Gemini SDK-hoz:
npm install dotenv @google/generative-ai
API kulcs beállítása
A Google AI Platformon kattintson az API-kulcs beszerzése gombra az API-kulcs beszerzéséhez, majd mentse el a környezetfájlba (.env) a gyökérkönyvtárba:
API_KEY=YOUR_GEMINI_KEY
Hozzon létre egy új lib mappát, és hozzon létre benne egy config.js fájlt, majd a következő lépéshez exportáljuk az API kulcsunkat:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK beállítása
Ebben a lépésben beállítjuk modelljeinket, hogy felhasználhassuk őket a kódunkban. A lib mappánkban hozzunk létre 2 fájlt, a gemini.js-t a szöveg és a gemini-vision.js-t a képek kezelésére.
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 };
Az exportált függvény segítségével szöveget generálunk egy promptból. Használhatjuk chatrendszer építésére, szövegfordításra és még sok más felhasználási esetre.
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 };
Az exportált függvény segítségével szöveget generálunk képből.
Az alkalmazás elkészítése
Hozzon létre egy új index.js fájlt, és illessze be ezt a kódot:
const main = async () => {
console.log("Hello world!");
};
main();
Most már importálhatjuk exportált függvényeinket, és szöveget generálhatunk velük, akár kérdésből, akár képpromptból.
A függvény egy fájl elérési utat vesz fel argumentumként, ezért a teszteléshez hozzá kell adnia egy képfájlt a projekt mappájához.
Kódunk a következőre lesz konvertálva:
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();
Mi a következő lépés
Mostantól az ExpressJS segítségével API-t készíthet szkript helyett. Ezenkívül kutathat a használati esetekre vonatkozó felszólítások írásának bevált gyakorlatairól.
Íme néhány példa az elkészíthető alkalmazásokra:
-
SEO metaadat-generátor [Unsplash API] használatával (https://unsplash.com/developers)
-
Az önéletrajz-ellenőrző egy extra szkript hozzáadásával, amely PDF-ből tölti le a tartalmat
-
Instagram életrajzíró egy képről
Érdekel jobb alkalmazások készítése? Csatlakozzon webfejlesztési kezdőtáborunkhoz, és tanulja meg, hogyan készíthet teljesen működőképes terméket!