Dynamiczna aktualizacja Vertex AI w aplikacji Firebase przy użyciu Zdalnej konfiguracji Firebase

Gdy wywołujesz usługę Gemini API z aplikacji za pomocą pakietu SDK Vertex AI in Firebase, Twoje żądanie zawiera kilka parametrów, które kontrolują odpowiedzi generowane przez AI. Zwykle obejmują one nazwę modelu, konfigurację generowania modelu (maksymalna liczba tokenów, temperatura itp.), ustawienia bezpieczeństwa, instrukcje dotyczące systemu i dane promptu.

W większości przypadków warto je zmieniać w miarę potrzeby lub w różnych sytuacjach:

  • Zaktualizuj model generatywnej AI bez wydawania nowej aplikacji. Możesz przejść na nowsze, stabilne wersje modelu, zanim starsze wersje zostaną wycofane, zmienić model na tańszy lub wydajniejszy w zależności od potrzeb i właściwości użytkowników albo w sposób warunkowy wdrożyć najnowsze i najlepsze modele w przypadku określonych segmentów użytkowników (np. testerów wersji beta).
  • Ustaw lokalizację, w której będziesz uzyskiwać dostęp do modelu, aby była ona bliżej użytkowników.
  • Przeprowadź testy A/B różnych instrukcji i promptów, a potem stopniowo wprowadzaj u użytkowników wartości, które okazały się najlepsze w eksperymencie.
  • Używaj flag funkcji, aby szybko wyświetlać lub ukrywać funkcje generatywnej AI w aplikacji.

Firebase Remote Config umożliwia to wszystko i więcej, pozwalając na aktualizowanie wartości parametrów w miarę potrzeby i warunkowo w przypadku instancji aplikacji, które odpowiadają ustawionym przez Ciebie w konsoli Firebase cechom, bez publikowania nowej wersji aplikacji.

Ten przewodnik zawiera konkretne zalecane zastosowania i opisuje, jak dodać Remote Config do aplikacji z generatywną AI.

Przejdź do implementacji kodu

Dlaczego warto używać Firebase Remote Config w aplikacji?

Firebase Remote Config umożliwia dynamiczne dostosowywanie działania aplikacji bez konieczności jej aktualizowania. Jest to szczególnie przydatne w przypadku aplikacji korzystających z generatywnej AI, w których przypadku szybkie iteracje i dostrojenie są kluczowe.

Najważniejsze zastosowania Remote Config w aplikacjach korzystających z generatywnej AI

Zalecamy używanie atrybutu Remote Config z atrybutem Vertex AI in Firebase w następujących podstawowych przypadkach użycia:

  • Przejdź na najnowszą wersję modelu bez aktualizowania aplikacji: użyj parametrów Remote Config, aby w razie potrzeby zmienić nazwę modelu, dzięki czemu będziesz mieć możliwość przejścia na najnowszą wersję preferowanego modelu Gemini, gdy tylko będzie ona dostępna.
  • Aktualizuj instrukcje systemu i ustawienia zabezpieczeń bez aktualizacji aplikacji: przechowuj instrukcje systemu i ustawienia zabezpieczeń w parametrach Remote Config, aby móc je zmienić w dowolnym momencie, jeśli po wdrożeniu pojawią się problemy.
  • Zmniejszanie ryzyka i zapewnienie bezpieczeństwa AI: korzystaj z Remote Config wdrożeń, aby bezpiecznie i stopniowo udostępniać zmiany generatywnej AI użytkownikom iOS i Androida.

Zaawansowane i zalecane zastosowania aplikacji Remote Config z generatywną AI

