Seit dem Erscheinen von ChatGPT und Google Gemini haben wir viele Apps gesehen, die diese Modelle nutzen. Die Technik heißt Arbitrage, eine Methode, die eine der zahlreichen Aufgaben, die KI erledigen kann, mit effizienten Eingabeaufforderungen erweitert und sie dann den Kunden als Funktion bereitstellt.
Dieser Artikel ist eine Schritt-für-Schritt-Anleitung zur Integration des Google Gemini-Modells in unsere Node.js-Anwendung. Wir werden sehen, wie man sowohl Gemini-pro, das generativen Text verarbeitet, als auch Gemini-pro-vision, das Bilder verarbeitet, verwendet.
Wir beginnen zunächst mit der Einrichtung des Projekts und verwenden es dann an einem eigenen Beispiel.
Anforderungen
-
Node.js Version 18+
-
Google AI Platform-Konto, um unseren API-Schlüssel zu erhalten
Erste Schritte
Erstellen Sie zunächst ein neues Node.js-Projekt in einem leeren Ordner:
mkdir gemini-node
cd gemini-node
npm init -y
Jetzt installieren wir die erforderlichen Pakete für die Umgebungsdatei und das Gemini SDK:
npm install dotenv @google/generative-ai
API-Schlüssel-Setup
Klicken Sie auf Ihrer Google AI Platform auf die Schaltfläche API-Schlüssel abrufen, um den API-Schlüssel abzurufen, und speichern Sie ihn dann in Ihrer Umgebungsdatei (.env) im Stammverzeichnis:
API_KEY=YOUR_GEMINI_KEY
Erstellen Sie einen neuen lib-Ordner und darin eine config.js-Datei. Im nächsten Schritt exportieren wir dann unseren API-Schlüssel:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK-Setup
In diesem Schritt richten wir unsere Modelle ein, damit wir sie in unserem Code verwenden können. Erstellen wir in unserem lib-Ordner zwei Dateien, gemini.js für die Textverarbeitung und gemini-vision.js für die Bildverarbeitung.
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 };
Wir werden die exportierte Funktion verwenden, um Text aus einer Eingabeaufforderung zu generieren. Wir können damit ein Chat-System, Textübersetzungen und viele weitere Anwendungsfälle aufbauen.
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 };
Wir werden die exportierte Funktion verwenden, um Text aus einem Bild zu generieren.
Erstellen der App
Erstellen Sie eine neue index.js-Datei und fügen Sie diesen Code ein:
const main = async () => {
console.log("Hello world!");
};
main();
Jetzt können wir unsere exportierten Funktionen importieren und zum Generieren von Text verwenden, entweder aus einer Frage oder einer Bildaufforderung.
Die Funktion benötigt einen Dateipfad als Argument, daher müssen Sie zum Testen eine Bilddatei zu Ihrem Projektordner hinzufügen.
Unser Code wird umgewandelt 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();
Was kommt als nächstes?
Jetzt können Sie ExpressJS verwenden, um eine API anstelle eines Skripts zu erstellen. Sie können sich auch über Best Practices zum Schreiben von Eingabeaufforderungen für Ihre Anwendungsfälle informieren.
Dies sind einige Beispiele für Apps, die Sie erstellen können:
-
SEO-Metadatengenerator mit Unsplash API
-
Lebenslaufprüfer durch Hinzufügen eines zusätzlichen Skripts, das Inhalte aus PDF abruft
-
Instagram-Biografieautor aus einem Bild
Sind Sie daran interessiert, bessere Apps zu entwickeln? Nehmen Sie an unserem Webentwicklungs-Bootcamp teil und lernen Sie, wie Sie ein voll funktionsfähiges Produkt erstellen!