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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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