รวมไฟล์ขนาดใหญ่ในคำขอแบบหลายโมดัลและจัดการไฟล์โดยใช้ Cloud Storage สำหรับ Firebase

เมื่อเรียกใช้ Gemini API จากแอปโดยใช้ Vertex AI สำหรับ Firebase SDK คุณสามารถสั่งให้โมเดล Gemini สร้างข้อความที่อิงตามอินพุตหลายรูปแบบได้ พรอมต์หลายรูปแบบอาจรวมถึงวิธีการหลายรูปแบบ (หรือการป้อนข้อมูลประเภทต่างๆ) เช่น ข้อความพร้อมกับรูปภาพ, PDF, วิดีโอ และเสียง

สำหรับส่วนที่ไม่ใช่ข้อความในอินพุต (เช่น ไฟล์สื่อ) คุณจะเลือกใช้ Cloud Storage for Firebase เพื่อรวมไฟล์ในคำขอได้ สิ่งที่ควรทราบเกี่ยวกับฟีเจอร์นี้ในระดับสูงมีดังนี้

  • คุณใช้ Cloud Storage สำหรับ Firebase กับคำขอแบบหลายโมดัลใดก็ได้ (เช่น ทั้งการสร้างข้อความและแชท) ตัวอย่างในคู่มือนี้แสดงการป้อนข้อความและรูปภาพพื้นฐาน

  • คุณระบุประเภท MIME ของไฟล์และ URL ของ Cloud Storage for Firebase ของไฟล์ (ซึ่งขึ้นต้นด้วย gs:// เสมอ) ในอินพุตคำขอ ค่าเหล่านี้เป็นข้อมูลเมตาที่กำหนดให้กับไฟล์ที่อัปโหลดไปยังที่เก็บข้อมูล Cloud Storage โดยอัตโนมัติ

  • คุณต้องใช้ประเภทไฟล์และ URL ที่รองรับ


คู่มือโซลูชันนี้อธิบายวิธีตั้งค่า Cloud Storage for Firebase ใน Google Cloud, อัปโหลดไฟล์ไปยังที่เก็บข้อมูล Cloud Storage for Firebase จากแอป จากนั้นรวมประเภท MIME ของไฟล์และ URL ของ Cloud Storage สำหรับ Firebase ในคำขอหลายรูปแบบไปยัง Gemini API

คุณต้องการดูตัวอย่างโค้ดไหม หรือคุณได้ตั้งค่า Cloud Storage สำหรับ Firebase แล้วและพร้อมที่จะเริ่มใช้งานกับคำขอสื่อหลากรูปแบบแล้วหรือยัง

ข้ามไปที่ตัวอย่างโค้ด

เหตุผลที่ควรใช้ Cloud Storage สำหรับ Firebase กับแอป

Cloud Storage for Firebase ใช้โครงสร้างพื้นฐานที่รวดเร็ว ปลอดภัย และปรับขนาดได้แบบเดียวกับ Google Cloud Storage ในการจัดเก็บ Blob และไฟล์ นอกจากนี้ SDK ของไคลเอ็นต์ยังสร้างขึ้นสำหรับอุปกรณ์เคลื่อนที่และเว็บแอปโดยเฉพาะ

สำหรับ Vertex AI สำหรับ Firebase SDK ขนาดคำขอสูงสุดคือ 20 MB คุณจะได้รับข้อผิดพลาด HTTP 413 หากคำขอมีขนาดใหญ่เกินไป หากขนาดของไฟล์จะทำให้คำขอรวมมีขนาดเกิน 20 MB ให้ใช้ URL ของ Cloud Storage for Firebase เพื่อรวมไฟล์ในคำขอหลายรูปแบบ อย่างไรก็ตาม หากไฟล์มีขนาดเล็ก คุณก็มักจะส่งโดยตรงในรูปแบบข้อมูลในบรรทัดได้ (แต่โปรดทราบว่าไฟล์ที่ระบุเป็นข้อมูลในบรรทัดจะเข้ารหัสเป็น base64 ระหว่างการรับส่งข้อมูล ซึ่งจะเพิ่มขนาดของคำขอ)

ประโยชน์เพิ่มเติมของการใช้ Cloud Storage สำหรับ Firebase มีดังนี้

  • คุณให้ผู้ใช้ปลายทางอัปโหลดรูปภาพจากแอปไปยังที่เก็บข้อมูล Cloud Storage for Firebase ได้โดยตรง จากนั้นคุณสามารถรวมรูปภาพเหล่านั้นในพรอมต์แบบหลายโมดัลได้ด้วยการระบุประเภท MIME ของไฟล์และ URL ของ Cloud Storage สำหรับ Firebase (ซึ่งเป็นตัวระบุสำหรับไฟล์)

  • คุณสามารถประหยัดเวลาและแบนด์วิดท์ของผู้ใช้ปลายทางในกรณีที่ผู้ใช้จำเป็นต้องจัดเตรียมรูปภาพ โดยเฉพาะเมื่อคุณภาพของเครือข่ายไม่ดีหรือไม่สม่ำเสมอ

    • หากการอัปโหลดหรือดาวน์โหลดไฟล์ถูกขัดจังหวะ SDK ของ Cloud Storage for Firebase จะรีสตาร์ทการทำงานต่อจากจุดที่ค้างไว้โดยอัตโนมัติ
    • ไฟล์เดียวกันที่อัปโหลดสามารถใช้ได้หลายครั้งโดยที่ผู้ใช้ปลายทางไม่จำเป็นต้องอัปโหลดไฟล์เดียวกันทุกครั้งที่จำเป็นในแอป (เช่น ในคำขอแบบหลายโมดัลใหม่)
  • คุณจำกัดสิทธิ์เข้าถึงของผู้ใช้ปลายทางสำหรับไฟล์ที่เก็บไว้ใน Cloud Storage for Firebase ได้โดยใช้กฎการรักษาความปลอดภัยของ Firebase ซึ่งอนุญาตให้ผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่จะอัปโหลด ดาวน์โหลด หรือลบไฟล์ได้

  • คุณเข้าถึงไฟล์ในที่เก็บข้อมูลได้จาก Firebase หรือจาก Google Cloud ซึ่งทำให้มีความยืดหยุ่นในการประมวลผลฝั่งเซิร์ฟเวอร์ เช่น การกรองรูปภาพหรือการแปลงวิดีโอโดยใช้ Google Cloud Storage API

ระบบรองรับไฟล์และ URL ประเภทใดบ้าง

ต่อไปนี้เป็นข้อกำหนดของไฟล์และ URL เมื่อคุณต้องการใช้ Cloud Storage สำหรับ URL ของ Firebase กับ Vertex AI สำหรับ Firebase SDK

  • ไฟล์ดังกล่าวต้องเป็นไปตามข้อกำหนดของไฟล์อินพุตสำหรับคำขอหลายรูปแบบเมื่อใช้ Vertex AI สำหรับ Firebase SDK ซึ่งรวมถึงข้อกำหนดต่างๆ เช่น ประเภท MIME และขนาดไฟล์

  • ไฟล์ต้องจัดเก็บไว้ในที่เก็บข้อมูล Cloud Storage for Firebase (ซึ่งหมายความว่าบริการ Firebase เช่น กฎการรักษาความปลอดภัยของ Firebase จะเข้าถึงที่เก็บข้อมูลดังกล่าวได้) หากคุณดูที่เก็บข้อมูลได้ในคอนโซล Firebase แสดงว่าที่เก็บข้อมูลดังกล่าวเป็นที่เก็บข้อมูล Cloud Storage for Firebase

  • ที่เก็บข้อมูล Cloud Storage for Firebase ต้องอยู่ในโปรเจ็กต์ Firebase เดียวกันกับที่คุณลงทะเบียนแอป

  • URL ของ Cloud Storage for Firebase ของไฟล์ต้องขึ้นต้นด้วย gs:// ซึ่งเป็นวิธีสร้าง URL ของ Google Cloud Storage ทั้งหมด

  • URL ของไฟล์ต้องไม่เป็น URL ของ "เบราว์เซอร์" (เช่น URL ของรูปภาพที่คุณพบบนอินเทอร์เน็ต)

นอกจากนี้ กฎความปลอดภัยของ Firebase สำหรับที่เก็บข้อมูลต้องอนุญาตการเข้าถึงไฟล์ที่เหมาะสม เช่น

  • หากคุณมีกฎสาธารณะ ผู้ใช้หรือไคลเอ็นต์รายใดก็ตามจะเข้าถึงไฟล์และระบุ URL ของไฟล์ในการเรียกใช้ได้โดยใช้ Vertex AI สำหรับ Firebase SDK คุณควรใช้กฎประเภทนี้เพื่อเริ่มต้นและระหว่างการสร้างต้นแบบในช่วงแรกเท่านั้น (เว้นแต่จริงๆ แล้วไฟล์ควรเป็นไฟล์ที่เข้าถึงได้แบบสาธารณะทั้งหมด)

  • หากคุณมีกฎที่มีประสิทธิภาพ (แนะนำอย่างยิ่ง) Firebase จะตรวจสอบว่าผู้ใช้หรือไคลเอ็นต์ที่ลงชื่อเข้าใช้มีสิทธิ์เข้าถึงไฟล์อย่างเพียงพอก่อนที่จะอนุญาตให้เรียกใช้ผ่าน URL ที่ระบุ

ใช้ Cloud Storage สำหรับ URL ของ Firebase กับ Vertex AI สำหรับ Firebase

ขั้นตอนที่ 1: ตั้งค่า Cloud Storage สำหรับ Firebase

งานระดับสูงที่คุณจะต้องทำมีดังนี้

  1. สร้างที่เก็บข้อมูล Cloud Storage for Firebase ในโปรเจ็กต์ Firebase

  2. ใช้กฎการรักษาความปลอดภัยของ Firebase กับที่เก็บข้อมูลนี้ กฎการรักษาความปลอดภัยของ Firebase ช่วยให้คุณ รักษาความปลอดภัยให้กับไฟล์ด้วยการจำกัดการเข้าถึงเฉพาะผู้ใช้ปลายทางที่ได้รับอนุญาต

  3. เพิ่มไลบรารีไคลเอ็นต์สำหรับ Cloud Storage for Firebase ลงในแอป

    โปรดทราบว่าคุณข้ามงานนี้ได้ แต่ต้องรวมประเภท MIME และค่า URL ของ Cloud Storage สำหรับ Firebase ไว้ในคำขอหลายรูปแบบเสมอ

ขั้นตอนที่ 2: อัปโหลดไฟล์ไปยังที่เก็บข้อมูล

เมื่อคุณอัปโหลดไฟล์ไปยังที่เก็บข้อมูล Cloud Storage จะนำข้อมูล 2 อย่างต่อไปนี้ไปใช้กับไฟล์โดยอัตโนมัติ โดยคุณจะต้องรวมค่าเหล่านี้ในคำขอหลายรูปแบบ (ดังที่แสดงในขั้นตอนถัดไปของคู่มือนี้)

  • ประเภท MIME: นี่คือประเภทสื่อของไฟล์ (เช่น image/png) Cloud Storage for Firebase จะพยายามตรวจหาประเภท MIME โดยอัตโนมัติในระหว่างการอัปโหลด และนำข้อมูลเมตาดังกล่าวไปใช้กับออบเจ็กต์ในที่เก็บข้อมูล อย่างไรก็ตาม คุณสามารถเลือกระบุประเภท MIME ระหว่างการอัปโหลดได้

  • URL ของ Cloud Storage for Firebase: นี่คือตัวระบุที่ไม่ซ้ำกันสำหรับไฟล์ URL ต้องขึ้นต้นด้วย gs://

ขั้นตอนที่ 3: ระบุประเภท MIME และ URL ของไฟล์ในคำขอแบบหลายโมดัล

เมื่อมีไฟล์ที่จัดเก็บไว้ในที่เก็บข้อมูล Cloud Storage for Firebase แล้ว คุณจะรวมประเภท MIME และ URL ของ Cloud Storage for Firebase ในคำขอแบบหลายโมดัลได้ โปรดทราบว่าตัวอย่างเหล่านี้แสดงคำขอ generateContent ที่ไม่ใช่สตรีมมิง แต่คุณใช้ Cloud Storage สำหรับ URL ของ Firebase กับสตรีมมิงและแชทได้ด้วย

หากต้องการรวมไฟล์ในคำขอ คุณสามารถใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

ตัวเลือกที่ 1: ระบุประเภท MIME และ URL โดยใช้ข้อมูลอ้างอิงของพื้นที่เก็บข้อมูล

ใช้ตัวเลือกนี้หากคุณเพิ่งอัปโหลดไฟล์ไปยังที่เก็บข้อมูล และต้องการรวมไฟล์ (ผ่านการอ้างอิงพื้นที่เก็บข้อมูล) ในคำขอแบบหลายโมดัลทันที การเรียกต้องใช้ทั้งประเภท MIME และ URL ของ Cloud Storage for Firebase

ตัวเลือกที่ 2: ระบุประเภท MIME และ URL อย่างชัดเจน

ใช้ตัวเลือกนี้หากคุณทราบค่าของประเภท MIME และ URL ของ Cloud Storage for Firebase และต้องการรวมไว้ในคำขอหลายรูปแบบอย่างชัดเจน การเรียกจำเป็นต้องมีทั้งประเภท MIME และ URL