На этой странице описаны следующие параметры конфигурации для гибридных сред:
Определите, использовался ли вывод данных на устройстве или в облаке.
Используйте конфигурацию модели для управления реакциями (например, температурой).
Убедитесь, что вы завершили руководство по началу работы с созданием гибридных приложений .
Установить режим вывода
В примерах руководства по началу работы используется режим PREFER_ON_DEVICE , но это лишь один из четырех доступных режимов вывода .
Вот доступные режимы вывода:
PREFER_ON_DEVICE: Attempt to use the on-device model if it's available and supports the type of request. Otherwise, log an error on the device and then automatically fall back to the cloud-hosted model .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: Attempt to use the cloud-hosted model if the device is online and if the model is available. If the device is offline, fall back to the on-device model . In all other failure cases, throw an exception .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);
Определите, использовался ли вывод данных на устройстве или в облаке.
If your inference mode is PREFER_ON_DEVICE or PREFER_IN_CLOUD , then it might be helpful to know which mode was used for given requests. This information is provided by the inferenceSource property of each response.
При обращении к этому свойству возвращаемое значение будет либо 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());
Укажите модель для использования.
Чтобы просмотреть контент и код, относящиеся к вашему поставщику API Gemini , нажмите на него. |
Вы можете указать модель для использования при создании экземпляра generativeModel ( Kotlin | Java ).
Укажите модель размещения в облаке :
If your inference mode is
PREFER_ON_DEVICE,PREFER_IN_CLOUD, orONLY_IN_CLOUD, then you must explicitly specify a cloud-hosted model to use. The SDK does not have a default cloud-hosted model.Найдите названия моделей для всех поддерживаемых облачных моделей Gemini .
Укажите модель устройства :
If your inference mode is
PREFER_ON_DEVICE,PREFER_IN_CLOUD, orONLY_ON_DEVICE, then you can optionally specify in theonDeviceConfiga "category" of on-device model to use. Categories are a combination of release stage and performance characteristics.Поддерживаемые значения категорий перечислены ниже.
AICore auto-selects the on-device model that meets the conditions of the specified category and is supported by the device. For example, if you specifyPREVIEWand the device is a Pixel 9, then Gemini Nano 4 Full [Preview] (nano-v4-full) would likely be auto-selected.STABLE: Последняя стабильная версия, установленная на устройстве.Протестировано на потребительских устройствах.
Например, Gemini Nano 3 (
nano-v3) или Gemini Nano 2 (nano-v2).Если параметр
OnDeviceModelOptionне указан, задается значение по умолчанию для модели устройства.
PREVIEW: Новейшая предварительная версия встроенной модели устройства с полными функциональными возможностями.Предназначен для развития более высоких аналитических способностей и решения сложных задач.
Например, Gemini Nano 4 Full [Preview] (
nano-v4-full, основанный на Gemma 4 E4B).
PREVIEW_FAST: Новейшая, быстрая предварительная версия встроенной модели устройства.Оптимизировано для максимальной скорости и минимальной задержки.
Например, 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_HOSTED_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_HOSTED_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);
Используйте конфигурацию модели для управления ответами.
Чтобы просмотреть контент и код, относящиеся к вашему поставщику API Gemini , нажмите на него. |
In each request to a model, you can send along a model configuration to control how the model generates a response. Cloud-hosted models and on-device models offer different configuration options ( cloud vs on-device parameters).
Для моделей, размещенных в облаке, их конфигурацию следует задавать непосредственно в конфигурации модели. Однако для моделей, размещенных на устройстве, конфигурацию следует задавать в объекте 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);