Firebase uygulamasında Vertex {6/}AI'yı Firebase Remote Config ile dinamik olarak güncelleme

Vertex AI in Firebase SDK'sını kullanarak uygulamanızdan Gemini API'ü çağırdığınızda isteğiniz, üretken yapay zeka yanıtlarını kontrol eden bir dizi parametre içerir. Bunlar genellikle model adı, model oluşturma yapılandırması (maksimum jeton, sıcaklık vb.), güvenlik ayarları, sistem talimatları ve istem verilerini içerir.

Çoğu durumda, bunları isteğe bağlı olarak veya çeşitli senaryolar için gerektiği şekilde değiştirmek istersiniz:

  • Yeni bir uygulama yayınlamadan üretken yapay zeka modelinizi güncelleyin. Önceki sürümler kullanımdan kaldırılmadan önce daha yeni ve kararlı model sürümlerine geçiş yapabilir, kullanıcılarınızın ihtiyaç ve özelliklerine göre düşük maliyetli veya daha yüksek performanslı modellere geçebilir ya da en yeni ve en iyi modelleri koşullu olarak belirli kullanıcı segmentlerine (beta testi kullanıcıları gibi) dağıtabilirsiniz.
  • Modele eriştiğiniz konumu, kullanıcılarınıza daha yakın olacak şekilde ayarlayın.
  • Farklı sistem talimatlarını ve istemlerini A/B testi yapın, ardından kazanan deneme değerlerini kullanıcılarınıza yavaş yavaş sunun.
  • Uygulamanızda üretken yapay zeka özelliklerini hızlıca göstermek veya gizlemek için özellik işaretlerini kullanın.

Firebase Remote Config, tüm bunları ve daha fazlasını yaparak uygulamanızın yeni bir sürümünü yayınlamadan parametre değerlerini gerektiği gibi ve Firebase konsolunda belirlediğiniz özelliklerle eşleşen uygulama örnekleri için koşullu olarak güncellemenize olanak tanır.

Bu çözüm kılavuzunda, önerilen belirli kullanım alanları sağlanmakta ve Remote Config'ün üretken yapay zeka uygulamanıza nasıl ekleneceği açıklanmaktadır.

Kod uygulama bölümüne atla

Uygulamanızla neden Firebase Remote Config kullanmalısınız?

Firebase Remote Config, uygulama güncellemeleri gerektirmeden uygulamanızın davranışını dinamik olarak ayarlamanıza olanak tanır. Bu özellik, özellikle hızlı iterasyon ve hassas ayarların önemli olduğu üretken yapay zeka kullanan uygulamalar için çok güçlüdür.

Üretken yapay zeka uygulamalarıyla Remote Config için temel kullanım alanları

Remote Config uygulamasını aşağıdaki temel kullanım alanları için Vertex AI in Firebase ile birlikte kullanmanızı öneririz:

  • Uygulama güncellemesi olmadan en son model sürümüne yükseltme: Model adını gerektiği gibi değiştirmek için Remote Config parametrelerini kullanın. Böylece, tercih ettiğiniz Gemini modeli kullanıma sunulur sunulmaz son sürümüne yükseltme yapabilirsiniz.
  • Sistem talimatlarını ve güvenlik ayarlarını uygulama güncellemesi olmadan güncelleme: Dağıtım sonrasında sorun tespit ederseniz bunları isteğe bağlı olarak değiştirebilmeniz için sistem talimatlarını ve güvenlik ayarlarını Remote Config parametrelerinde saklayın.
  • Riski azaltın ve yapay zeka güvenliğini zorunlu kılın: Üretken yapay zeka değişikliklerini iOS ve Android kullanıcılarınıza güvenli ve kademeli olarak sunmak için Remote ConfigDağıtım özelliğini kullanın.

Üretken yapay zeka uygulamalarıyla Remote Config için gelişmiş ve önerilen kullanım alanları

