Od czasu pojawienia się ChatGPT i Google Gemini zaobserwowaliśmy, że uruchomiono wiele aplikacji wykorzystujących te modele. Technika ta nazywa się arbitrażem i polega na tym, że wykonuje jedno z wielu zadań, jakie może wykonać sztuczna inteligencja, ulepsza je za pomocą skutecznych podpowiedzi, a następnie udostępnia je klientom jako funkcję.
Artykuł ten będzie przewodnikiem krok po kroku jak zintegrować model Google Gemini z naszą aplikacją Node.js. Zobaczymy, jak używać zarówno Gemini-pro, który obsługuje tekst generatywny, jak i Gemini-pro-vision, który obsługuje obrazy.
Zaczniemy najpierw od skonfigurowania projektu, a następnie wykorzystamy go na własnym przykładzie.
Wymagania
-
Node.js wersja 18+
-
Konto Google AI Platform, aby uzyskać nasz klucz API
Pierwsze kroki
Najpierw utwórz nowy projekt Node.js w pustym folderze:
mkdir gemini-node
cd gemini-node
npm init -y
Teraz zainstalujemy wymagane pakiety dla pliku środowiska i zestawu SDK Gemini:
npm install dotenv @google/generative-ai
Konfiguracja klucza API
Na platformie Google AI kliknij przycisk Pobierz klucz API, aby uzyskać klucz API, a następnie zapisz go w pliku środowiska (.env) w katalogu głównym:
API_KEY=YOUR_GEMINI_KEY
Utwórz nowy folder lib i utwórz w nim plik config.js, a następnie w następnym kroku wyeksportujemy nasz klucz API:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Konfiguracja zestawu SDK Gemini
W tym kroku skonfigurujemy nasze modele, aby móc je wykorzystać w naszym kodzie. W naszym folderze lib utwórzmy 2 pliki, gemini.js do obsługi tekstu i gemini-vision.js do obsługi obrazów.
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 };
Wyeksportowaną funkcję wykorzystamy do wygenerowania tekstu z podpowiedzi. Możemy go użyć do zbudowania systemu czatu, tłumaczenia tekstu i wielu innych zastosowań.
2– Wizja Bliźniąt Google
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 };
Użyjemy funkcji eksportu do wygenerowania tekstu z obrazu.
Tworzenie aplikacji
Utwórz nowy plik index.js i wklej ten kod:
const main = async () => {
console.log("Hello world!");
};
main();
Teraz możemy zaimportować nasze wyeksportowane funkcje i użyć ich do wygenerowania tekstu na podstawie pytania lub podpowiedzi obrazkowej.
Funkcja przyjmuje jako argument ścieżkę pliku, więc aby ją przetestować, będziesz musiał dodać plik obrazu do folderu projektu.
Nasz kod zamieni się w:
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();
Co dalej
Teraz możesz używać ExpressJS do tworzenia interfejsu API zamiast skryptu. Możesz także zapoznać się z najlepszymi praktykami dotyczącymi pisania podpowiedzi dla swoich przypadków użycia.
Oto kilka przykładów aplikacji, które możesz zbudować:
-
Generator metadanych SEO przy użyciu Unsplash API
-
Wznów recenzenta, dodając dodatkowy skrypt pobierający treść z pliku PDF
-
Autor biografii na Instagramie na podstawie obrazu
Czy jesteś zainteresowany tworzeniem lepszych aplikacji? Dołącz do naszego bootcampu dotyczącego tworzenia stron internetowych i dowiedz się, jak zbudować w pełni funkcjonalny produkt!