Gemini modelleri, yanıtları varsayılan olarak yapılandırılmamış metin şeklinde döndürür. Ancak bazı kullanım alanları, JSON gibi yapılandırılmış metin gerektirir. Örneğin, yanıtı, yerleşik bir veri şeması gerektiren diğer sonraki görevlerde kullanıyor olabilirsiniz.
Modelin oluşturduğu çıkışın her zaman belirli bir şemaya uymasını sağlamak için model yanıtları için bir plan gibi çalışan bir şema tanımlayabilirsiniz. Ardından, modelin çıkışından verileri daha az son işlemeyle doğrudan ayıklayabilirsiniz.
Aşağıda bazı örnekler verilmiştir:
Modelin yanıtının geçerli JSON oluşturduğundan ve sağladığınız şemaya uygun olduğundan emin olun.
Örneğin, model her zaman tarif adını, malzeme listesini ve adımları içeren tarifler için yapılandırılmış girişler oluşturabilir. Ardından bu bilgileri uygulamanızın kullanıcı arayüzünde daha kolay ayrıştırıp görüntüleyebilirsiniz.Bir modelin sınıflandırma görevleri sırasında nasıl yanıt verebileceğini kısıtlama
Örneğin, modelin ürettiği etiketler (good,positive,negativeveyabadgibi bir dereceye kadar değişkenlik gösterebilir) yerine, modelin metni belirli bir etiket grubuyla (örneğin,positivevenegativegibi belirli bir enum grubu) açıklamasını sağlayabilirsiniz.
Bu sayfada, web uygulamaları için hibrit deneyimlerinizde yapılandırılmış çıkışın (ör. JSON ve enums) nasıl oluşturulacağı açıklanmaktadır.
Başlamadan önce
Karma deneyimler oluşturmaya yönelik başlangıç kılavuzunu tamamladığınızdan emin olun.
Yapılandırılmış çıkış için yapılandırmayı ayarlama
Hem bulutta barındırılan hem de cihaz üzerinde modeller kullanılarak çıkarım için yapılandırılmış çıkış (ör. JSON ve enum) oluşturma desteklenir.
Karma çıkarım için modeli yapılandırılmış çıkışla yanıt verecek şekilde ayarlamak üzere hem inCloudParams hem de onDeviceParams kullanın. Diğer modlar için
yalnızca geçerli yapılandırmayı kullanın.
inCloudParamsiçin: UygunresponseMimeType'ı (örneğin,application/json) ve modelin kullanmasını istediğinizresponseSchema'ı belirtin.onDeviceParamsiçin: Modelin kullanmasını istediğinizresponseConstraintöğesini belirtin.
JSON çıkışı
Aşağıdaki örnekte, hibrit çıkarımı (bu örnekte PREFER_ON_DEVICE) desteklemek için genel JSON çıkışı örneği uyarlanmıştır:
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
}
}
});
// ...
Enum çıkışı
Aşağıdaki örnek, karma çıkarımı (bu örnekte PREFER_ON_DEVICE) desteklemek için genel enum çıkış örneğini uyarlar:
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
}
}
});
// ...