Po instrumentowaniu aplikacji za pomocą Remote ConfigGoogle Analytics możesz zapoznać się z zastosowaniami zaawansowanymi:

  • Ustaw lokalizację na podstawie lokalizacji klienta: użyj warunków Remote Config, aby ustawić lokalizację modelu na podstawie wykrytej lokalizacji klienta.
  • Eksperymentuj z różnymi modelami: możesz szybko testować i przełączać się między różnymi modelami generatywnej AI, a nawet wdrażać różne modele w różnych segmentach użytkowników, aby znaleźć model najlepiej dopasowany do Twojego przypadku użycia.
  • Optymalizacja wydajności modelu: dostosowanie parametrów modelu, takich jak prompt systemu, maksymalna liczba tokenów wyjściowych, temperatura i inne ustawienia.
  • Używanie różnych instrukcji systemowych, promptów i konfiguracji modelu na podstawie atrybutów klienta: korzystając z usługi Remote Config w usługach Google Analytics, możesz tworzyć warunki na podstawie atrybutów klienta lub list odbiorców niestandardowych i ustawiać różne parametry na podstawie tych atrybutów.

    Jeśli na przykład używasz generatywnej AI do udzielania pomocy technicznej w aplikacji, możesz ustawić instrukcje systemu dotyczące konkretnej platformy aplikacji, aby zapewnić dokładne instrukcje użytkownikom Androida, iOS i platformy internetowej.

  • Personalizuj wrażenia dla każdego użytkownika: korzystaj z Remote Configpersonalizacji, aby automatycznie określać optymalne ustawienia generatywnej AI dla każdego użytkownika.

  • Kontrolowanie kosztów: zdalne dostosowywanie tego, które modele generatywnej AI są wywoływane, jak często są używane i jakie wartości maksymalnych tokenów wyjściowych są konfigurowane dynamicznie na podstawie odbiorców, aby zmniejszyć niepotrzebne koszty.

  • Optymalizacja wrażeń z aplikacji i jej wyników: możesz używać A/B Testing waplikacji na iOS, Androida i Flutter, aby testować zmiany parametrów generatywnej AI w różnych segmentach użytkowników i sprawdzać, jak wpływają one na kluczowe dane, np. na retencję i przychody.Remote Config

Dzięki wykorzystaniu Firebase Remote Config w aplikacji z generatywną AI możesz tworzyć elastyczne, bezpieczne i wydajne aplikacje oparte na AI, a zarazem zapewniać użytkownikom przyjemne wrażenia.

Dodawanie Firebase Remote Config do aplikacji

W tym przewodniku po rozwiązaniach dowiesz się, jak używać pakietu Firebase Remote Config do dynamicznego aktualizowania parametrów w aplikacji na Androida, która korzysta z pakietu SDK Vertex AI in Firebase. Zapoznasz się z tymi zagadnieniami:

  • Pobierz i aktywuj parametry, takie jak nazwy modeli i instrukcje systemu, z Firebase Remote Config.
  • Zaktualizuj wywołania Gemini API, aby używać dynamicznie pobieranych parametrów. Dzięki temu możesz przełączać się między różnymi modelami lub modyfikować instrukcje systemu bez konieczności aktualizowania aplikacji.
  • Zdalnie steruj parametrami, dostosowując w razie potrzeby zachowanie i możliwości modelu.

Wymagania wstępne

W tym przewodniku założyliśmy, że wiesz, jak używać Xcode do tworzenia aplikacji na platformy Apple (np. iOS). Zanim zaczniesz, wykonaj te czynności:

  • Zapoznaj się z przewodnikiem dla początkujących dotyczącym pakietu SDK Vertex AI in Firebase. Najpierw wykonaj te czynności:

    1. Skonfiguruj nowy lub istniejący projekt Firebase, w tym użyj abonamentu Blaze i włącz wymagane interfejsy API.
    2. Połącz aplikację z Firebase, w tym zarejestruj ją i dodaj do niej konfigurację Firebase.
    3. Dodaj pakiet SDK i inicjuj w aplikacji usługę Vertex AI oraz model generatywnej AI.
  • Włącz w projekcie pakiet SDK Google Analytics i dodaj go do aplikacji (jest to wymagane do kierowania warunkowego, np. do ustawiania lokalizacji usługi i modelu na podstawie lokalizacji urządzenia klienta).

