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

Gdy wywołujesz interfejs Gemini API z aplikacji za pomocą pakietu SDK Vertex AI dla Firebase, możesz poprosić model Gemini o wygenerowanie tekstu na podstawie multimodalnych danych wejściowych. Prompty wielomodalne mogą obejmować wiele sposobów (lub rodzajów danych wejściowych), np. tekst wraz z obrazami, plikami PDF, filmami i dźwiękami.

W przypadku nietekstowych części danych wejściowych (takich jak pliki multimedialne) możesz opcjonalnie użyć Cloud Storage dla Firebase, aby uwzględnić pliki w żądaniu. Oto, co należy wiedzieć o tej funkcji:

  • Cloud Storage dla Firebase możesz używać z dowolnymi żądaniami multimodalnymi (takimi jak generowanie tekstu i czat). Przykłady w tym przewodniku obejmują podstawowe metody wprowadzania tekstu i obrazu.

  • W danych wejściowych żądania określasz typ MIME pliku i jego adres URL w Cloud Storage dla Firebase (który zawsze zaczyna się od gs://). Wartości te są metadanymi automatycznie przypisywane do każdego pliku przesłanego do zasobnika Cloud Storage.

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


Ten przewodnik po rozwiązaniach zawiera informacje o tym, jak skonfigurować Cloud Storage dla Firebase w Google Cloud, przesłać plik do zasobnika Cloud Storage dla Firebase z aplikacji, a następnie dodać typ MIME pliku i adres URL Cloud Storage dla Firebase w żądaniu multimodalnym wysyłanym do interfejsu Gemini API.

Czy chcesz zobaczyć przykładowy kod? A może masz już skonfigurowaną usługę Cloud Storage dla Firebase i chcesz zacząć jej używać z żądaniami multimodalnymi?

Przejdź do przykładów kodu

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

Cloud Storage dla Firebase korzysta z tej samej szybkiej, bezpiecznej i skalowalnej infrastruktury co Google Cloud Storage do przechowywania obiektów blob i plików. Jej pakiety SDK klientów zostały opracowane specjalnie z myślą o aplikacjach mobilnych i internetowych.

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

Oto kilka dodatkowych korzyści płynących z używania Cloud Storage dla Firebase:

  • Możesz poprosić użytkowników o przesyłanie obrazów bezpośrednio z aplikacji do zasobnika Cloud Storage dla Firebase. Następnie możesz dołączyć te obrazy do promptów multimodalnych, podając typ MIME pliku i adres URL Cloud Storage dla Firebase (który jest identyfikatorem pliku).

  • Możesz oszczędzić czas i przepustowość użytkowników, jeśli będą chcieli przesyłać obrazy, zwłaszcza jeśli jakość ich sieci jest niska lub niestabilna.

    • Jeśli przesyłanie lub pobieranie plików zostanie przerwane, pakiety SDK Cloud Storage dla Firebase automatycznie wznowią operację w miejscu, w którym została przerwana.
    • Ten sam przesłany plik może być używany wiele razy bez konieczności przesyłania przez użytkownika tego samego pliku za każdym razem, gdy jest on potrzebny aplikacji (np. w nowym żądaniu multimodalnym).
  • Możesz ograniczyć dostęp użytkowników do plików przechowywanych w Cloud Storage dla Firebase, korzystając z reguł zabezpieczeń Firebase, które umożliwiają przesyłanie, pobieranie i usuwanie plików tylko autoryzowanym użytkownikom.

  • Dostęp do plików w zasobniku możesz uzyskać z Firebase lub Google Cloud, co pozwala na przetwarzanie po stronie serwera, np. filtrowanie obrazów lub transkodowanie wideo, za pomocą interfejsów Google Cloud Storage API.

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

Oto wymagania dotyczące plików i adresów URL, gdy chcesz używać adresów URL Cloud Storage dla Firebase z pakietami SDK Vertex AI dla Firebase:

  • Podczas korzystania z pakietów SDK Vertex AI dla 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 dla Firebase (co oznacza, że zasobnik jest dostępny dla usług Firebase, takich jak reguły zabezpieczeń Firebase). Jeśli możesz wyświetlić zasobnik w konsoli Firebase, jest to zasobnik Cloud Storage dla Firebase.

  • Zasobnik Cloud Storage dla Firebase musi być w tym samym projekcie Firebase, w którym została zarejestrowana Twoja aplikacja.

  • Adres URL pliku w Cloud Storage dla Firebase musi zaczynać się od gs://, czyli sposób tworzenia wszystkich adresów URL w Google Cloud Storage.

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

Oprócz tego reguły zabezpieczeń Firebase zasobnika muszą umożliwiać 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 dla Firebase. Tego typu reguł należy używać tylko podczas uruchamiania i wczesnego prototypowania (chyba że pliki mają być w pełni dostępne publicznie).

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

Używanie adresów URL z Cloud Storage dla Firebase w Vertex AI dla Firebase

Krok 1. Skonfiguruj Cloud Storage dla Firebase

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

  1. Utwórz zasobnik Cloud Storage dla Firebase w swoim projekcie Firebase.

  2. Zastosuj reguły zabezpieczeń Firebase do tego zasobnika. Reguły zabezpieczeń Firebase pomagają zabezpieczyć pliki, ograniczając dostęp do nich autoryzowanym użytkownikom.

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

    Pamiętaj, że możesz pominąć to zadanie, ale wtedy zawsze musisz jednoznacznie podawać typ MIME i wartości adresów URL Cloud Storage dla Firebase w żądaniach multimodalnych.

Krok 2. Prześlij plik do zasobnika

Gdy przesyłasz plik do zasobnika, Cloud Storage automatycznie stosuje do niego te 2 informacje. 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 dla Firebase będzie automatycznie próbowała wykryć typ MIME podczas przesyłania i zastosować metadane do obiektu w zasobniku. Podczas przesyłania możesz jednak opcjonalnie określić typ MIME.

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

Krok 3. Dołącz typ MIME i adres URL pliku w żądaniu multimodalnym

Po zapisaniu pliku w zasobniku Cloud Storage dla Firebase możesz uwzględnić jego typ MIME i adres URL Cloud Storage dla Firebase w żądaniu multimodalnym. Te przykłady pokazują żądanie generateContent niestrumieniowe, ale możesz też użyć adresów URL Cloud Storage dla Firebase ze strumieniowaniem i czatem.

Aby dołączyć plik do prośby, możesz skorzystać z jednej z tych opcji:

Opcja 1. Uwzględnij typ MIME i adres URL, korzystając z odniesienia do Cloud Storage

Użyj tej opcji, jeśli plik został właśnie przesłany do zasobnika i chcesz go natychmiast dołączyć (za pomocą odwołania do Cloud Storage) w żądaniu multimodalnym. Wywołanie wymaga zarówno typu MIME, jak i adresu URL Cloud Storage dla 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 dla Firebase i chcesz je wyraźnie uwzględnić w żądaniu multimodalnym. Wywołanie wymaga podania zarówno typu MIME, jak i adresu URL.