Sedert die verskyning van ChatGPT en Google Gemini, het ons gesien hoe baie toepassings bekendgestel word wat hierdie modelle gebruik. Die tegniek word arbitrage genoem, 'n metode wat een van die veelvuldige take neem wat KI kan doen, dit verbeter met doeltreffende aanwysings en dit dan as 'n kenmerk aan kliënte verskaf.
Hierdie artikel sal 'n stap-vir-stap gids wees oor hoe om die Google Gemini-model in ons Node.js-toepassing te integreer. Ons sal sien hoe om beide Gemini-pro te gebruik wat generatiewe teks hanteer, en Gemini-pro-vision wat beelde hanteer.
Ons sal eers begin deur die projek op te stel, en dit dan op 'n voorbeeld van ons eie gebruik.
Vereistes
-
Node.js weergawe 18+
-
Google AI Platform rekening om ons API-sleutel te kry
Aan die gang
Skep eers 'n nuwe Node.js-projek binne 'n leë gids:
mkdir gemini-node
cd gemini-node
npm init -y
Nou sal ons die vereiste pakkette vir omgewingslêer en die Gemini SDK installeer:
npm install dotenv @google/generative-ai
API-sleutelopstelling
Op jou Google AI-platform, klik op die Kry API-sleutel-knoppie om die API-sleutel te kry en stoor dit dan in jou omgewinglêer (.env) in die wortelgids:
API_KEY=YOUR_GEMINI_KEY
Skep 'n nuwe lib-lêergids en skep 'n config.js-lêer daarin, dan sal ons vir die volgende stap ons API-sleutel uitvoer:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK-opstelling
In hierdie stap sal ons ons modelle opstel sodat ons dit in ons kode kan gebruik. Binne ons lib-lêergids, kom ons skep 2 lêers, gemini.js vir die hantering van teks en gemini-vision.js vir die hantering van beelde.
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 };
Ons sal die uitgevoerde funksie gebruik om teks vanaf 'n prompt te genereer. Ons kan dit gebruik om 'n kletsstelsel, teksvertaling en vele meer gebruiksgevalle te bou.
2- Google Tweeling Visie
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 };
Ons sal die uitgevoerde funksie gebruik om teks uit 'n prent te genereer.
Bou die toepassing
Skep 'n nuwe index.js-lêer en plak hierdie kode:
const main = async () => {
console.log("Hello world!");
};
main();
Nou kan ons ons uitgevoerde funksies invoer en dit gebruik om teks te genereer, hetsy vanaf 'n vraag of 'n prentopdrag.
Die funksie neem 'n lêerpad as 'n argument, so jy sal 'n beeldlêer by jou projeklêer moet voeg om dit te toets.
Ons kode sal omskep in:
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();
Wat is volgende
Nou kan jy ExpressJS gebruik om 'n API te bou in plaas van 'n skrip. U kan ook navorsing doen oor beste praktyke oor die skryf van aansporings vir u gebruiksgevalle.
Hier is 'n paar voorbeelde van toepassings wat u kan bou:
-
SEO Meta data generator met behulp van Unsplash API
-
Hervat beoordelaar deur 'n ekstra skrif by te voeg wat inhoud vanaf PDF kry
-
Instagram-bioskrywer vanaf 'n beeld
Stel jy belang om beter toepassings te bou? Sluit aan by ons Webontwikkeling-bootcamp en leer hoe om 'n ten volle funksionele produk te bou!