Model Gemini menampilkan respons sebagai teks tidak terstruktur secara default. Namun, beberapa kasus penggunaan memerlukan teks terstruktur, seperti JSON. Misalnya, Anda dapat menggunakan respons untuk tugas downstream lainnya yang memerlukan skema data yang ditetapkan.
Untuk memastikan output yang dihasilkan model selalu sesuai dengan skema tertentu, Anda dapat menentukan skema, yang berfungsi seperti cetak biru untuk respons model. Kemudian, Anda dapat mengekstrak data langsung dari output model dengan lebih sedikit pasca-pemrosesan.
Berikut beberapa contohnya:
Pastikan respons model menghasilkan JSON yang valid dan sesuai dengan skema yang Anda berikan.
Misalnya, model dapat membuat entri terstruktur untuk resep yang selalu mencakup nama resep, daftar bahan, dan langkah-langkah. Kemudian, Anda dapat mengurai dan menampilkan informasi ini dengan lebih mudah di UI aplikasi Anda.Membatasi cara model dapat merespons selama tugas klasifikasi.
Misalnya, Anda dapat membuat model menganotasi teks dengan serangkaian label tertentu (misalnya, serangkaian enum tertentu sepertipositivedannegative), bukan label yang dihasilkan model (yang dapat memiliki tingkat variabilitas sepertigood,positive,negative, ataubad).
Halaman ini menjelaskan cara membuat output terstruktur (seperti JSON dan enum) dalam pengalaman hybrid untuk aplikasi web.
Sebelum memulai
Pastikan Anda telah menyelesaikan panduan memulai untuk membangun pengalaman hybrid.
Menetapkan konfigurasi untuk output terstruktur
Pembuatan output terstruktur (seperti JSON dan enum) didukung untuk inferensi menggunakan model yang dihosting di cloud dan di perangkat.
Untuk inferensi campuran, gunakan
inCloudParams
dan
onDeviceParams
untuk mengonfigurasi model agar merespons dengan output terstruktur. Untuk mode lainnya,
gunakan hanya konfigurasi yang berlaku.
Untuk
inCloudParams: TentukanresponseMimeTypeyang sesuai (misalnya,application/json) sertaresponseSchemayang ingin Anda gunakan oleh model.Untuk
onDeviceParams: TentukanresponseConstraintyang ingin digunakan model.
Output JSON
Contoh berikut mengadaptasi
contoh output JSON umum
untuk mengakomodasi inferensi hybrid (dalam contoh ini, PREFER_ON_DEVICE):
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
}
}
});
// ...
Output enum
Contoh berikut mengadaptasi
contoh output enum umum
untuk mengakomodasi inferensi hybrid (dalam contoh ini, PREFER_ON_DEVICE):
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
}
}
});
// ...