Theo mặc định, các mô hình Gemini trả về câu trả lời dưới dạng văn bản không có cấu trúc. Tuy nhiên, một số trường hợp sử dụng yêu cầu văn bản có cấu trúc, chẳng hạn như JSON. Ví dụ: bạn có thể sử dụng câu trả lời cho các tác vụ khác ở hạ nguồn yêu cầu giản đồ dữ liệu đã thiết lập.
Để đảm bảo rằng kết quả đầu ra do mô hình tạo luôn tuân thủ một giản đồ cụ thể, bạn có thể xác định giản đồ. Giản đồ này hoạt động như một bản thiết kế cho câu trả lời của mô hình. Sau đó, bạn có thể trực tiếp trích xuất dữ liệu từ kết quả đầu ra của mô hình mà không cần xử lý hậu kỳ nhiều.
Dưới đây là một số ví dụ:
Đảm bảo rằng câu trả lời của mô hình tạo ra JSON hợp lệ và tuân thủ giản đồ mà bạn cung cấp.
Ví dụ: mô hình có thể tạo các mục có cấu trúc cho công thức nấu ăn luôn bao gồm tên công thức, danh sách nguyên liệu và các bước. Sau đó, bạn có thể dễ dàng phân tích cú pháp và hiển thị thông tin này trong giao diện người dùng của ứng dụng.Hạn chế cách mô hình có thể phản hồi trong các tác vụ phân loại.
Ví dụ: bạn có thể yêu cầu mô hình chú thích văn bản bằng một tập hợp nhãn cụ thể (ví dụ: một tập hợp enum cụ thể nhưpositivevànegative), thay vì các nhãn mà mô hình tạo ra (có thể có mức độ biến đổi nhưgood,positive,negativehoặcbad).
Trang này mô tả cách tạo kết quả đầu ra có cấu trúc (chẳng hạn như JSON và enum) trong trải nghiệm kết hợp cho ứng dụng web.
Trước khi bắt đầu
Hãy đảm bảo rằng bạn đã hoàn tất hướng dẫn bắt đầu xây dựng trải nghiệm kết hợp.
Thiết lập cấu hình cho kết quả đầu ra có cấu trúc
Việc tạo kết quả đầu ra có cấu trúc (chẳng hạn như JSON và enum) được hỗ trợ cho quá trình suy luận bằng cả mô hình được lưu trữ trên đám mây và mô hình trên thiết bị.
Đối với quá trình suy luận kết hợp, hãy sử dụng cả
inCloudParams
và
onDeviceParams
để định cấu hình mô hình nhằm phản hồi bằng kết quả đầu ra có cấu trúc. Đối với các chế độ khác, chỉ sử dụng cấu hình áp dụng.
Đối với
inCloudParams: Chỉ địnhresponseMimeTypethích hợp (ví dụ:application/json) cũng nhưresponseSchemamà bạn muốn mô hình sử dụng.Đối với
onDeviceParams: Chỉ địnhresponseConstraintmà bạn muốn mô hình sử dụng.
Kết quả đầu ra JSON
import {
getAI,
getGenerativeModel,
Schema
} from "firebase/ai";
const jsonSchema = Schema.object({
properties: {
characters: Schema.array({
items: Schema.object({
properties: {
name: Schema.string(),
accessory: Schema.string(),
age: Schema.number(),
species: Schema.string(),
},
optionalProperties: ["accessory"],
}),
}),
}
});
const model = getGenerativeModel(ai, {
mode: InferenceMode.PREFER_ON_DEVICE,
inCloudParams: {
generationConfig: {
responseMimeType: "application/json",
responseSchema: jsonSchema
},
}
onDeviceParams: {
promptOptions: {
responseConstraint: jsonSchema
}
}
});
// ...
Kết quả đầu ra enum
import {
getAI,
getGenerativeModel,
Schema
} from "firebase/ai";
const enumSchema = Schema.enumString({
enum: ["drama", "comedy", "documentary"],
});
const model = getGenerativeModel(ai, {
mode: InferenceMode.PREFER_ON_DEVICE,
inCloudParams: {
generationConfig: {
responseMimeType: "text/x.enum",
responseSchema: enumSchema
},
}
onDeviceParams: {
promptOptions: {
responseConstraint: enumSchema
}
}
});
// ...