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 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 nietekstowych (np. plików multimedialnych) możesz opcjonalnie użyć Cloud Storage dla Firebase, aby uwzględnić pliki w żądaniu. Oto co musisz wiedzieć o tej funkcji:

  • Z Cloud Storage dla Firebase można korzystać w przypadku dowolnych żądań multimodalnych (takich jak generowanie tekstu i czat). Przykłady w tym przewodniku pokazują podstawowe dane do wprowadzania tekstu i obrazu.

  • W danych wejściowych żądania określasz typ MIME pliku i jego adres URL Cloud Storage dla 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 dla Firebase w Google Cloud, przesłać z aplikacji plik do zasobnika Cloud Storage dla Firebase, a następnie dodać jego typ MIME i adres URL Cloud Storage dla Firebase w wielomodalnym żądaniu do Gemini API.

Czy chcesz zobaczyć przykłady kodu? 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 wykorzystuje tę samą szybką, bezpieczną i skalowalną infrastrukturę co Google Cloud Storage do przechowywania blobów i plików, a jej pakiety SDK dla klientów są zaprojektowane specjalnie dla aplikacji mobilnych i internetowych.

Maksymalny rozmiar żądania w przypadku pakietów SDK Vertex AI dla Firebase to 20 MB. Jeśli żądanie jest zbyt duże, pojawia się błąd HTTP 413. Jeśli rozmiar pliku spowoduje, że łączny rozmiar żądania przekroczy 20 MB, użyj adresu URL Cloud Storage dla Firebase, aby uwzględnić ten 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 kilka dodatkowych korzyści z używania Cloud Storage dla Firebase:

  • Użytkownicy mogą przesyłać obrazy bezpośrednio z aplikacji do zasobnika Cloud Storage dla Firebase, a następnie umieszczać te obrazy w promptach multimodalnych, określając typ MIME pliku i adres URL Cloud Storage dla Firebase (który jest identyfikatorem pliku).

  • Aby zaoszczędzić czas i przepustowość łącza, możesz zaoszczędzić czas użytkowników, którzy muszą przesyłać obrazy, zwłaszcza gdy jakość połączenia z siecią jest niska lub niestabilna.

    • Jeśli przesyłanie lub pobieranie pliku zostanie przerwane, pakiety SDK Cloud Storage dla Firebase automatycznie wznowią operację od miejsca, w którym została przerwana.
    • Ten sam przesłany plik można użyć wiele razy bez konieczności przesyłania przez użytkownika tego samego pliku za każdym razem, gdy jest to potrzebne w aplikacji (np. w przypadku nowego żądania multimodalnego).
  • Możesz ograniczyć dostęp użytkowników do plików przechowywanych w Cloud Storage dla Firebase za pomocą reguł zabezpieczeń Firebase, które zezwalają wyłącznie upoważnionemu użytkownikowi na przesyłanie, pobieranie i usuwanie plików.

  • Dostęp do plików w zasobniku możesz uzyskać z Firebase lub Google Cloud, co daje elastyczność przetwarzania po stronie serwera, np. filtrowania obrazu czy transkodowania 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, które musisz spełnić, by używać adresów URL Cloud Storage dla Firebase z pakietami SDK Vertex AI dla Firebase:

  • Jeśli używasz pakietów SDK Vertex AI dla Firebase, plik musi spełniać wymagania dotyczące plików wejściowych w przypadku żądań multimodalnych. Obejmuje to takie wymagania jak typ MIME i rozmiar pliku.

  • Plik musi być zapisany 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 aplikacja.

  • Adres URL pliku w Cloud Storage dla Firebase musi zaczynać się od gs://, ponieważ tak są tworzone wszystkie adresy URL w Google Cloud Storage.

  • Nie może to być adres „przeglądarki” (np. adres URL obrazu znalezionego w internecie).

Dodatkowo reguły zabezpieczeń Firebase Twojego zasobnika muszą zezwalać na 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. Reguły tego typu należy stosować tylko na początku i w czasie wczesnych prototypów (chyba że pliki mają być w pełni dostępne publicznie).

  • Jeśli masz niezawodne reguły (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 z Vertex AI dla Firebase

Krok 1. Skonfiguruj Cloud Storage dla Firebase

Oto ogólne zadania, które musisz wykonać:

  1. utworzyć zasobnik Cloud Storage dla Firebase w projekcie Firebase,

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

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

    Pamiętaj, że możesz pominąć to zadanie, ale wtedy musisz zawsze wyraźnie podać typ MIME i adres 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 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 dla Firebase automatycznie spróbuje wykryć typ MIME podczas przesyłania i zastosować te metadane do obiektu w zasobniku. Możesz jednak opcjonalnie określić typ MIME podczas przesyłania.

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

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

Gdy plik zostanie zapisany w zasobniku Cloud Storage dla Firebase, możesz uwzględnić jego typ MIME i adres URL Cloud Storage dla Firebase w żądaniu multimodalnym. Zwróć uwagę, że te przykłady pokazują niestrumieniowe żądanie generateContent, ale możesz też używać adresów URL Cloud Storage dla Firebase do strumieniowania i czatu.

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

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

Użyj tej opcji, jeśli plik został właśnie przesłany do zasobnika i chcesz go natychmiast uwzględnić (przy użyciu 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 uwzględnić je bezpośrednio w żądaniu multimodalnym. Wywołanie wymaga podania zarówno typu MIME, jak i adresu URL.