إنشاء نواتج منظَّمة للتجارب المختلطة في تطبيقات الويب

تعرض نماذج 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
    }
  }
});

// ...