Uygulamanızı Remote Config ve Google Analytics ile enstrümante ettikten sonra gelişmiş kullanım alanlarını keşfedebilirsiniz:

  • Konumu istemci konumuna göre ayarlama: Remote Config koşullarını kullanarak modelin konumunu istemcinin algılanan konumuna göre ayarlayın.
  • Farklı modellerle denemeler yapın: Belirli kullanım alanınıza en uygun modeli bulmak için çeşitli üretken yapay zeka modellerini hızlıca test edip aralarında geçiş yapabilir veya farklı modelleri farklı kullanıcı segmentlerine dağıtabilirsiniz.
  • Model performansını optimize edin: Sistem istemi, maksimum çıkış jetonu, sıcaklık ve diğer ayarlar gibi model parametrelerinde ince ayar yapın.
  • İstemci özelliklerine göre farklı sistem talimatları, istemler ve model yapılandırması kullanın: Remote ConfigGoogle Analytics ile birlikte kullanırken istemci özelliklerine veya özel kitlelere dayalı koşullar oluşturabilir ve bu özelliklere göre farklı parametreler ayarlayabilirsiniz.

    Örneğin, uygulamanızda teknik destek sağlamak için üretken yapay zekadan yararlanıyorsanız Android, iOS ve web platformu kullanıcılarınıza doğru talimatların sağlanması için uygulama platformuna özel sistem talimatları belirleyebilirsiniz.

  • Her kullanıcının deneyimlerini kişiselleştirme: Her kullanıcı için optimum üretken yapay zeka ayarlarını otomatik olarak belirlemek için Remote Config kişiselleştirme özelliğini kullanın.

  • Maliyetleri kontrol edin: Hangi üretken yapay zeka modellerinin çağrılacağını ve ne sıklıkta kullanılacağını uzaktan ayarlayın. Ayrıca, gereksiz maliyetleri azaltmak için maksimum çıkış jetonu değerlerini kullanıcı kitlesine göre dinamik olarak yapılandırın.

  • Uygulama deneyimini ve sonuçları optimize edin: A/B TestingRemote Config uygulamasını iOS, Android ve Flutter uygulamalarınızla birlikte kullanarak farklı kullanıcı segmentlerinde üretken yapay zeka parametrelerinde yapılan değişiklikleri test ederek elde tutma ve gelir gibi temel metrikleri nasıl etkilediğini görün.

Üretken yapay zeka uygulamanıza Firebase Remote Config özelliğini ekleyerek esnek, güvenli ve uygun maliyetli yapay zeka destekli uygulamalar geliştirirken kullanıcılarınıza keyifli deneyimler sunabilirsiniz.

Uygulamanıza Firebase Remote Config ekleme

Bu çözüm kılavuzunda, Android uygulamanızda Vertex AI in Firebase SDK'sını kullanan parametreleri dinamik olarak güncellemek için Firebase Remote Config'ü kullanacaksınız. Aşağıdakileri nasıl yapacağınızı öğreneceksiniz:

  • Firebase Remote Config'ten model adları ve sistem talimatları gibi parametreleri getirin ve etkinleştirin.
  • Gemini API çağrılarınızı, dinamik olarak alınan parametreleri kullanacak şekilde güncelleyerek farklı modeller arasında geçiş yapmanıza veya uygulama güncellemesi yapmadan sistem talimatlarını değiştirmenize olanak tanır.
  • Model davranışını ve özelliklerini gerektiği gibi ayarlayarak parametreleri uzaktan kontrol edin.

Ön koşullar

Bu kılavuzda, web uygulamaları geliştirmek için JavaScript'i kullanma konusunda bilgi sahibi olduğunuz varsayılmaktadır. Bu kılavuz, çerçeveye bağlı değildir. Başlamadan önce aşağıdakileri yaptığınızdan emin olun:

  • Vertex AI in Firebase SDK için başlangıç kılavuzunu tamamlayın. Aşağıdakilerin tümünü yaptığınızdan emin olun:

    1. Blaze fiyatlandırma planını kullanma ve gerekli API'leri etkinleştirme dahil olmak üzere yeni veya mevcut bir Firebase projesi oluşturun.
    2. Uygulamanızı kaydettirme ve Firebase yapılandırmanızı uygulamanıza ekleme dahil olmak üzere uygulamanızı Firebase'e bağlayın.
    3. SDK'yı ekleyin ve uygulamanızda Vertex AI hizmetini ve üretken modeli başlatın.
  • Projenizde Google Analytics'i etkinleştirin ve SDK'sını uygulamanıza ekleyin (hizmetin ve modelin konumunu istemci cihazın konumuna göre ayarlama gibi koşullu hedefleme için gereklidir).

1. Adım: Firebase konsolunda parametre değerlerini ayarlayın

