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

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

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

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

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

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


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

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

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

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

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

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

ประโยชน์เพิ่มเติมในการใช้ Cloud Storage for Firebase มีดังนี้

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

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

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

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

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

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

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

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

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

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

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

นอกจากนี้ Firebase Security Rules สำหรับที่เก็บข้อมูลของคุณต้องอนุญาตให้เข้าถึงไฟล์อย่างเหมาะสม เช่น

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

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

ใช้ URL Cloud Storage for Firebase กับ Vertex AI in Firebase

ขั้นตอนที่ 1: ตั้งค่า Cloud Storage for Firebase

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

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

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

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

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

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

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

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

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

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