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

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

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

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

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

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


คู่มือโซลูชันนี้อธิบายวิธีตั้งค่า Cloud Storage สำหรับ Firebase ใน Google Cloud ให้อัปโหลดไฟล์จากแอปของคุณไปยังที่เก็บข้อมูล Cloud Storage for Firebase แล้วรวมประเภท MIME ของไฟล์และ URL ของ Cloud Storage for 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 in ซึ่งจะเพิ่มขนาดของคำขอ)

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

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

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

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

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

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

ต่อไปนี้เป็นข้อกำหนดสำหรับไฟล์และ URL เมื่อคุณต้องการใช้ URL ของ Cloud Storage สำหรับ 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 ลงในแอป

    โปรดทราบว่าคุณข้ามงานนี้ได้ แต่ต้องทำทุกครั้ง รวมค่า URL ของประเภท MIME และ Cloud Storage for 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