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

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

Untuk bagian non-teks pada input (seperti file media), Anda dapat memilih untuk menggunakan Cloud Storage for Firebase guna menyertakan file dalam permintaan. Secara garis besar, berikut hal-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 dapat menentukan jenis MIME file dan URL Cloud Storage for Firebase-nya (yang selalu dimulai dengan gs://) dalam input permintaan. Nilai ini adalah metadata yang otomatis ditetapkan ke file apa pun yang diupload ke bucket Cloud Storage.

  • Anda harus menggunakan URL dan jenis file 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, 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. 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. Namun, jika file berukuran kecil, Anda sering kali dapat meneruskannya langsung sebagai data inline (tetapi perlu diperhatikan bahwa file yang diberikan sebagai data inline akan dienkode ke base64 selama pengiriman, sehingga akan memperbesar ukuran permintaan).

Berikut adalah 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 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 kualitas jaringan mereka buruk atau tidak stabil.

    • Jika proses upload atau download file terganggu, Cloud Storage for Firebase SDK akan otomatis memulai ulang operasi ini dari posisi terakhir yang terhenti.
    • File yang sama yang diupload dapat digunakan beberapa kali tanpa pengguna akhir harus mengupload file yang sama setiap kali diperlukan di aplikasi Anda (seperti pada 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 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 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 ini 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 Anda 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 tersebut. Contoh:

  • Jika Anda memiliki aturan publik, semua 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 sebagai file yang sepenuhnya dapat diakses secara publik).

  • Jika Anda memiliki aturan yang andal (sangat direkomendasikan), Firebase akan memeriksa apakah pengguna atau klien yang login memiliki akses yang memadai ke file tersebut sebelum mengizinkan panggilan untuk 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 harus Anda lakukan:

  1. Membuat bucket Cloud Storage for Firebase di project Firebase.

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

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

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

Langkah 2: Upload file ke bucket

Saat Anda mengupload file ke bucket, Cloud Storage otomatis menerapkan dua informasi berikut ke file tersebut. 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 selama proses upload dan menerapkan metadata tersebut ke objek dalam bucket. Namun, Anda dapat menetapkan jenis MIME selama proses upload secara opsional.

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

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

Setelah file disimpan 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 menunjukkan 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 jenis MIME dan URL menggunakan referensi Storage

Gunakan opsi ini jika Anda baru saja mengupload file ke bucket, dan ingin segera menyertakan file tersebut (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 ingin menyertakannya secara eksplisit dalam permintaan multimodal. Panggilan memerlukan jenis MIME dan URL.