Opsi konfigurasi untuk pengalaman hybrid di aplikasi Android


Halaman ini menjelaskan opsi konfigurasi berikut untuk pengalaman hybrid:

Pastikan Anda telah menyelesaikan panduan memulai untuk membangun pengalaman hybrid.

Menetapkan mode inferensi

Contoh dalam panduan memulai menggunakan mode PREFER_ON_DEVICE, tetapi ini hanyalah salah satu dari empat mode inferensi yang tersedia.

Berikut adalah mode inferensi yang tersedia:

  • PREFER_ON_DEVICE: Mencoba menggunakan model di perangkat jika tersedia dan mendukung jenis permintaan. Jika tidak, catat error di perangkat dan kemudian otomatis melakukan penggantian ke model yang dihosting di cloud.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_ON_DEVICE: Mencoba menggunakan model di perangkat jika tersedia dan mendukung jenis permintaan. Jika tidak, berikan pengecualian.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • PREFER_IN_CLOUD: Berupaya menggunakan model yang dihosting di cloud jika perangkat sedang online dan jika model tersedia. Jika perangkat sedang offline, kembali ke model di perangkat. Dalam semua kasus kegagalan lainnya, berikan pengecualian.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_IN_CLOUD: Berupaya menggunakan model yang dihosting di cloud jika perangkat sedang online dan jika model tersedia. Jika tidak, berikan pengecualian.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    

Menentukan apakah inferensi di perangkat atau di cloud digunakan

Jika Anda menggunakan mode inferensi PREFER_ON_DEVICE atau PREFER_IN_CLOUD, mungkin akan berguna untuk mengetahui mode mana yang digunakan untuk permintaan tertentu. Informasi ini diberikan oleh properti inferenceSource setiap respons.

Saat Anda mengakses properti ini, nilai yang ditampilkan akan berupa ON_DEVICE atau 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());

Menentukan model yang dihosting di cloud untuk digunakan

Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini.

Jika inferensi utama atau penggantian Anda mungkin dilakukan oleh model yang dihosting di cloud, Anda harus menentukan model cloud secara eksplisit untuk digunakan saat membuat instance 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);

Temukan nama model untuk semua model Gemini yang didukung.

Menggunakan konfigurasi model untuk mengontrol respons

Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini.

Dalam setiap permintaan ke model, Anda dapat mengirimkan konfigurasi model untuk mengontrol cara model menghasilkan respons. Model yang dihosting di cloud dan model di perangkat menawarkan opsi konfigurasi yang berbeda (parameter cloud vs di perangkat).

Untuk model yang di-host oleh cloud, tetapkan konfigurasinya langsung di konfigurasi model. Namun, untuk model di perangkat, tetapkan konfigurasinya dalam onDeviceConfig.

Konfigurasi dipertahankan selama masa aktif instance. Jika Anda ingin menggunakan konfigurasi yang berbeda, buat instance GenerativeModel baru dengan konfigurasi tersebut.

Berikut contoh yang menetapkan konfigurasi untuk model yang dihosting di cloud dan di perangkat yang dapat digunakan jika mode inferensi PREFER_ON_DEVICE ditetapkan:

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);