Krok 1. Ustaw wartości parametrów w konsoli Firebase

Utwórz szablon klienta Remote Config i skonfiguruj parametry oraz wartości, które mają być pobierane i używane w aplikacji.

  1. Otwórz projekt Firebase w konsoli Firebase i w menu nawigacyjnym rozwiń Uruchom i kliknij Remote Config.
  2. U góry strony Remote Config sprawdź, czy w selektorze Klient/serwer wybrana jest opcja Klient.
    • Jeśli po raz pierwszy używasz szablonów klienta Remote Config, kliknij Utwórz konfigurację. Pojawi się panel Tworzenie pierwszego parametru.
    • Jeśli nie korzystasz z szablonów Remote Config po raz pierwszy, kliknij Dodaj parametr.
  3. Zdefiniuj te parametry Remote Config:

    Nazwa parametru Opis Typ Wartość domyślna
    model_name Nazwa modelu. Aktualne listy nazw modeli do użycia w kodzie znajdziesz w sekcji Dostępne nazwy modeli. Ciąg znaków gemini-2.0-flash
    system_instructions Instrukcje systemowe to coś w rodzaju „wstępu”, który dodajesz przed udostępnieniem modelu użytkownikowi. Pozwalają one na wpływanie na zachowanie modelu na podstawie konkretnych potrzeb i przypadków użycia. Ciąg znaków You are a helpful assistant who knows everything there is to know about Firebase!
    prompt Domyślny prompt do użycia z funkcją generatywnej AI. Ciąg znaków I am a developer who wants to know more about Firebase!
    vertex_location Opcjonalnie możesz kontrolować lokalizację, aby uruchomić usługę Vertex AI i uzyskać dostęp do modelu. Możesz skonfigurować tę opcję, określając warunki na podstawie lokalizacji klienta wykrytej przez Google Analytics. Ciąg znaków us-central1
  4. Gdy skończysz dodawać parametry, kliknij Opublikuj zmiany. Jeśli nie jest to nowy szablon Remote Config, sprawdź zmiany i ponownie kliknij Opublikuj zmiany.

Krok 2. Dodaj i inicjuj Remote Config w aplikacji

Dodaj do aplikacji zależności Remote Config i skonfiguruj Remote Config. W ramach konfiguracji Vertex AI in Firebase dodanego już do aplikacji pakietu SDK Firebase musisz też dodać Remote Config.

  1. W Xcode po otwarciu projektu wybierz Plik > Dodaj zależności pakietu.
  2. Wybierz firebase-ios-sdk, a potem kliknij Dodaj pakiet.
  3. W przewodniku po projekcie wybierz aplikację > Grupy odbiorców > aplikację.
  4. Na karcie Ogólne przewiń do sekcji Frameworki, biblioteki i osadzone treści.
  5. Kliknij kolejno +, FirebaseRemoteConfigDodaj.
  6. Dodaj do kodu instrukcje importu FirebaseRemoteConfig:

    import FirebaseRemoteConfig
    
  7. W odpowiedniej klasie w aplikacji (w próbnej aplikacji jest to klasa VertexAISampleApp w klasie AppDelegate) zainicjuj Firebase i dodaj do głównej logiki aplikacji obiekt Remote Config.

    Tutaj należy uwzględnić Remote ConfigRemote Config jako importowane odbiorcyw czasie rzeczywistym, aby aplikacja mogła pobierać nowe wartości w czasie rzeczywistym, oraz dodać minimalny interwał pobierania:

    let remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 3600
    remoteConfig.configSettings = settings
    

W tym przykładzie domyślny interwał pobierania wynosi 3600 sekund, ale podczas tworzenia kodu zalecamy ustawienie stosunkowo krótkiego minimalnego interwału pobierania.

Krok 3. Ustaw wartości parametrów w aplikacji

