Nuo „ChatGPT“ ir „Google Gemini“ pasirodymo matėme, kad buvo paleista daug programų, naudojančių šiuos modelius. Ši technika vadinama arbitražu – metodu, kuris atlieka vieną iš daugelio užduočių, kurias gali atlikti AI, patobulina ją efektyviais raginimais ir suteikia klientams kaip funkciją.
Šis straipsnis bus nuoseklus vadovas, kaip integruoti Google Gemini modelį į mūsų Node.js programą. Pamatysime, kaip naudoti Gemini-pro, kuri tvarko generatyvinį tekstą, ir Gemini-pro-vision, kuri tvarko vaizdus.
Pirmiausia pradėsime nuo projekto nustatymo, o tada naudosime jį savo pavyzdžiu.
Reikalavimai
– Node.js 18 ir naujesnė versija
– Google AI Platform paskyra, kad gautumėte API raktą
Darbo pradžia
Pirmiausia tuščiame aplanke sukurkite naują Node.js projektą:
mkdir gemini-node
cd gemini-node
npm init -y
Dabar įdiegsime reikiamus aplinkos failo ir Gemini SDK paketus:
npm install dotenv @google/generative-ai
API rakto sąranka
Savo Google AI platformoje spustelėkite mygtuką Gauti API raktą, kad gautumėte API raktą, tada išsaugokite jį aplinkos faile (.env) šakniniame kataloge:
API_KEY=YOUR_GEMINI_KEY
Sukurkite naują lib aplanką ir jame sukurkite config.js failą, tada kitam veiksmui eksportuosime savo API raktą:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK sąranka
Šiame žingsnyje mes nustatysime savo modelius, kad galėtume juos naudoti savo kode. Aplanke lib sukurkime 2 failus: gemini.js tekstui tvarkyti ir gemini-vision.js vaizdams tvarkyti.
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 };
Eksportuotą funkciją naudosime tekstui generuoti iš raginimo. Mes galime jį naudoti kurdami pokalbių sistemą, teksto vertimą ir daug kitų naudojimo atvejų.
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 };
Eksportuotą funkciją naudosime tekstui iš vaizdo generuoti.
Programėlės kūrimas
Sukurkite naują index.js failą ir įklijuokite šį kodą:
const main = async () => {
console.log("Hello world!");
};
main();
Dabar galime importuoti eksportuotas funkcijas ir naudoti jas tekstui generuoti iš klausimo arba vaizdo raginimo.
Funkcija naudoja failo kelią kaip argumentą, todėl turėsite pridėti vaizdo failą į projekto aplanką, kad jį išbandytumėte.
Mūsų kodas bus konvertuojamas į:
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();
Kas toliau
Dabar galite naudoti ExpressJS, kad sukurtumėte API, o ne scenarijų. Taip pat galite tyrinėti geriausią praktiką, kaip rašyti raginimus savo naudojimo atvejais.
Štai keli programų, kurias galite kurti, pavyzdžiai:
– SEO metaduomenų generatorius, naudojant Unsplash API
-
Tęskite apžvalgininką pridėdami papildomą scenarijų, kuris gauna turinį iš PDF
-
„Instagram“ biografijos rašytojas iš vaizdo
Ar domitės geresnių programų kūrimu? Prisijunkite prie žiniatinklio kūrimo stovyklos ir sužinokite, kaip sukurti visiškai funkcionalų produktą!