Bir istemci Remote Config şablonu oluşturun ve uygulamada getirilip kullanılacak parametreleri ve değerleri yapılandırın.

  1. Firebase konsolunu açın ve gezinme menüsünde Çalıştır'ı genişletip Remote Config seçin.
  2. Remote Config sayfasının üst kısmındaki İstemci/Sunucu seçicisinde İstemci'nin seçili olduğundan emin olun.
    • Remote Config istemci şablonlarını ilk kez kullanıyorsanız Yapılandırma Oluştur'u tıklayın. İlk parametrenizi oluşturun bölmesi görünür.
    • Remote Config şablonlarını daha önce kullandıysanız Parametre ekle'yi tıklayın.
  3. Aşağıdaki Remote Config parametrelerini tanımlayın:

    Parametre adı Açıklama Tür Varsayılan değer
    model_name Model adı. Kodunuzda kullanılacak model adlarının güncel listeleri için Kullanılabilir model adları bölümüne bakın. Dize gemini-1.5-flash
    system_instructions Sistem talimatları, belirli ihtiyaçlar ve kullanım alanlarına bağlı olarak model davranışını etkilemek için modelin son kullanıcıdan gelen ek talimatlarla karşılaşmadan önce eklediğiniz bir "ön parça"dır. Dize You are a helpful assistant who knows everything there is to know about Firebase!
    prompt Üretken yapay zeka özelliğinizle kullanılacak varsayılan istem. Dize I am a developer who wants to know more about Firebase!
    vertex_location İsteğe bağlı olarak, Vertex AI hizmetini çalıştırmak ve bir modele erişmek için konumu kontrol edin. Bu seçeneği Google Analytics tarafından algılanan istemci konumuna göre yapılandırmak için koşullar ayarlayabilirsiniz. Dize us-central1
  4. Parametre ekleme işlemini tamamladığınızda Değişiklikleri yayınla'yı tıklayın. Bu yeni bir Remote Config şablonu değilse değişiklikleri inceleyin ve Değişiklikleri yayınla'yı tekrar tıklayın.

2. Adım: Remote Config SDK'sını ekleyin ve başlatın

Remote Config SDK'sını ekleyin ve başlatın:

  1. Kodunuzu bir metin düzenleyicide açın ve Remote Config dosyasını içe aktarın:

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. Birincil işlevinizde ve Firebase uygulaması Vertex AI in Firebase SDK'sı için başlatıldıktan sonra Remote Config'ı başlatın:

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. Minimum getirme aralığı ayarlayın. Bu örnekte varsayılan getirme aralığı 3.600 saniyedir ancak geliştirme sırasında kodunuzda nispeten düşük bir minimum getirme aralığı belirlemenizi öneririz.

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

3. Adım: Uygulama içi parametre değerlerini ayarlayın

Müşteri ağ erişimi kesintiye uğradığında ve/veya arka uçta hiçbir değer yapılandırılmamışsa uygulamanızın Remote Config arka ucuna bağlanmadan önce işlevsel olması için Remote Config nesnesinde uygulama içi varsayılan parametre değerlerini ayarlamanız gerekir.

Bu örnekte, model adı, sistem talimatları, kullanıcı istemi ve Vertex AI konumu için varsayılan değerleri manuel olarak ayarlarsınız:

// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
  model_name: 'gemini-1.5-flash',
  system_instructions:
    'You are a helpful assistant who knows everything there is to know about Firebase!',
  prompt: 'I am a developer who wants to know more about Firebase!',
  vertex_location: 'us-central1',
};

4. Adım: Değerleri getirin ve etkinleştirin

  1. İçe aktarma işlemlerinize getValue ve fetchAndActivate ekleyin:

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. Varsayılan Remote Config değerlerini yapılandırmak için eklediğiniz koddan sonra yapılandırmayı getirin ve etkinleştirin, ardından modelName, systemInstructions, prompt ve vertexLocation sabitlerine değerler atayın.

    // Fetch and activate Remote Config.
    try {
      await fetchAndActivate(remoteConfig);
    } catch(err) {
      console.error('Remote Config fetch failed', err);
    }
    
    console.log('Remote Config fetched.');
    
    // Assign Remote Config values.
    const modelName = getValue(remoteConfig, 'model_name').asString();
    const systemInstructions = getValue(remoteConfig, 'system_instructions').asString();
    const prompt = getValue(remoteConfig, 'prompt').asString();
    const vertexLocation = getValue(remoteConfig, 'vertex_location').asString();
    

5. Adım: Vertex AI çağrılarını Remote Config değerlerini kullanacak şekilde güncelleyin

Remote Config tamamen yapılandırıldığında, sabit kodlanmış değerleri Remote Config kaynaklı değerlerle değiştirecek şekilde kodunuzu güncelleyin. Örneğin, Firebase SDK'larında Vertex AI'ı kullanarak Gemini API'ye başlama başlıklı makalede kullanılan örneği kullanıyorsanız örneği aşağıdaki gibi güncelleyebilirsiniz:

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
const vertexAI = getVertexAI(firebaseApp, { location: vertexLocation });

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
const model = getGenerativeModel(vertexAI, {
  model: modelName,
  systemInstruction: systemInstruction
});

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  const userPrompt = prompt;

  // To generate text output, call generateContent with the text input
  const result = await model.generateContent(userPrompt);

  const response = result.response;
  const text = response.text();
  console.log(text);
}

6. Adım: Uygulamayı çalıştırın

Uygulamayı çalıştırın ve çalıştığını doğrulayın. Firebase konsolundaki Remote Config sayfasından yapılandırmanızda değişiklik yapın, değişiklikleri yayınlayın ve sonucu doğrulayın.

Sonraki adımlar