تصف هذه الصفحة خيارات الإعداد التالية للتجارب المختلطة:
يُرجى التأكّد من إكمال دليل البدء لإنشاء تجارب مختلطة.
ضبط وضع الاستنتاج
تستخدم الأمثلة في دليل البدء وضع PREFER_ON_DEVICE، ولكن
هذا الوضع هو واحد فقط من أوضاع الاستنتاج الأربعة المتاحة
.
في ما يلي أوضاع الاستنتاج المتاحة:
PREFER_ON_DEVICE: محاولة استخدام النموذج على الجهاز فقط إذا كان متاحًا ويتوافق مع نوع الطلب. وإلا، يتم تسجيل خطأ على الجهاز ثم الرجوع تلقائيًا إلى النموذج المستضاف على السحابة الإلكترونية.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: محاولة استخدام النموذج على الجهاز فقط إذا كان متاحًا ويتوافق مع نوع الطلب. وإلا، يتم عرض استثناء.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: محاولة استخدام النموذج المستضاف على السحابة الإلكترونية إذا كان الجهاز متصلاً بالإنترنت وكان النموذج متاحًا. إذا كان الجهاز غير متصل بالإنترنت، يتم الرجوع إلى النموذج على الجهاز فقط. في جميع حالات الأعطال الأخرى، يتم عرض استثناء.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: محاولة استخدام النموذج المستضاف على السحابة الإلكترونية إذا كان الجهاز متصلاً بالإنترنت وكان النموذج متاحًا. وإلا، يتم عرض استثناء.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
تحديد ما إذا تم استخدام الاستنتاج على الجهاز أو في السحابة الإلكترونية
إذا كان وضع الاستنتاج هو PREFER_ON_DEVICE أو PREFER_IN_CLOUD، قد يكون من المفيد معرفة الوضع الذي تم استخدامه لطلبات معيّنة. تقدّم هذه المعلومات من خلال السمة inferenceSource لكل ردّ.
عند الوصول إلى هذه السمة، ستكون القيمة المعروضة إما ON_DEVICE أو IN_CLOUD.
Kotlin
// ...
print("You used: ${result.response.inferenceSource}")
print(result.response.text)
Java
// ...
System.out.println("You used: " + result.getResponse().getInferenceSource());
System.out.println(result.getResponse().getText());
تحديد نموذج لاستخدامه
|
انقر على مقدّم Gemini API لعرض المحتوى الخاص بالمقدّم والرمز البرمجي على هذه الصفحة. |
يمكنك تحديد نموذج لاستخدامه عند إنشاء مثيل generativeModel (Kotlin | Java).
تحديد نموذج مستضاف على السحابة الإلكترونية:
إذا كان وضع الاستنتاج هو
PREFER_ON_DEVICEأوPREFER_IN_CLOUDأوONLY_IN_CLOUD، يجب تحديد نموذج مستضاف على السحابة الإلكترونية لاستخدامه بشكل صريح. لا تتضمّن حزمة SDK نموذجًا تلقائيًا مستضافًا على السحابة الإلكترونية.يمكنك العثور على أسماء النماذج لجميع نماذج Gemini المستضافة على السحابة الإلكترونية والمتوافقة.
تحديد نموذج على الجهاز فقط:
إذا كان وضع الاستنتاج هو
PREFER_ON_DEVICEأوPREFER_IN_CLOUDأوONLY_ON_DEVICE، يمكنك اختياريًا تحديد "فئة" نموذج على الجهاز فقط لاستخدامه فيonDeviceConfig. الفئات هي مزيج من مرحلة الإصدار وخصائص الأداء.في ما يلي قيم الفئات المسموح بها.
تختار خدمة AICore تلقائيًا النموذج على الجهاز فقط الذي يستوفي شروط الفئة المحدّدة ويتوافق مع الجهاز. على سبيل المثال، إذا حدّدتPREVIEWوكان الجهاز هو Pixel 9، من المرجّح أن يتم الاختيار التلقائي لـ Gemini Nano 4 Full [معاينة] (nano-v4-full).STABLE: أحدث نموذج ثابت على الجهاز فقط.تم اختباره بالكامل على أجهزة المستهلكين.
على سبيل المثال، Gemini Nano 3 (
nano-v3) أو Gemini Nano 2 (nano-v2).الإعداد التلقائي للنموذج على الجهاز فقط إذا لم يتم تحديد
OnDeviceModelOption.
PREVIEW: أحدث نموذج معاينة على الجهاز فقط يتمتّع بقدرات أداء كاملة.تم تصميمه لزيادة قدرة الاستدلال وإنجاز المهام المعقّدة.
على سبيل المثال، Gemini Nano 4 Full [معاينة] (
nano-v4-full، المستند إلى Gemma 4 E4B).
PREVIEW_FAST: أحدث نموذج معاينة على الجهاز فقط سريع.تم تحسينه لتحقيق أقصى سرعة وأقلّ وقت استجابة.
على سبيل المثال، Gemini Nano 4 Fast [معاينة] (
nano-v4-fast، المستند إلى Gemma 4 E2B).
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
modelName = "CLOUD_MODEL_NAME",
onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.INFERENCE_MODE,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
modelOption = OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
)
Java
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
// Specify a cloud-hosted model.
// Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
"CLOUD_MODEL_NAME",
/* config = */ null,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
new OnDeviceConfig(
/* mode = */ InferenceMode.INFERENCE_MODE,
/* maxOutputTokens = */ null,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
// (Optional) Specify an on-device model category.
// AICore will auto-select an on-device model based on this category.
// If not specified, AICore will auto-select the default stable on-device model.
/* modelOption = */ OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
استخدام إعدادات النموذج للتحكّم في الردود
|
انقر على مقدّم Gemini API لعرض المحتوى الخاص بالمقدّم والرمز البرمجي على هذه الصفحة. |
في كل طلب يتم إرساله إلى نموذج، يمكنك إرسال إعدادات النموذج للتحكّم في طريقة إنشاء النموذج للردّ. يتم إعداد النماذج المستضافة على السحابة الإلكترونية والنماذج على الجهاز فقط بشكل مختلف، وتوفّر خيارات إعداد مختلفة:
النماذج المستضافة على السحابة الإلكترونية: يتم ضبط الإعدادات باستخدام
generationConfig(Kotlin | Java). مزيد من المعلومات عن المَعلمات المتاحة.النماذج على الجهاز فقط: يتم ضبط الإعدادات باستخدام
onDeviceConfig(Kotlin | Java). مزيد من المعلومات عن المَعلمات المتاحة (Kotlin | Java).
يتم الاحتفاظ بالإعدادات طوال فترة بقاء المثيل. إذا أردت استخدام إعدادات مختلفة، يمكنك إنشاء مثيل جديد من GenerativeModel باستخدام هذه الإعدادات.
في ما يلي مثال يضبط الإعدادات للنماذج المستضافة على السحابة الإلكترونية والنماذج على الجهاز فقط التي يمكن استخدامها إذا تم ضبط وضع الاستنتاج PREFER_ON_DEVICE:
Kotlin
// Config for cloud-hosted model
val generationConfig = generationConfig {
maxOutputTokens = 200
stopSequences = listOf("red")
}
// Config for on-device model
val onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.PREFER_ON_DEVICE,
maxOutputTokens = 200
)
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "CLOUD_MODEL_NAME",
generationConfig = generationConfig,
onDeviceConfig = onDeviceConfig
)
Java
// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
.setMaxOutputTokens(200)
.setStopSequences(List.of("red"))
.build();
// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig(
/* mode = */ InferenceMode.PREFER_ON_DEVICE,
/* maxOutputTokens = */ 200,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
/* modelOption = */ null
);
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"CLOUD_MODEL_NAME",
generationConfig,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
onDeviceConfig
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
تقديم ملاحظاتك حول تجربتك مع Firebase AI Logic