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