本頁說明混合式體驗的下列設定選項:
請務必完成打造混合式體驗的入門指南。
設定推論模式
入門指南中的範例使用 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
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "MODEL_NAME",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
)
Java
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"MODEL_NAME",
new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
如要查看所有支援的 Gemini 模型名稱,
使用模型設定控制回覆內容
|
按一下 Gemini API 供應商,即可在這個頁面查看供應商專屬內容和程式碼。 |
在傳送給模型的每個要求中,您可以一併傳送模型設定,藉此控制模型生成回覆的方式。雲端代管模型和裝置端模型提供不同的設定選項 (cloud 與 on-device 參數)。
如果是雲端託管模型,請直接在模型的設定中設定。不過,如果是裝置端模型,請在 onDeviceConfig 中設定其設定。
這項設定在執行個體的生命週期內都會維持不變。如要使用其他設定,請使用該設定建立新的 GenerativeModel 執行個體。
以下範例會設定雲端代管和裝置端模型,如果設定 PREFER_ON_DEVICE 推論模式,即可使用這些模型:
Kotlin
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel("MODEL_NAME",
// Config for cloud-hosted model
generationConfig = generationConfig {
temperature = 0.8f,
topK = 10
},
// Config for on-device model
onDeviceConfig = onDeviceConfig {
mode = InferenceMode.PREFER_ON_DEVICE,
temperature = 0.8f,
topK = 5
})
Java
// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
.setTemperature(0.8f)
.setTopK(10)
.build();
// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig.Builder()
.setMode(InferenceMode.PREFER_ON_DEVICE)
.setTemperature(0.8f)
.setTopK(5)
.build();
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"MODEL_NAME",
generationConfig,
onDeviceConfig
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);