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

Saat memanggil Gemini API dari aplikasi Anda menggunakan Vertex AI in Firebase SDK, Anda dapat memerintahkan model Gemini untuk membuat 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 dari input (seperti file media), Anda dapat menggunakan Cloud Storage for Firebase untuk menyertakan file dalam permintaan. Di berikut ini hal yang perlu Anda ketahui tentang fitur ini:

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

  • Anda menetapkan jenis MIME file dan URL Cloud Storage for Firebase-nya (yang selalu dimulai dengan gs://) dalam input permintaan. Nilai-nilai ini bersifat metadata yang otomatis ditetapkan ke setiap file yang diupload ke Cloud Storage direktori VM dengan bucket.

  • Anda harus menggunakan URL dan jenis file yang didukung.


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

Ingin melihat contoh kode? Atau apakah Anda sudah menyiapkan Cloud Storage for Firebase dan Anda 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 jaringan yang sama cepat, aman, dan infrastruktur skalabel seperti Google Cloud Storage untuk menyimpan blob dan file, dan SDK kliennya dibuat khusus untuk aplikasi seluler dan web.

Untuk Vertex AI in 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, lalu 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 (Namun, perlu diperhatikan bahwa file yang disediakan sebagai data inline dienkode ke base64 di transit, yang akan meningkatkan ukuran permintaan).

Berikut adalah beberapa manfaat tambahan dari penggunaan Cloud Storage for Firebase:

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

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

    • Jika proses upload atau download file terganggu, Cloud Storage for Firebase SDK otomatis memulai ulang operasi dari bagian terakhirnya.
    • File yang sama yang diupload dapat digunakan beberapa kali tanpa pengguna akhir harus mengunggah file yang sama setiap kali dibutuhkan di aplikasi Anda (seperti di permintaan multimodal baru).
  • Anda dapat membatasi akses pengguna akhir ke file yang disimpan di Cloud Storage for Firebase dengan menggunakan Firebase Security Rules, yang memungkinkan pengguna yang berwenang saja untuk mengunggah, mengunduh, atau menghapus file.

  • Anda dapat mengakses file dalam bucket Anda dari Firebase atau dari Google Cloud, yang memberi Anda fleksibilitas untuk melakukan pemrosesan sisi server seperti pemfilteran atau transcoding video menggunakan Google Cloud Storage API.

Jenis file dan URL apa yang didukung?

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

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

  • File harus disimpan di bucket Cloud Storage for Firebase (yang berarti bucket dapat diakses oleh layanan Firebase, seperti Firebase Security Rules). Jika Anda dapat melihat bucket di Konsol Firebase, maka itu adalah bucket Cloud Storage for Firebase.

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

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

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

Selain itu, Firebase Security Rules untuk bucket Anda harus memungkinkan akses yang sesuai ke file tersebut. Contoh:

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

  • Jika Anda memiliki aturan yang andal (sangat direkomendasikan), Firebase akan memeriksa apakah pengguna yang login atau memiliki akses yang memadai ke file sebelum membiarkan panggilan itu berjalan melalui URL yang diberikan.

Gunakan Cloud Storage for Firebase URL dengan Vertex AI in Firebase

Langkah 1: Siapkan Cloud Storage for Firebase

Berikut adalah tugas tingkat tinggi yang harus Anda lakukan:

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

  2. Terapkan Firebase Security Rules ke bucket ini. Firebase Security Rules membantu Anda mengamankan file Anda dengan membatasi akses ke pengguna akhir yang berwenang.

  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 secara otomatis akan menerapkan dua bagian informasi berikut ke file. Anda harus menyertakan nilai-nilai ini dalam permintaan multimodal (seperti yang ditunjukkan pada langkah panduan).

  • 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 juga dapat menetapkan jenis MIME selama proses upload.

  • URL Cloud Storage for Firebase: 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-nya 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 (melalui referensi Storage) dalam permintaan. Panggilan 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-nilai untuk jenis MIME dan Cloud Storage for Firebase, dan Anda ingin menyertakannya secara eksplisit dalam permintaan multimodal. Panggilan memerlukan jenis MIME dan URL.