Uwzględniaj duże pliki w żądaniach multimodalnych i zarządzaj plikami za pomocą Cloud Storage dla Firebase

Gdy wywołujesz Gemini API z aplikacji za pomocą pakietu SDK Vertex AI in Firebase, możesz poprosić model Gemini o wygenerowanie tekstu na podstawie danych wejściowych multimodalnych. Prompty multimodalne mogą zawierać wiele modalności (lub rodzajów danych wejściowych), np. tekst wraz z obrazami, plikami PDF, wideo i dźwiękowymi.

W przypadku części danych wejściowych innych niż tekst (np. plików multimedialnych) możesz opcjonalnie użyć znaku Cloud Storage for Firebase, aby uwzględnić pliki w żądaniu. Oto najważniejsze informacje o tej funkcji:

  • Możesz używać Cloud Storage for Firebase do obsługi dowolnych multimodalnych żądań (takich jak generowanie tekstu i czat). Przykłady w tym przewodniku pokazują podstawowe dane wejściowe w postaci tekstu i obrazu.

  • W danych wejściowych żądania określasz typ MIME pliku i jego adres URL Cloud Storage for Firebase (który zawsze zaczyna się od gs://). Te wartości to metadane automatycznie przypisywane do dowolnego pliku przesłanego do zasobnika Cloud Storage.

  • Musisz użyć obsługiwanego typu pliku i adresu URL.


Z tego przewodnika dowiesz się, jak skonfigurować Cloud Storage for Firebase, przesłać plik do zasobnika Cloud Storage for Firebase z aplikacji, a potem dołączyć typ MIME pliku i adres URL Cloud Storage for Firebase do żądania multimodalnego do Gemini API.

Czy chcesz zobaczyć przykłady kodu? A może masz już skonfigurowane Cloud Storage for Firebase i chcesz zacząć używać go do obsługi żądań multimodalnych?

Przejdź do przykładów kodu

Dlaczego warto używać Cloud Storage for Firebase w aplikacji?

Cloud Storage for Firebase korzysta z tej samej szybkiej, bezpiecznej i skalowalnej infrastruktury co Google Cloud Storage do przechowywania blobów i plików. Pakiety SDK klienta są tworzone specjalnie na potrzeby aplikacji mobilnych i internetowych.

W przypadku pakietów SDK Vertex AI in Firebase maksymalny rozmiar żądania to 20 MB. Jeśli żądanie jest zbyt duże, otrzymasz błąd HTTP 413. Jeśli rozmiar pliku spowoduje, że łączny rozmiar żądania przekroczy 20 MB, użyj adresu URL Cloud Storage for Firebase, aby uwzględnić plik w żądaniu multimodalnym. Jednak jeśli plik jest mały, często można go przekazać bezpośrednio jako dane wbudowane (pamiętaj jednak, że plik udostępniony jako dane wbudowane jest podczas przesyłania kodowany w formacie base64, co zwiększa rozmiar żądania).

Oto dodatkowe korzyści płynące z użycia Cloud Storage for Firebase:

  • Możesz umożliwić użytkownikom przesyłanie obrazów bezpośrednio z aplikacji do zasobnika Cloud Storage for Firebase, a potem dołączać je do swoich multimodalnych promptów, określając typ MIME pliku i adres URL zasobnika Cloud Storage for Firebase (który jest identyfikatorem pliku).

  • Jeśli użytkownicy muszą przesłać obrazy, możesz zaoszczędzić im czasu i przepustowości, zwłaszcza jeśli mają problemy z jakością połączenia.

    • Jeśli przesyłanie lub pobieranie pliku zostanie przerwane, Cloud Storage for Firebase SDK automatycznie wznowi działanie w miejscu, w którym zostało przerwane.
    • Przesłany plik może być używany wielokrotnie bez konieczności przesyłania go za każdym razem, gdy jest potrzebny w aplikacji (np. w przypadku nowego żądania multimodalnego).
  • Aby ograniczyć dostęp użytkowników do plików przechowywanych w usłudze Cloud Storage for Firebase, użyj funkcji Firebase Security Rules, która umożliwia przesyłanie, pobieranie i usuwanie plików tylko uprawnionym użytkownikom.

  • Do plików w Twoim zbiorniku możesz uzyskać dostęp z Firebase lub z poziomu Google Cloud, co daje Ci elastyczność w przetwarzaniu po stronie serwera, np. filtrowaniu obrazów czy transkodowaniu filmów za pomocą interfejsów API Google Cloud Storage.

Jakie typy plików i adresów URL są obsługiwane?

Oto wymagania dotyczące plików i adresów URL, które musisz spełnić, aby używać adresów URL Cloud Storage for Firebase z pakietami SDK Vertex AI in Firebase:

  • Podczas korzystania z pakietów SDK Vertex AI in Firebase plik musi spełniać wymagania dotyczące plików wejściowych w przypadku żądań multimodalnych. Dotyczy to wymagań takich jak typ MIME i rozmiar pliku.

  • Plik musi być przechowywany w zasobniku Cloud Storage for Firebase (co oznacza, że jest on dostępny dla usług Firebase, takich jak Firebase Security Rules). Jeśli możesz wyświetlić swój zasób w konsoli Firebase, oznacza to, że jest to zasób Cloud Storage for Firebase.

  • Zasobnik Cloud Storage for Firebase musi znajdować się w tym samym projekcie Firebase, w którym zarejestrowano aplikację.

  • Adres URL pliku Cloud Storage for Firebase musi zaczynać się od gs://, ponieważ w taki sposób budowane są wszystkie adresy URL Google Cloud Storage.

  • Adres URL pliku nie może być adresem „przeglądarki” (np. adresem URL obrazu znalezionego w internecie).

Dodatkowo Firebase Security Rules zasobnika musi zapewniać odpowiedni dostęp do pliku. Przykład:

  • Jeśli masz reguły publiczne, każdy użytkownik lub klient może uzyskać dostęp do pliku i podać jego adres URL w wywołaniu za pomocą pakietu SDK Vertex AI in Firebase. Tego typu reguł należy używać tylko na początku i podczas wczesnego prototypowania (chyba że pliki mają być całkowicie dostępne publicznie).

  • Jeśli masz solidne reguły (bardzo zalecane), Firebase sprawdzi, czy zalogowany użytkownik lub klient ma wystarczający dostęp do pliku, zanim zezwoli na wywołanie z podanym adresem URL.

Korzystanie z adresów URL Cloud Storage for Firebase w przypadku Vertex AI in Firebase

Krok 1. Skonfiguruj Cloud Storage for Firebase

Oto ogólne czynności, które musisz wykonać:

  1. Utwórz zasobnik Cloud Storage for Firebase w projekcie Firebase.

  2. Zastosuj Firebase Security Rules do tego zasobnika. Firebase Security Rules ułatwiają zabezpieczanie plików przez ograniczanie dostępu do nich autoryzowanym użytkownikom.

  3. Dodaj do aplikacji bibliotekę klienta Cloud Storage for Firebase.

    Pamiętaj, że możesz pominąć to zadanie, ale wtedy zawsze musisz wyraźnie uwzględniać w multimodalnych żądaniach wartości typu MIME i adresu URL Cloud Storage for Firebase.

Krok 2. Prześlij plik do zasobnika

Gdy przesyłasz plik do zasobnika, Cloud Storage automatycznie stosuje do pliku te 2 rodzaje informacji. Musisz uwzględnić te wartości w żądaniu multimodalnym (jak pokazano w następnym kroku tego przewodnika).

  • Typ MIME: to typ nośnika pliku (np. image/png). Cloud Storage for Firebase spróbuje automatycznie wykryć typ MIME podczas przesyłania i zastosować te metadane do obiektu w zasobniku. Opcjonalnie możesz jednak podać typ MIME podczas przesyłania.

  • Cloud Storage for Firebase URL: unikalny identyfikator pliku. Adres URL musi zaczynać się od gs://.

Krok 3. Uwzględnij typ MIME i adres URL pliku w żądaniu multimodalnym

Po zapisaniu pliku w zasośniku Cloud Storage for Firebase możesz uwzględnić jego typ MIME i adres URL Cloud Storage for Firebase w żądaniu multimodalnym. Pamiętaj, że te przykłady pokazują żądanie generateContent bez strumieniowego przesyłania danych, ale możesz też używać adresów URL Cloud Storage for Firebase z czatem i strumieniowym przesyłaniem danych.

Aby dołączyć plik do żądania, możesz użyć jednej z tych opcji:

Opcja 1. Uwzględnij typ MIME i adres URL za pomocą odwołania do Storage

Użyj tej opcji, jeśli plik został właśnie przesłany do zasobnika i chcesz go od razu uwzględnić (za pomocą odwołania do Storage) w prośbie multimodalnej. Wywołanie wymaga podania typu MIME i adresu URL Cloud Storage for Firebase.

Opcja 2. Wyraźnie podaj typ MIME i adres URL

Użyj tej opcji, jeśli znasz wartości typu MIME i adresu URL Cloud Storage for Firebase i chcesz je wyraźnie uwzględnić w prośbie multimodalnej. Wywołanie wymaga podania zarówno typu MIME, jak i adresu URL.