Đưa các tệp lớn vào các yêu cầu đa phương thức và quản lý các tệp bằng Cloud Storage cho Firebase

Khi gọi Gemini API từ ứng dụng của bạn bằng một SDK Vertex AI in Firebase, bạn có thể ra câu lệnh để mô hình Gemini tạo văn bản dựa trên dữ liệu đầu vào đa phương thức. Câu lệnh đa phương thức có thể bao gồm nhiều phương thức (hoặc loại đầu vào), như văn bản cùng với hình ảnh, PDF, video và âm thanh.

Đối với các phần không phải văn bản của nội dung đầu vào (như tệp đa phương tiện), bạn có thể tuỳ ý sử dụng Cloud Storage for Firebase để thêm tệp vào yêu cầu. Vào lúc cấp cao, sau đây là những điều bạn cần biết về tính năng này:

  • Bạn có thể sử dụng Cloud Storage for Firebase với mọi yêu cầu đa phương thức (chẳng hạn như cả hai phương thức) tạo văn bản và trò chuyện). Ví dụ trong hướng dẫn này trình bày phương thức nhập văn bản và hình ảnh cơ bản.

  • Bạn chỉ định loại MIME của tệp và URL Cloud Storage for Firebase của tệp (luôn bắt đầu bằng gs://) trong đầu vào yêu cầu. Các giá trị này là tự động gán siêu dữ liệu cho bất kỳ tệp nào được tải lên Cloud Storage bộ chứa.

  • Bạn cần sử dụng loại tệp và URL được hỗ trợ.


Hướng dẫn giải pháp này mô tả cách thiết lập Cloud Storage for Firebase trong Google Cloud, hãy tải một tệp lên bộ chứa Cloud Storage for Firebase từ ứng dụng của bạn, sau đó đưa loại MIME của tệp đó và URL Cloud Storage for Firebase vào yêu cầu đa phương thức đến Gemini API.

Bạn có muốn xem các đoạn mã ví dụ không? Hoặc bạn đã thiết lập Cloud Storage for Firebase và bạn đã sẵn sàng bắt đầu sử dụng ứng dụng này bằng yêu cầu đa phương thức?

Chuyển đến ví dụ về mã

Tại sao nên sử dụng Cloud Storage for Firebase trong ứng dụng của bạn?

Cloud Storage for Firebase sử dụng cùng một công nghệ cơ sở hạ tầng có thể mở rộng dưới dạng Google Cloud Storage để lưu trữ các blob và tệp, và SDK ứng dụng của Google được tạo riêng cho các ứng dụng web và ứng dụng di động.

Đối với Vertex AI in Firebase SDK, kích thước yêu cầu tối đa là 20 MB. Bạn gặp lỗi HTTP 413 nếu yêu cầu quá lớn. Nếu kích thước tệp làm cho tổng kích thước yêu cầu vượt quá 20 MB, sau đó sử dụng URL Cloud Storage for Firebase để đưa tệp vào yêu cầu đa phương thức của bạn. Tuy nhiên, nếu một tệp nhỏ, bạn thường có thể truyền trực tiếp tệp đó dưới dạng dữ liệu cùng dòng (lưu ý rằng tệp được cung cấp dưới dạng dữ liệu cùng dòng được mã hoá thành base64 theo chuyển tuyến, giúp tăng kích thước của yêu cầu).

Dưới đây là một số lợi ích khác khi sử dụng Cloud Storage for Firebase:

  • Bạn có thể yêu cầu người dùng cuối tải hình ảnh trực tiếp từ ứng dụng của bạn lên Cloud Storage for Firebase bộ chứa, sau đó bạn có thể đưa những hình ảnh đó vào lời nhắc đa phương thức của mình chỉ bằng cách chỉ định loại MIME của tệp và URL Cloud Storage for Firebase (là giá trị nhận dạng cho tệp).

  • Bạn có thể giúp người dùng cuối tiết kiệm thời gian và băng thông nếu họ cần cung cấp hình ảnh, đặc biệt nếu chúng có chất lượng mạng kém hoặc không ổn định.

    • Nếu quá trình tải lên hoặc tải xuống tệp bị gián đoạn, Cloud Storage for Firebase SDK tự động bắt đầu lại thao tác từ nơi dừng lại trước đó.
    • Có thể sử dụng cùng một tệp đã tải lên nhiều lần mà không cần người dùng cuối phải tải cùng một tệp lên mỗi khi cần thiết trong ứng dụng của bạn (chẳng hạn như trong yêu cầu đa phương thức mới).
  • Bạn có thể hạn chế người dùng cuối truy cập vào các tệp được lưu trữ trong Cloud Storage for Firebase bằng cách sử dụng Firebase Security Rules, Hệ thống này chỉ cho phép người dùng được uỷ quyền tải tệp lên, tải xuống hoặc xoá tệp.

  • Bạn có thể truy cập các tệp trong bộ chứa của mình từ Firebase hoặc từ Google Cloud, mang lại cho bạn sự linh hoạt khi xử lý phía máy chủ như hình ảnh lọc hoặc chuyển mã video bằng API Google Cloud Storage.

Những loại tệp và URL nào được hỗ trợ?

Dưới đây là những yêu cầu đối với tệp và URL khi bạn muốn sử dụng Cloud Storage for Firebase URL có SDK Vertex AI in Firebase:

  • Tệp này phải đáp ứng yêu cầu của tệp đầu vào cho các yêu cầu đa phương thức khi sử dụng SDK Vertex AI in Firebase. Điều này bao gồm các yêu cầu như loại MIME và kích thước tệp.

  • Tệp phải được lưu trữ trong bộ chứa Cloud Storage for Firebase (có nghĩa là các dịch vụ Firebase, chẳng hạn như Firebase Security Rules, có thể truy cập vào bộ chứa này). Nếu bạn có thể xem bộ chứa của mình trong bảng điều khiển của Firebase, thì thành một bộ chứa Cloud Storage for Firebase.

  • Bộ chứa Cloud Storage for Firebase phải nằm trong cùng một dự án Firebase ở mà bạn đã đăng ký ứng dụng của mình.

  • URL Cloud Storage for Firebase của tệp phải bắt đầu bằng gs://, đó là theo cách mà tất cả URL Google Cloud Storage được tạo.

  • URL của tệp không được là một "trình duyệt" URL (ví dụ: URL của một hình ảnh mà bạn tìm thấy trên Internet).

Ngoài ra, Firebase Security Rules trong bộ chứa của bạn phải cho phép quyền truy cập thích hợp vào tệp. Ví dụ:

  • Nếu bạn có quy tắc công khai, thì mọi người dùng hoặc ứng dụng khách đều có thể truy cập vào tệp đó và cung cấp URL của tệp đó trong một lệnh gọi thông qua một SDK Vertex AI in Firebase. Bạn chỉ nên sử dụng các loại quy tắc này để bắt đầu và trong quá trình tạo nguyên mẫu ban đầu (trừ phi các tệp đó thực sự có ý nghĩa trở thành tệp hoàn toàn có thể truy cập công khai).

  • Nếu bạn có các quy tắc mạnh mẽ (rất nên dùng), thì Firebase sẽ kiểm tra để đảm bảo rằng người dùng đã đăng nhập hoặc ứng dụng có đủ quyền truy cập vào tệp trước khi cho phép cuộc gọi bắt đầu cùng với URL được cung cấp.

Sử dụng Cloud Storage for Firebase URL với Vertex AI in Firebase

Bước 1: Thiết lập Cloud Storage for Firebase

Dưới đây là các tác vụ cấp cao mà bạn cần thực hiện:

  1. Tạo một bộ chứa Cloud Storage for Firebase trong dự án Firebase của bạn.

  2. Áp dụng Firebase Security Rules cho bộ chứa này. Firebase Security Rules sẽ giúp bạn bảo mật tệp của bạn bằng cách hạn chế quyền truy cập đối với những người dùng cuối được uỷ quyền.

  3. Thêm thư viện ứng dụng cho Cloud Storage for Firebase vào ứng dụng của bạn.

    Xin lưu ý rằng bạn có thể bỏ qua việc cần làm này, nhưng sau đó bạn phải luôn cung cấp loại MIME và giá trị URL Cloud Storage for Firebase trong yêu cầu đa phương thức một cách rõ ràng.

Bước 2: Tải tệp lên một bộ chứa

Khi bạn tải tệp lên một bộ chứa, Cloud Storage sẽ tự động áp dụng hai thông tin sau đây vào tệp. Bạn sẽ cần phải cung cấp các giá trị này trong yêu cầu đa phương thức (như được trình bày trong bước tiếp theo của quy trình này ).

  • Loại MIME: Đây là loại nội dung nghe nhìn của tệp (ví dụ: image/png). Cloud Storage for Firebase sẽ tự động tìm loại MIME trong khi tải lên và áp dụng siêu dữ liệu đó cho đối tượng trong bộ chứa. Tuy nhiên, bạn có thể tuỳ ý chỉ định loại MIME trong khi tải lên.

  • URL Cloud Storage for Firebase: Đây là giá trị nhận dạng duy nhất của tệp. URL phải bắt đầu bằng gs://.

Bước 3: Đưa loại MIME và URL của tệp vào yêu cầu đa phương thức

Sau khi đã lưu trữ tệp trong bộ chứa Cloud Storage for Firebase, bạn có thể hãy bao gồm loại MIME và URL Cloud Storage for Firebase trong yêu cầu đa phương thức. Lưu ý rằng những ví dụ này thể hiện một yêu cầu generateContent không phát trực tuyến, nhưng bạn cũng có thể dùng Cloud Storage for Firebase URL với tính năng phát trực tuyến và trò chuyện.

Để đưa tệp vào yêu cầu, bạn có thể sử dụng một trong các cách sau:

Lựa chọn 1: Thêm loại MIME và URL bằng cách sử dụng thông tin tham chiếu về Bộ nhớ

Sử dụng tuỳ chọn này nếu bạn vừa tải tệp lên bộ chứa và bạn muốn ngay lập tức bao gồm tệp (qua tài liệu tham khảo Bộ nhớ) trong đa phương thức của bạn. Cuộc gọi yêu cầu cả loại MIME và loại URL Cloud Storage for Firebase.

Lựa chọn 2: Bao gồm loại MIME và URL một cách rõ ràng

Sử dụng tùy chọn này nếu bạn biết các giá trị cho loại MIME và Cloud Storage for Firebase URL và bạn nên đưa rõ ràng vào URL yêu cầu đa phương thức. Cuộc gọi yêu cầu cả loại MIME và URL.