Wartości domyślne parametrów w aplikacji należy ustawić w obiekcie Remote Config, aby aplikacja działała, zanim połączy się z backendem Remote Config, jeśli dostęp klienta do sieci zostanie przerwany lub jeśli na zapleczu nie skonfigurowano żadnych wartości.

  1. W konsoli Firebase otwórz Remote Config.
  2. Na karcie Parametry otwórz Menu i wybierz Pobierz wartości domyślne.
  3. Gdy pojawi się taka prośba, włącz plik.plist na iOS, a potem kliknij Pobierz plik.
  4. Zapisz plik w katalogu aplikacji (jeśli używasz przykładowej aplikacji, zapisz go w folderze FirebaseVertexAI/Sample/VertexAISample).
  5. W Xcode kliknij aplikację prawym przyciskiem myszy i wybierz Dodaj pliki (jeśli używasz przykładu, kliknij VertexAISample prawym przyciskiem myszy i wybierz Dodaj pliki do „VertexAISample”).
  6. Wybierz remote_config_defaults.plist i kliknij Dodaj.
  7. Zaktualizuj kod aplikacji, aby odwoływał się do pliku domyślnych:

    // Set default values
    remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
    

Krok 4. Pobierz i aktywuj wartości

Po ustawieniu wartości domyślnych dodaj te informacje, aby pobierać i aktywować wartości:

// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
  if let error = error {
    print("Error fetching Remote Config: \(error.localizedDescription)")
  }
}

Obiekt Remote Config powinien być aktualizowany za każdym razem, gdy publikowany jest nowy szablon Remote Config.

Krok 5. Dodaj odtwarzacz Remote Config w czasie rzeczywistym

Dodaj odbiorcę zdarzeń Remote Config w czasie rzeczywistym, aby mieć pewność, że zmiany wprowadzone w szablonie Remote Config są propagowane do klienta od razu po ich wprowadzeniu.

Poniższy kod aktualizuje obiekt Remote Config za każdym razem, gdy zmienia się wartość parametru.

// Add real-time Remote Config
remoteConfig.addOnConfigUpdateListener { configUpdate, error in
  guard let configUpdate = configUpdate, error == nil else {
    print("Error listening for config updates: \(error?.localizedDescription ?? "No error available")")
    return
  }

  print("Updated keys: \(configUpdate.updatedKeys)")
  remoteConfig.activate { changed, error in
    guard error == nil else {
      print("Error activating config: \(error?.localizedDescription ?? "No error available")")
      return
    }
    print("Activated config successfully")
  }
}

Obiekt Remote Config powinien być aktualizowany za każdym razem, gdy publikowany jest nowy szablon Remote Config.

Krok 6. Przypisz wartości Remote Config do zmiennych Vertex AI.

Gdy usługa Remote Config będzie w pełni skonfigurowana, zaktualizuj kod, aby zastąpić zakodowane na stałe wartości wartościami pochodzącymi z usługi Remote Config.

Utwórz wartości, aby przechowywać wartości promptów modelu i systemu. Poniższy kod pokazuje, jak uzyskać lokalizację, nazwę modelu, instrukcje systemowe, prompt użytkownika i lokalizację Vertex AIRemote Config:

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
let vertexLocation = remoteConfig.configValue(forKey: "vertex_location").stringValue
let vertex = VertexAI.vertexAI(location: vertexLocation)

// Initialize the generative model with a model that supports your use case
// Specify a model that supports system instructions, like a Gemini 1.5 model
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue

let model = vertex.generativeModel(
  modelName: modelName,
  systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)

// Provide a prompt that contains text
let userPrompt = remoteConfig.configValue(forKey: "prompt").stringValue

// To generate text output, call generateContent with the text input
let response = try await model.generateContent(userPrompt)
if let text = response.text {
  print(text)
}

Krok 7. Uruchom aplikację.

Utwórz i uruchom aplikację, a potem sprawdź, czy działa. Wprowadź zmiany w konfiguracji na stronie Remote Config w konsoli Firebase, opublikuj zmiany i sprawdź wynik.

Dalsze kroki