Mula nang lumitaw ang ChatGPT at Google Gemini, nakita namin ang maraming apps na inilunsad na gumagamit ng mga modelong ito. Ang pamamaraan ay tinatawag na arbitrage, isang paraan na tumatagal ng isa sa maraming mga gawain na maaaring gawin ng AI, pinapahusay ito gamit ang mahusay na mga senyas, at pagkatapos ay ibinibigay ito sa mga customer bilang isang tampok.
Ang artikulong ito ay magiging sunud-sunod na gabay sa kung paano isama ang modelo ng Google Gemini sa aming Node.js application. Makikita natin kung paano gamitin ang parehong Gemini-pro na humahawak ng generative text, at Gemini-pro-vision na humahawak ng mga larawan.
Magsisimula muna tayo sa pamamagitan ng pagse-set up ng proyekto, at pagkatapos ay gamitin ito sa sarili nating halimbawa.
Mga Kinakailangan
-
Node.js bersyon 18+
-
Google AI Platform account upang makuha ang aming API Key
Pagsisimula
Una, lumikha ng bagong proyekto ng Node.js sa loob ng isang walang laman na folder:
mkdir gemini-node
cd gemini-node
npm init -y
Ngayon, ii-install namin ang mga kinakailangang pakete para sa environment file at ang Gemini SDK:
npm install dotenv @google/generative-ai
API Key Setup
Sa iyong Google AI Platform, mag-click sa Kumuha ng API Key na button para makuha ang API Key pagkatapos ay i-save ito sa iyong environment file (.env) sa root directory:
API_KEY=YOUR_GEMINI_KEY
Gumawa ng bagong lib folder at lumikha ng config.js file sa loob nito, pagkatapos ay para sa susunod na hakbang, ie-export namin ang aming API Key:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK Setup
Sa hakbang na ito, ise-setup namin ang aming mga modelo upang magamit namin ang mga ito sa aming code. Sa loob ng aming lib folder, gumawa tayo ng 2 file, gemini.js para sa paghawak ng text at gemini-vision.js para sa paghawak ng mga larawan.
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 };
Gagamitin namin ang na-export na function upang bumuo ng text mula sa isang prompt. Magagamit namin ito upang bumuo ng isang chat system, pagsasalin ng teksto at marami pang mga kaso ng paggamit.
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 };
Gagamitin namin ang na-export na function upang bumuo ng teksto mula sa isang imahe.
Pagbuo ng app
Gumawa ng bagong index.js file at i-paste ang code na ito:
const main = async () => {
console.log("Hello world!");
};
main();
Ngayon, maaari naming i-import ang aming mga na-export na function at gamitin ang mga ito upang bumuo ng text, mula sa isang tanong o isang prompt ng imahe.
Ang function ay kumukuha ng file path bilang argumento, kaya kakailanganin mong magdagdag ng image file sa iyong project folder upang subukan ito.
Ang aming code ay mako-convert sa:
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();
Ano ang susunod
Ngayon, maaari mong gamitin ang ExpressJS upang bumuo ng isang API sa halip na isang script. Maaari ka ring magsaliksik tungkol sa pinakamahuhusay na kagawian sa pagsusulat ng mga prompt para sa iyong mga kaso ng paggamit.
Ito ang ilang halimbawa sa mga app na maaari mong buuin:
-
SEO Meta data generator gamit ang Unsplash API
-
Ipagpatuloy ang reviewer sa pamamagitan ng pagdaragdag ng karagdagang script na nakakakuha ng nilalaman mula sa PDF
-
Instagram bio writer mula sa isang imahe
Interesado ka ba sa pagbuo ng mas mahuhusay na app? Sumali sa aming Web Development bootcamp at matutunan kung paano bumuo ng fully functional na produkto!