Kể từ khi ChatGPT và Google Gemini xuất hiện, chúng tôi đã thấy nhiều ứng dụng được ra mắt dựa trên các mô hình này. Kỹ thuật này được gọi là kinh doanh chênh lệch giá, một phương pháp thực hiện một trong nhiều nhiệm vụ mà AI có thể thực hiện, nâng cao nhiệm vụ đó bằng những lời nhắc hiệu quả và sau đó cung cấp cho khách hàng dưới dạng một tính năng.
Bài viết này sẽ là hướng dẫn từng bước về cách tích hợp mô hình Google Gemini vào ứng dụng Node.js của chúng tôi. Chúng ta sẽ xem cách sử dụng cả Gemini-pro để xử lý văn bản tổng quát và Gemini-pro-vision để xử lý hình ảnh.
Đầu tiên chúng ta sẽ bắt đầu bằng việc thiết lập dự án, sau đó sử dụng nó trên một ví dụ của riêng chúng ta.
Yêu cầu
-
Node.js phiên bản 18+
-
Tài khoản Google AI Platform để nhận Khóa API của chúng tôi
Bắt đầu
Đầu tiên, tạo một dự án Node.js mới bên trong một thư mục trống:
mkdir gemini-node
cd gemini-node
npm init -y
Bây giờ, chúng tôi sẽ cài đặt các gói cần thiết cho tệp môi trường và SDK Gemini:
npm install dotenv @google/generative-ai
Thiết lập khóa API
Trên Nền tảng AI của Google, hãy nhấp vào nút Nhận khóa API để lấy Khóa API, sau đó lưu nó vào tệp môi trường của bạn (.env) trong thư mục gốc:
API_KEY=YOUR_GEMINI_KEY
Tạo thư mục lib mới và tạo tệp config.js bên trong thư mục đó, sau đó ở bước tiếp theo, chúng tôi sẽ xuất Khóa API của mình:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Thiết lập SDK Gemini
Trong bước này, chúng ta sẽ thiết lập các mô hình để có thể sử dụng chúng trong mã của mình. Trong thư mục lib của chúng ta, hãy tạo 2 tệp, gemini.js để xử lý văn bản và gemini-vision.js để xử lý hình ảnh.
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 };
Chúng tôi sẽ sử dụng chức năng xuất để tạo văn bản từ lời nhắc. Chúng ta có thể sử dụng nó để xây dựng hệ thống trò chuyện, dịch văn bản và nhiều trường hợp sử dụng khác.
2- Tầm nhìn Song Tử của 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 };
Chúng tôi sẽ sử dụng chức năng xuất để tạo văn bản từ hình ảnh.
Xây dựng ứng dụng
Tạo một tệp index.js mới và dán mã này:
const main = async () => {
console.log("Hello world!");
};
main();
Giờ đây, chúng ta có thể nhập các hàm đã xuất và sử dụng chúng để tạo văn bản, từ câu hỏi hoặc lời nhắc hình ảnh.
Hàm lấy đường dẫn tệp làm đối số, vì vậy bạn sẽ cần thêm tệp hình ảnh vào thư mục dự án của mình để kiểm tra.
Mã của chúng tôi sẽ chuyển đổi thành:
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();
Cái gì tiếp theo
Bây giờ, bạn có thể sử dụng ExpressJS để xây dựng API thay vì tập lệnh. Bạn cũng có thể nghiên cứu về các phương pháp hay nhất về cách viết lời nhắc cho các trường hợp sử dụng của mình.
Sau đây là một số ví dụ về ứng dụng bạn có thể xây dựng:
-
Trình tạo dữ liệu Meta SEO sử dụng API Unsplash
-
Tiếp tục người đánh giá bằng cách thêm tập lệnh bổ sung lấy nội dung từ PDF
-
Người viết tiểu sử Instagram từ một hình ảnh
Bạn có quan tâm đến việc xây dựng các ứng dụng tốt hơn không? Tham gia chương trình đào tạo Phát triển Web của chúng tôi và tìm hiểu cách xây dựng một sản phẩm có đầy đủ chức năng!