API Gemini có thể tạo đầu ra văn bản khi được cung cấp văn bản, hình ảnh, video và âm thanh làm dữ liệu đầu vào.
Hướng dẫn này cho bạn biết cách tạo văn bản bằng các phương thức generateContent
và streamGenerateContent
. Để tìm hiểu về cách sử dụng các tính năng hình ảnh và âm thanh của Gemini, hãy tham khảo hướng dẫn về Hình ảnh và Âm thanh.
Tạo văn bản từ dữ liệu đầu vào chỉ văn bản
Cách đơn giản nhất để tạo văn bản bằng API Gemini là cung cấp cho mô hình một đầu vào chỉ văn bản, như trong ví dụ sau:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContent(prompt);
console.log(result.response.text());
Trong trường hợp này, câu lệnh ("Giải thích cách hoạt động của AI") không bao gồm bất kỳ ví dụ đầu ra, hướng dẫn hệ thống hoặc thông tin định dạng nào. Đây là phương pháp không cần chụp ảnh. Đối với một số trường hợp sử dụng, lời nhắc một lần hoặc vài lần có thể tạo ra kết quả phù hợp hơn với kỳ vọng của người dùng. Trong một số trường hợp, bạn cũng nên cung cấp hướng dẫn hệ thống để giúp mô hình hiểu được nhiệm vụ hoặc tuân theo các nguyên tắc cụ thể.
Tạo văn bản từ dữ liệu đầu vào là văn bản và hình ảnh
API Gemini hỗ trợ phương thức nhập đa phương thức kết hợp văn bản với tệp phương tiện. Ví dụ sau đây cho biết cách tạo văn bản từ dữ liệu đầu vào văn bản và hình ảnh:
import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
function fileToGenerativePart(path, mimeType) {
return {
inlineData: {
data: Buffer.from(fs.readFileSync(path)).toString("base64"),
mimeType,
},
};
}
const prompt = "Describe how this product might be manufactured.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
Tạo luồng văn bản
Theo mặc định, mô hình sẽ trả về một phản hồi sau khi hoàn tất toàn bộ quá trình tạo văn bản. Bạn có thể đạt được các lượt tương tác nhanh hơn bằng cách không chờ toàn bộ kết quả mà thay vào đó, hãy sử dụng tính năng truyền trực tuyến để xử lý một phần kết quả.
Ví dụ sau đây cho biết cách triển khai tính năng truyền trực tuyến bằng phương thức streamGenerateContent
để tạo văn bản từ lời nhắc nhập chỉ văn bản.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Tạo cuộc trò chuyện
SDK Gemini cho phép bạn thu thập nhiều vòng câu hỏi và câu trả lời, cho phép người dùng từng bước tìm ra câu trả lời hoặc được trợ giúp về các vấn đề gồm nhiều phần. Tính năng SDK này cung cấp một giao diện để theo dõi nhật ký cuộc trò chuyện, nhưng ở chế độ nền, tính năng này sử dụng cùng một phương thức generateContent
để tạo phản hồi.
Ví dụ về mã sau đây cho thấy cách triển khai tính năng trò chuyện cơ bản:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());
Bạn cũng có thể sử dụng tính năng phát trực tiếp kèm theo tính năng trò chuyện, như trong ví dụ sau:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Định cấu hình tính năng tạo văn bản
Mỗi câu lệnh mà bạn gửi đến mô hình đều bao gồm các thông số kiểm soát cách mô hình tạo câu trả lời. Bạn có thể sử dụng GenerationConfig
để định cấu hình các tham số này. Nếu bạn không định cấu hình các tham số, mô hình sẽ sử dụng các tuỳ chọn mặc định, tuỳ theo mô hình.
Ví dụ sau đây cho thấy cách định cấu hình một số tuỳ chọn có sẵn.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: "Explain how AI works",
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
}
});
console.log(result.response.text());
Bước tiếp theo
Giờ đây, khi đã tìm hiểu thông tin cơ bản về API Gemini, bạn có thể thử:
- Tìm hiểu thị giác: Tìm hiểu cách sử dụng tính năng nhận dạng hình ảnh gốc của Gemini để xử lý hình ảnh và video.
- Tìm hiểu âm thanh: Tìm hiểu cách sử dụng tính năng tìm hiểu âm thanh gốc của Gemini để xử lý tệp âm thanh.