ChatGPT:n ja Google Geminin ilmestymisen jälkeen olemme nähneet monia sovelluksia, jotka hyödyntävät näitä malleja. Tekniikkaa kutsutaan arbitraasiksi, menetelmäksi, joka ottaa yhden monista tehtävistä, joita tekoäly voi tehdä, parantaa sitä tehokkailla kehotteilla ja tarjoaa sen sitten asiakkaille ominaisuutena.
Tämä artikkeli on vaiheittainen opas Google Gemini -mallin integroimiseksi Node.js-sovellukseemme. Katsotaan kuinka käyttää sekä Gemini-proa, joka käsittelee luovaa tekstiä, että Gemini-pro-vision:ta, joka käsittelee kuvia.
Aloitamme ensin luomalla projektin ja käytämme sitä sitten omassa esimerkissämme.
Vaatimukset
-
Node.js versio 18+
-
Google AI Platform -tili saadaksesi API-avaimemme
Päästä alkuun
Luo ensin uusi Node.js-projekti tyhjään kansioon:
mkdir gemini-node
cd gemini-node
npm init -y
Nyt asennamme tarvittavat paketit ympäristötiedostolle ja Gemini SDK:lle:
npm install dotenv @google/generative-ai
API-avaimen asetukset
Napsauta Google AI -alustallasi Hae API-avain -painiketta saadaksesi API-avain ja tallenna se ympäristötiedostoon (.env) juurihakemistoon:
API_KEY=YOUR_GEMINI_KEY
Luo uusi lib-kansio ja luo siihen config.js-tiedosto. Seuraavaa vaihetta varten viemme API-avaimemme:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK:n asennus
Tässä vaiheessa määritämme mallimme, jotta voimme käyttää niitä koodissamme. Luodaan lib-kansioomme 2 tiedostoa, gemini.js tekstin käsittelyyn ja gemini-vision.js kuvien käsittelyyn.
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 };
Käytämme vietyä funktiota tekstin luomiseen kehotteesta. Voimme käyttää sitä chat-järjestelmän rakentamiseen, tekstin kääntämiseen ja moniin muihin käyttötapauksiin.
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 };
Käytämme vietyä toimintoa luomaan tekstiä kuvasta.
Sovelluksen rakentaminen
Luo uusi index.js-tiedosto ja liitä tämä koodi:
const main = async () => {
console.log("Hello world!");
};
main();
Nyt voimme tuoda vietymme funktiot ja käyttää niitä tekstin luomiseen joko kysymyksestä tai kuvakehotteesta.
Funktio ottaa tiedostopolun argumenttina, joten sinun on lisättävä kuvatiedosto projektikansioosi sen testaamiseksi.
Koodimme muunnetaan seuraavaksi:
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();
Mitä seuraavaksi
Nyt voit käyttää ExpressJS:ää API:n rakentamiseen komentosarjan sijaan. Voit myös tutkia parhaita käytäntöjä kehotteiden kirjoittamiseen käyttötapauksiasi varten.
Tässä on muutamia esimerkkejä sovelluksista, joita voit rakentaa:
-
Hakukoneoptimoinnin metatietojen luonti [Unsplash API]:lla (https://unsplash.com/developers)
-
Jatka tarkistajaa lisäämällä ylimääräinen komentosarja, joka hakee sisältöä PDF-tiedostosta
-
Instagramin biokirjoittaja kuvasta
Oletko kiinnostunut luomaan parempia sovelluksia? Liity Web-kehityksen bootcampille ja opi rakentamaan täysin toimiva tuote!