Đư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 Vertex AI cho Firebase SDK, bạn có thể đặt 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 cho Firebase để đưa các 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 cho Firebase với bất kỳ yêu cầu đa phương thức nào (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 của tệp trong Cloud Storage cho Firebase (luôn bắt đầu bằng gs://) trong đầu vào yêu cầu. Các giá trị này là siêu dữ liệu được tự động gán 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 cho Firebase trong Google Cloud, hãy tải tệp lên bộ chứa Cloud Storage cho Firebase từ ứng dụng của bạn, sau đó đưa loại MIME của tệp và URL của Cloud Storage cho Firebase vào yêu cầu đa phương thức tới 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 cho Firebase và bạn đã sẵn sàng bắt đầu sử dụng giải pháp này bằng các 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 cho Firebase với ứng dụng của bạn?

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

Đối với các SDK của Vertex AI cho Firebase, 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 của Cloud Storage cho Firebase để đưa tệp này vào yêu cầu đa phương thức. 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 cho 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 bộ chứa Cloud Storage cho Firebase, 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 của Cloud Storage cho 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 cho 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 cho Firebase bằng cách sử dụng Quy tắc bảo mật của Firebase, 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 Google Cloud Storage API.

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 Các URL của Cloud Storage cho Firebase với Vertex AI cho Firebase SDK:

  • 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 dùng SDK Vertex AI cho 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 cho Firebase (có nghĩa là các dịch vụ của Firebase (chẳng hạn như Quy tắc bảo mật của Firebase) 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ì đó là một bộ chứa Cloud Storage cho Firebase.

  • Bộ chứa Cloud Storage cho 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 của tệp trên Cloud Storage cho Firebase phải bắt đầu bằng gs://, là để tạo tất cả URL của Google Cloud Storage.

  • 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, Quy tắc bảo mật của Firebase cho 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 sử dụng SDK Vertex AI cho 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 URL của Cloud Storage cho Firebase với Vertex AI cho Firebase

Bước 1: Thiết lập Cloud Storage cho 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 cho Firebase trong dự án Firebase của bạn.

  2. Áp dụng Quy tắc bảo mật của Firebase cho nhóm này. Quy tắc bảo mật của Firebase 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 của Cloud Storage cho 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 rõ ràng loại MIME và các giá trị URL của Cloud Storage cho Firebase trong các yêu cầu đa phương thức.

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 cho Firebase sẽ tự động tìm cách phát hiện 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 cho Firebase: Đây là giá trị nhận dạng duy nhất cho 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 đã có tệp được lưu trữ trong bộ chứa Cloud Storage cho Firebase, bạn có thể bao gồm loại MIME và URL của Cloud Storage cho Firebase trong một 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ể sử dụng các URL của Cloud Storage cho Firebase với các tính năng truyền 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 của Cloud Storage cho 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à URL của Cloud Storage cho Firebase và bạn nên đưa các URL đó vào yêu cầu đa phương thức. Cuộc gọi yêu cầu cả loại MIME và URL.