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 razie potrzeby lub w różnych sytuacjach:

  • Zaktualizuj model generatywnej AI bez publikowania nowej aplikacji. Możesz uaktualnić model do nowszej, stabilnej wersji przed wycofaniem wcześniejszych wersji, wybrać tańsze lub wyższe modele wydajności na podstawie potrzeb i atrybutów użytkowników albo warunkowo wdrożyć najnowsze i najlepsze modele wśród określonych segmentów użytkowników (np. beta-testerów).
  • Ustaw lokalizację, w której będziesz uzyskiwać dostęp do modelu, aby była ona bliżej użytkowników.
  • Przetestuj różne instrukcje i prompty systemowe za pomocą testów A/B, a następnie stopniowo udostępniaj użytkownikom najlepsze wartości eksperymentu.
  • Używaj flag funkcji, aby szybko włączać i wyłączać funkcje generatywnej AI w aplikacji.

Firebase Remote Config robi wszystko, co jest potrzebne, dzięki czemu możesz aktualizować wartości parametrów w miarę potrzeb i warunkowo dla wystąpień aplikacji, które odpowiadają cechom ustawionym w konsoli Firebase, bez konieczności publikowania nowej wersji aplikacji.

Ten przewodnik zawiera konkretne zalecane przypadki użycia oraz opis sposobu dodawania Remote Config do aplikacji korzystającej z generatywnej AI.

Przejdź do implementacji kodu

Dlaczego warto używać Firebase Remote Config w swojej 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 bezpieczeństwa bez aktualizacji aplikacji: zapisuj instrukcje systemu i ustawienia bezpieczeństwa w parametrach Remote Config, aby móc je zmienić w dowolnym momencie, jeśli po wdrożeniu zauważysz 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 mieć pewność, że użytkownicy Androida, iOS i platformy internetowej otrzymają dokładne instrukcje.

  • Personalizowanie wrażeń dla każdego użytkownika: użyj Remote Config personalizacji, aby automatycznie określać optymalne ustawienia AI generatywnej dla każdego użytkownika.

  • Kontrola kosztów: możesz zdalnie dostosowywać, które modele generatywnej AI są wywoływane i jak często są używane, oraz dynamicznie konfigurować maksymalne wartości tokenów wyjściowych na podstawie grupy odbiorców, aby zmniejszyć niepotrzebne koszty.

  • Optymalizacja wrażeń z aplikacji i jej wyników: możesz używać A/B Testing w aplikacji Remote Config na iOS, Androidzie i Flutter, aby testować zmiany w parametrach generatywnej AI w różnych segmentach użytkowników i sprawdzać, jak wpływają one na kluczowe wskaźniki, takie jak retencja i przychody.

Dołączając do aplikacji Firebase Remote Config generatywną AI, możesz tworzyć elastyczne, bezpieczne i opłacalne aplikacje oparte na AI, a jednocześnie zapewniać użytkownikom świetne 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 kontrolować parametry i w razie potrzeby dostosowywać zachowanie i możliwości modelu.

Wymagania wstępne

W tym przewodniku zakładamy, że znasz JavaScript i wiesz, jak tworzyć aplikacje internetowe. Ten przewodnik jest niezależny od platformy. Zanim zaczniesz, wykonaj te czynności:

  • Zapoznaj się z przewodnikiem dla początkujących dotyczącym pakietu SDK Vertex AI in Firebase. Upewnij się, że wykonałeś/wykonałaś 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, rejestrując ją i dodając do niej konfigurację Firebase.
    3. Dodaj pakiet SDK i inicjuj w aplikacji usługę Vertex AI oraz model generatywnej AI.
  • Włącz w projekcie Google Analytics i dodaj jego pakiet SDK do swojej aplikacji (wymagane w przypadku kierowania warunkowego, np. 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 Remote Config dla klienta i skonfiguruj parametry oraz wartości, które będą pobierane i używane w aplikacji.

  1. Otwórz konsolę Firebase i w menu nawigacji rozwiń Uruchom, a następnie wybierz Remote Config.
  2. Sprawdź, czy w selektorze Klient/serwer u góry strony Remote Config wybrano opcję 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-1.5-flash
    system_instructions Instrukcje systemowe to coś w rodzaju „wstępu”, który dodajesz przed udostępnieniem modelu, aby użytkownik mógł wpływać na jego działanie 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 pakiet SDK Remote Config

Dodaj i inicjuj pakiet SDK Remote Config:

  1. Otwórz kod w edytorze tekstu i zaimportuj Remote Config:

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. Wewnątrz funkcji głównej i po zainicjowaniu aplikacji Firebase dla pakietu SDK Vertex AI in Firebase zainicjuj Remote Config:

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. Ustaw minimalny interwał pobierania. W tym przykładzie domyślny interwał pobierania wynosi 3600 sekund, ale zalecamy, aby podczas tworzenia kodu ustawić stosunkowo krótki minimalny interwał pobierania.

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

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 do sieci klienta zostanie przerwany lub jeśli na zapleczu nie skonfigurowano żadnych wartości.

W tym przykładzie ręcznie ustawiasz wartości domyślne dla nazwy modelu, instrukcji systemu, prompta użytkownika i lokalizacji Vertex AI:

// 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',
};

Krok 4. Pobierz i aktywuj wartości

  1. Dodaj do importu plików getValuefetchAndActivate:

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. Po kodzie dodanym w celu skonfigurowania domyślnych wartości Remote Config pobierz i aktywuj konfigurację, a potem przypisz wartości do stałych modelName, systemInstructions, prompt i vertexLocation.

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

Krok 5. Zaktualizuj wywołania Vertex AI, aby używały wartości Remote Config.

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. Jeśli na przykład używasz przykładu zamieszczonego w artykule Pierwsze kroki z Gemini API za pomocą pakietów SDK Vertex AI w Firebase, zaktualizuj go w ten sposób:

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

Krok 6. Uruchom aplikację

Uruchom aplikację i sprawdź, czy działa. Wprowadź zmiany w konfiguracji na stronie Remote Config w konsoli Firebase, opublikuj zmiany i zweryfikuj ich wyniki.

Dalsze kroki