בדף הזה מתוארות אפשרויות ההגדרה הבאות של חוויות היברידיות:
מוודאים שסיימתם את המדריך לתחילת העבודה עם חוויות היברידיות.
הגדרת מצב היסק
הדוגמאות במדריך לתחילת הדרך משתמשות במצב 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 אין מודל שמתארח בענן כברירת מחדל.
מציינים מודל במכשיר:
אם מצב ההיסק הוא
PREFER_ON_DEVICE,PREFER_IN_CLOUDאוONLY_ON_DEVICE, אתם יכולים לבחור לציין ב-onDeviceConfigאת "קטגוריית" המודל במכשיר שבו אתם רוצים להשתמש. הקטגוריות הן שילוב של שלב ההשקה ומאפייני הביצועים.הערכים הנתמכים של הקטגוריות מפורטים בהמשך.
AICore בוחר באופן אוטומטי את המודל במכשיר שעומד בתנאים של הקטגוריה שצוינה ונתמך במכשיר. לדוגמה, אם מציינים אתPREVIEWוהמכשיר הוא Pixel 9, סביר להניח ש-Gemini Nano 4 Full [Preview] (nano-v4-full) ייבחר באופן אוטומטי.
STABLE: המודל היציב העדכני שפועל במכשיר.נבדק באופן מלא וזמין במכשירי צריכה.
לדוגמה, Gemini Nano 3 (
nano-v3) או Gemini Nano 2 (nano-v2).הגדרת ברירת המחדל למודל במכשיר אם לא צוין
OnDeviceModelOption.
PREVIEW: הגרסה העדכנית ביותר של המודל במכשיר בגרסת טרום-השקה (Preview) עם יכולות ביצועים מלאות.מיועד למשימות מורכבות שדורשות יכולת חשיבה ברמה גבוהה.
לדוגמה, Gemini Nano 4 Full [גרסת טרום-השקה (Preview)] (
nano-v4-full, שמבוסס על Gemma 4 E4B).
PREVIEW_FAST: המודל העדכני ביותר בגרסת טרום-השקה (Preview) שפועל במכשיר במהירות.אופטימיזציה למהירות מקסימלית וזמן אחזור קצר יותר.
לדוגמה, Gemini Nano 4 Fast [Preview] (
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