تعرض نماذج Gemini الردود كنص غير منظَّم تلقائيًا. ومع ذلك، تتطلب بعض حالات الاستخدام نصًا منظَّمًا، مثل JSON. على سبيل المثال، قد تستخدم الردود في مهام أخرى لاحقة تتطلب مخطط بيانات محدّدًا.
لضمان التزام الناتج الذي ينشئه النموذج بمخطط معيّن دائمًا، يمكنك تحديد مخطط يعمل كمخطط أولي لردود النموذج. بعد ذلك، يمكنك استخراج البيانات مباشرةً من ناتج النموذج مع تقليل المعالجة اللاحقة.
إليك بعض الأمثلة:
ضمان أن ينتج ردّ النموذج JSON صالحًا ويتوافق مع المخطط الذي تقدّمه.
على سبيل المثال، يمكن للنموذج إنشاء إدخالات منظَّمة للوصفات تتضمّن دائمًا اسم الوصفة وقائمة المكوّنات والخطوات. بعد ذلك، يمكنك تحليل هذه المعلومات وعرضها بسهولة أكبر في واجهة مستخدم تطبيقك.فرض قيود على طريقة ردّ النموذج أثناء مهام التصنيف
على سبيل المثال، يمكنك أن تطلب من النموذج إضافة تعليقات توضيحية إلى النص باستخدام مجموعة معيّنة من التصنيفات (على سبيل المثال، مجموعة معيّنة من قيم التعداد مثلpositiveوnegative)، بدلاً من التصنيفات التي ينتجها النموذج (التي قد تتضمّن درجة من التباين مثلgoodأوpositiveأوnegativeأوbad).
توضّح هذه الصفحة كيفية إنشاء ناتج منظَّم (مثل JSON وقيم التعداد) في تجاربك المختلطة لتطبيقات الويب.
قبل البدء
تأكَّد من إكمال دليل البدء لإنشاء تجارب مختلطة.
ضبط إعدادات الناتج المنظَّم
يتوفّر إنشاء ناتج منظَّم (مثل JSON وقيم التعداد) للاستدلال باستخدام النماذج المستضافة على السحابة الإلكترونية والنماذج على الجهاز.
بالنسبة إلى الاستدلال المختلط، استخدِم كل من
inCloudParams
و
onDeviceParams
لضبط النموذج من أجل الردّ بناتج منظَّم. بالنسبة إلى الأوضاع الأخرى، استخدِم الإعدادات القابلة للتطبيق فقط.
بالنسبة إلى
inCloudParams: حدِّدresponseMimeTypeالمناسب (على سبيل المثال،application/json) بالإضافة إلىresponseSchemaالذي تريد أن يستخدمه النموذج.بالنسبة إلى
onDeviceParams: حدِّدresponseConstraintالذي تريد أن يستخدمه النموذج.
الردّ بتنسيق 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
}
}
});
// ...
الردّ بقيم التعداد
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
}
}
});
// ...