Auf dieser Seite werden die folgenden Konfigurationsoptionen für Hybrid-Umgebungen beschrieben:
Sie müssen den Startleitfaden zum Erstellen von Hybrid-Anwendungen durchgearbeitet haben.
Inferenzmodus festlegen
In den Beispielen im Startleitfaden wird der PREFER_ON_DEVICE-Modus verwendet. Dies ist jedoch nur einer der vier verfügbaren Inferenzmodi.
Folgende Inferenzmodi sind verfügbar:
PREFER_ON_DEVICE: Versucht, das On-Device-Modell zu verwenden, wenn es verfügbar ist und den Typ der Anfrage unterstützt. Andernfalls wird ein Fehler auf dem Gerät protokolliert und dann automatisch auf das in der Cloud gehostete Modell zurückgegriffen.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)Java
InferenceMode mode = InferenceMode.PREFER_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_ON_DEVICE: Versucht, das On-Device-Modell zu verwenden, wenn es verfügbar ist und den Typ der Anfrage unterstützt. Andernfalls wird eine Ausnahme ausgelöst.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)Java
InferenceMode mode = InferenceMode.ONLY_ON_DEVICE; OnDeviceConfig config = new OnDeviceConfig(mode);PREFER_IN_CLOUD: Versucht, das in der Cloud gehostete Modell zu verwenden, wenn das Gerät online und das Modell verfügbar ist. Wenn das Gerät offline ist, greife auf das On-Device-Modell zurück. In allen anderen Fehlerfällen wird eine Ausnahme ausgelöst.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)Java
InferenceMode mode = InferenceMode.PREFER_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);ONLY_IN_CLOUD: Versucht, das in der Cloud gehostete Modell zu verwenden, wenn das Gerät online und das Modell verfügbar ist. Andernfalls wird eine Ausnahme ausgelöst.Kotlin
val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)Java
InferenceMode mode = InferenceMode.ONLY_IN_CLOUD; OnDeviceConfig config = new OnDeviceConfig(mode);
Feststellen, ob die Inferenz auf dem Gerät oder in der Cloud verwendet wurde
Wenn Ihr Inferenzmodus PREFER_ON_DEVICE oder PREFER_IN_CLOUD ist, kann es hilfreich sein, zu wissen, welcher Modus für bestimmte Anfragen verwendet wurde. Diese Informationen werden durch das Attribut inferenceSource jeder Antwort bereitgestellt.
Wenn Sie auf dieses Attribut zugreifen, ist der zurückgegebene Wert entweder ON_DEVICE oder 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());
Zu verwendendes Modell angeben
|
Klicken Sie auf Ihren Gemini API-Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen. |
Sie können ein Modell angeben, das beim Erstellen der generativeModel-Instanz verwendet werden soll (Kotlin | Java).
In der Cloud gehostetes Modell angeben:
Wenn Ihr Inferenzmodus
PREFER_ON_DEVICE,PREFER_IN_CLOUDoderONLY_IN_CLOUDist, müssen Sie explizit ein in der Cloud gehostetes Modell angeben, das verwendet werden soll. Das SDK hat kein standardmäßiges in der Cloud gehostetes Modell.Modellnamen für alle unterstützten in der Cloud gehosteten Gemini-Modelle finden
On-Device-Modell angeben:
Wenn Ihr Inferenzmodus
PREFER_ON_DEVICE,PREFER_IN_CLOUDoderONLY_ON_DEVICEist, können Sie optional in deronDeviceConfigeine „Kategorie“ des On-Device-Modells angeben, das verwendet werden soll. Kategorien sind eine Kombination aus Releasephase und Leistungsmerkmalen.Die unterstützten Kategoriewerte sind unten aufgeführt.
AICore wählt automatisch das On-Device-Modell aus, das die Bedingungen der angegebenen Kategorie erfüllt und vom Gerät unterstützt wird. Wenn Sie beispielsweisePREVIEWangeben und das Gerät ein Pixel 9 ist, wird wahrscheinlich Gemini Nano 4 Full [Vorschau] (nano-v4-full) automatisch ausgewählt.STABLE: Das neueste stabile On-Device-Modell.Vollständig getestet und auf Verbrauchergeräten verfügbar.
Beispiele: Gemini Nano 3 (
nano-v3) oder Gemini Nano 2 (nano-v2).Standardeinstellung für das On-Device-Modell, wenn kein
OnDeviceModelOptionangegeben ist.
PREVIEW: Das neueste On-Device-Modell in der Vorabversion mit voller Leistung.Für höhere logische Fähigkeiten und komplexe Aufgaben entwickelt.
Beispiel: Gemini Nano 4 Full [Vorabversion] (
nano-v4-full, das auf Gemma 4 E4B basiert).
PREVIEW_FAST: Das neueste On-Device-Modell in der Vorabversion, das schnell ist.Optimiert für maximale Geschwindigkeit und geringere Latenz.
Beispiel: Gemini Nano 4 Fast [Vorabversion] (
nano-v4-fast, das auf Gemma 4 E2B basiert).
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);
Modellkonfiguration zum Steuern von Antworten verwenden
|
Klicken Sie auf Ihren Gemini API-Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen. |
In jeder Anfrage an ein Modell können Sie eine Modellkonfiguration mitsenden, um zu steuern, wie das Modell eine Antwort generiert. In der Cloud gehostete Modelle und On-Device-Modelle werden unterschiedlich konfiguriert und bieten verschiedene Konfigurationsoptionen:
In der Cloud gehostete Modelle: Legen Sie die Konfiguration mit
generationConfigfest (Kotlin | Java). Informationen zu verfügbaren ParameternOn-Device-Modelle: Legen Sie die Konfiguration mit
onDeviceConfig(Kotlin | Java) fest. Informationen zu verfügbaren Parametern (Kotlin | Java)
Die Konfiguration wird für die Lebensdauer der Instanz beibehalten. Wenn Sie eine andere Konfiguration verwenden möchten, erstellen Sie eine neue GenerativeModel-Instanz mit dieser Konfiguration.
Hier ist ein Beispiel, in dem die Konfigurationen für die in der Cloud gehosteten und On-Device-Modelle festgelegt werden, die verwendet werden könnten, wenn der Inferenzmodus PREFER_ON_DEVICE festgelegt ist:
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);
Feedback zu Ihren Erfahrungen mit Firebase AI Logic geben