Menyertakan file besar dalam permintaan multimodal dan mengelola file menggunakan Cloud Storage for Firebase

Saat memanggil Gemini API dari aplikasi menggunakan Vertex AI for Firebase SDK, Anda dapat meminta model Gemini untuk menghasilkan teks berdasarkan input multimodal. Dialog multimodal dapat mencakup beberapa modalitas (atau jenis input), seperti teks beserta gambar, PDF, video, dan audio.

Untuk bagian non-teks dari input (seperti file media), Anda dapat menggunakan Cloud Storage for Firebase secara opsional untuk menyertakan file dalam permintaan. Secara tingkat tinggi, berikut hal yang perlu Anda ketahui tentang fitur ini:

  • Anda dapat menggunakan Cloud Storage for Firebase dengan permintaan multimodal apa pun (seperti pembuatan teks dan chat). Contoh dalam panduan ini menunjukkan input teks dan gambar dasar.

  • Anda menentukan jenis MIME file dan URL Cloud Storage for Firebase-nya (yang selalu diawali dengan gs://) dalam input permintaan. Nilai ini adalah metadata yang otomatis ditetapkan ke setiap file yang diupload ke bucket Cloud Storage.

  • Anda harus menggunakan jenis file dan URL yang didukung.


Panduan solusi ini menjelaskan cara menyiapkan Cloud Storage for Firebase di Google Cloud, mengupload file ke bucket Cloud Storage for Firebase dari aplikasi Anda, lalu menyertakan jenis MIME file dan URL Cloud Storage for Firebase dalam permintaan multimodal ke Gemini API.

Ingin melihat contoh kode? Atau apakah Anda sudah menyiapkan Cloud Storage for Firebase dan siap untuk mulai menggunakannya dengan permintaan multimodal?

Langsung ke contoh kode

Mengapa menggunakan Cloud Storage for Firebase dengan aplikasi Anda?

Cloud Storage for Firebase menggunakan infrastruktur yang cepat, aman, dan skalabel seperti Google Cloud Storage untuk menyimpan blob dan file, dan SDK kliennya dibuat khusus untuk aplikasi seluler dan web.

Untuk Vertex AI for Firebase SDK, ukuran permintaan maksimum adalah 20 MB. Anda akan mendapatkan error HTTP 413 jika permintaan terlalu besar. Jika ukuran file akan membuat total ukuran permintaan melebihi 20 MB, gunakan URL Cloud Storage for Firebase untuk menyertakan file dalam permintaan multimodal Anda. Namun, jika file berukuran kecil, Anda sering kali dapat meneruskannya langsung sebagai data inline (perlu diperhatikan bahwa file yang diberikan sebagai data inline dienkode ke base64 selama transit, yang akan meningkatkan ukuran permintaan).

Berikut ini beberapa manfaat tambahan menggunakan Cloud Storage for Firebase:

  • Anda dapat meminta pengguna akhir mengupload gambar langsung dari aplikasi ke bucket Cloud Storage for Firebase, lalu menyertakan gambar tersebut ke dalam perintah multimodal hanya dengan menentukan jenis MIME file dan URL Cloud Storage for Firebase (yang merupakan ID untuk file tersebut).

  • Anda dapat menghemat waktu dan bandwidth pengguna akhir jika mereka perlu menyediakan gambar, terutama jika mereka memiliki kualitas jaringan yang buruk atau tidak stabil.

    • Jika upload atau download file terganggu, Cloud Storage for Firebase SDK akan otomatis memulai ulang operasi tepat dari posisi terakhir operasi tersebut.
    • File upload yang sama dapat digunakan beberapa kali tanpa mengharuskan pengguna akhir mengupload file yang sama setiap kali diperlukan di aplikasi Anda (seperti dalam permintaan multimodal baru).
  • Anda dapat membatasi akses pengguna akhir ke file yang disimpan di Cloud Storage for Firebase menggunakan Aturan Keamanan Firebase, yang hanya mengizinkan pengguna yang diotorisasi untuk mengupload, mendownload, atau menghapus file.

  • Anda dapat mengakses file di bucket dari Firebase atau dari Google Cloud, sehingga Anda memiliki fleksibilitas untuk melakukan pemrosesan sisi server seperti pemfilteran gambar atau transcoding video menggunakan Google Cloud Storage API.

Jenis file dan URL apa yang didukung?

Berikut adalah persyaratan untuk file dan URL jika Anda ingin menggunakan URL Cloud Storage for Firebase dengan Vertex AI for Firebase SDK:

  • File tersebut harus memenuhi persyaratan file input untuk permintaan multimodal saat menggunakan Vertex AI for Firebase SDK. Hal ini mencakup persyaratan seperti jenis MIME dan ukuran file.

  • File tersebut harus disimpan di bucket Cloud Storage for Firebase (yang berarti bucket dapat diakses oleh layanan Firebase, seperti Aturan Keamanan Firebase). Jika Anda dapat melihat bucket di Firebase console, berarti bucket tersebut adalah bucket Cloud Storage for Firebase.

  • Bucket Cloud Storage for Firebase harus berada dalam project Firebase yang sama tempat Anda mendaftarkan aplikasi.

  • URL Cloud Storage for Firebase file harus diawali dengan gs://, yang merupakan cara pembuatan semua URL Google Cloud Storage.

  • URL file tidak boleh berupa URL "browser" (misalnya, URL gambar yang Anda temukan di internet).

Selain itu, Aturan Keamanan Firebase untuk bucket Anda harus mengizinkan akses yang sesuai ke file. Contoh:

  • Jika Anda memiliki aturan publik, setiap pengguna atau klien dapat mengakses file dan memberikan URL-nya dalam panggilan menggunakan Vertex AI for Firebase SDK. Jenis aturan ini hanya boleh digunakan untuk memulai dan selama pembuatan prototipe awal (kecuali jika file tersebut benar-benar dimaksudkan untuk menjadi file yang dapat diakses sepenuhnya oleh publik).

  • Jika Anda memiliki aturan yang andal (sangat direkomendasikan), Firebase akan memeriksa apakah pengguna atau klien yang login memiliki akses yang memadai ke file sebelum mengizinkan panggilan dilakukan dengan URL yang diberikan.

Menggunakan URL Cloud Storage for Firebase dengan Vertex AI for Firebase

Langkah 1: Siapkan Cloud Storage for Firebase

Berikut adalah tugas tingkat tinggi yang perlu Anda lakukan:

  1. Buat bucket Cloud Storage for Firebase di project Firebase Anda.

  2. Terapkan Aturan Keamanan Firebase ke bucket ini. Aturan Keamanan Firebase membantu Anda mengamankan file dengan membatasi akses hanya untuk pengguna akhir yang sah.

  3. Tambahkan library klien untuk Cloud Storage for Firebase ke aplikasi Anda.

    Perlu diperhatikan bahwa Anda dapat melewati tugas ini, tetapi Anda harus selalu menyertakan jenis MIME dan nilai URL Cloud Storage for Firebase secara eksplisit dalam permintaan multimodal.

Langkah 2: Upload file ke bucket

Saat Anda mengupload file ke bucket, Cloud Storage secara otomatis menerapkan dua informasi berikut ke file. Anda harus menyertakan nilai-nilai ini dalam permintaan multimodal (seperti yang ditunjukkan pada langkah berikutnya dalam panduan ini).

  • Jenis MIME: Ini adalah jenis media file (misalnya, image/png). Cloud Storage for Firebase akan otomatis mencoba mendeteksi jenis MIME saat mengupload dan menerapkan metadata tersebut ke objek dalam bucket. Namun, Anda juga dapat menentukan jenis MIME selama proses upload.

  • URL Cloud Storage for Firebase: Ini adalah ID unik untuk file. URL harus diawali dengan gs://.

Langkah 3: Sertakan URL dan jenis MIME file dalam permintaan multimodal

Setelah memiliki file yang tersimpan di bucket Cloud Storage for Firebase, Anda dapat menyertakan jenis MIME dan URL Cloud Storage for Firebase dalam permintaan multimodal. Perlu diperhatikan bahwa contoh ini menampilkan permintaan generateContent non-streaming, tetapi Anda juga dapat menggunakan URL Cloud Storage for Firebase dengan streaming dan chat.

Untuk menyertakan file dalam permintaan, Anda dapat menggunakan salah satu opsi berikut:

Opsi 1: Sertakan URL dan jenis MIME menggunakan referensi Storage

Gunakan opsi ini jika Anda baru saja mengupload file ke bucket, dan ingin segera menyertakan file (melalui referensi Storage) dalam permintaan multimodal. Panggilan ini memerlukan jenis MIME dan URL Cloud Storage for Firebase.

Opsi 2: Sertakan jenis MIME dan URL secara eksplisit

Gunakan opsi ini jika Anda mengetahui nilai untuk jenis MIME dan URL Cloud Storage for Firebase, dan Anda ingin menyertakannya secara eksplisit dalam permintaan multimodal. Panggilan memerlukan jenis MIME dan URL.