Theo mặc định, các mô hình Gemini trả về phản hồ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 phản hồi cho các tác vụ khác ở hạ nguồn yêu cầu một lược đồ dữ liệu đã thiết lập.
Để đảm bảo rằng đầu ra do mô hình tạo luôn tuân thủ một lược đồ cụ thể, bạn có thể xác định lược đồ. Lược đồ này hoạt động như một bản thiết kế cho các phản hồi của mô hình. Sau đó, bạn có thể trực tiếp trích xuất dữ liệu từ đầ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 phản hồi của mô hình tạo ra JSON hợp lệ và tuân thủ lược đồ 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 đầu ra có cấu trúc (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 đầu ra có cấu trúc
Việc tạo đầu ra có cấu trúc (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 phản hồi bằng đầ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.
Đầ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
}
}
});
// ...
Đầ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
}
}
});
// ...