Android uygulamalarındaki karma deneyimler için yapılandırma seçenekleri


Bu sayfada, hibrit deneyimlerle ilgili aşağıdaki yapılandırma seçenekleri açıklanmaktadır:

Karma deneyimler oluşturmaya yönelik başlangıç kılavuzunu tamamladığınızdan emin olun.

Çıkarım modu ayarlama

Başlangıç kılavuzundaki örneklerde PREFER_ON_DEVICE modu kullanılmaktadır ancak bu, mevcut dört çıkarım modundan yalnızca biridir.

Kullanılabilir çıkarım modları şunlardır:

  • PREFER_ON_DEVICE: Cihaz üzerinde model varsa ve istek türünü destekliyorsa bu modeli kullanmayı deneyin. Aksi takdirde, cihazda bir hata kaydedin ve ardından otomatik olarak bulutta barındırılan modele geri dönün.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_ON_DEVICE: Cihaz üzerinde model varsa ve istek türünü destekliyorsa bu modeli kullanmayı deneyin. Aksi takdirde bir istisna oluşturun.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • PREFER_IN_CLOUD: Cihaz internete bağlıysa ve model kullanılabiliyorsa bulutta barındırılan modeli kullanmayı deneyin. Cihaz çevrimdışıysa cihaz üzerindeki modele geri dönün. Diğer tüm hata durumlarında istisna oluşturun.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_IN_CLOUD: Cihaz internete bağlıysa ve model kullanılabiliyorsa bulutta barındırılan modeli kullanmayı deneyin. Aksi takdirde bir istisna oluşturun.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)
    

    Java

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

Cihaz üzerinde mi yoksa bulutta mı çıkarım yapıldığını belirleme

PREFER_ON_DEVICE veya PREFER_IN_CLOUD çıkarım modlarını kullanıyorsanız belirli istekler için hangi modun kullanıldığını bilmek faydalı olabilir. Bu bilgiler, her yanıtın inferenceSource özelliği tarafından sağlanır.

Bu özelliğe eriştiğinizde döndürülen değer ON_DEVICE veya IN_CLOUD olur.

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

Kullanılacak bulutta barındırılan bir model belirtin

Sağlayıcıya özel içerikleri ve kodu bu sayfada görüntülemek için Gemini API sağlayıcınızı tıklayın.

Birincil veya yedek çıkarımınız bulutta barındırılan bir model tarafından gerçekleştirilecekse generativeModel örneğini oluştururken kullanılacak bulut modelini açıkça belirtmeniz gerekir.

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

Desteklenen tüm Gemini modellerinin model adlarını öğrenin.

Yanıtları kontrol etmek için model yapılandırmasını kullanma

Sağlayıcıya özel içerikleri ve kodu bu sayfada görüntülemek için Gemini API sağlayıcınızı tıklayın.

Bir modele gönderdiğiniz her istekle birlikte, modelin nasıl yanıt üreteceğini kontrol etmek için bir model yapılandırması gönderebilirsiniz. Bulutta barındırılan modeller ve cihaz üzerinde modeller farklı yapılandırma seçenekleri (bulut ve cihaz üzerinde parametreleri) sunar.

Bulutta barındırılan modeller için yapılandırmayı doğrudan modelin yapılandırmasında ayarlayın. Ancak cihaz üzerinde modeller için yapılandırmalarını onDeviceConfig içinde ayarlayın.

Yapılandırma, örneğin kullanım ömrü boyunca korunur. Farklı bir yapılandırma kullanmak istiyorsanız bu yapılandırmayla yeni bir GenerativeModel örneği oluşturun.

PREFER_ON_DEVICE çıkarım modu ayarlanırsa kullanılabilecek, bulutta barındırılan ve cihaz üzerinde modellerin yapılandırmalarını ayarlayan bir örneği aşağıda bulabilirsiniz:

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