Đư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 API Gemini từ ứng dụng của bạn bằng một SDK Vertex AI cho Firebase, bạn có thể nhắc mô hình Gemini tạo văn bản dựa trên thông tin đầu vào đa phương thức. Lời nhắc đa phương thức có thể bao gồm nhiều phương thức (hoặc loại dữ liệu đầu vào), chẳng hạn 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 dữ liệu đầu vào (như tệp nội dung nghe nhìn), bạn có thể sử dụng Cloud Storage cho Firebase để đưa các tệp vào yêu cầu. Nhìn chung, 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ả tạo văn bản và trò chuyện). Các ví dụ trong hướng dẫn này minh hoạ 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 cho Firebase (luôn bắt đầu bằng gs://) trong mục nhập yêu cầu. Các giá trị này là siêu dữ liệu được tự động gán cho mọi tệp mà bạn đã tải lên bộ chứa Cloud Storage.

  • 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, tải một 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 Cloud Storage cho Firebase vào yêu cầu đa phương thức của API Gemini.

Bạn có muốn xem các mã ví dụ không? Hay bạn đã thiết lập Cloud Storage cho Firebase và sẵn sàng bắt đầu sử dụng giải pháp này cho các yêu cầu đa phương thức của mình chưa?

Chuyển đến đoạn mã ví dụ

Tại sao bạn nên sử dụng Cloud Storage cho Firebase trong ứng dụng?

Cloud Storage cho Firebase sử dụng cùng một cơ sở hạ tầng nhanh, bảo mật và có thể mở rộng như Google Cloud Storage để lưu trữ blob và tệp, ngoài ra còn có SDK ứng dụng được thiết kế riêng cho ứ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 sẽ làm cho tổng kích thước yêu cầu vượt quá 20 MB, hãy sử dụng URL của Cloud Storage cho Firebase để đưa tệp đó vào yêu cầu đa phương thức. Tuy nhiên, nếu một tệp có kích thước nhỏ, bạn thường có thể truyền tệp đó trực tiếp dưới dạng dữ liệu cùng dòng (mặc dù vậy, xin 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 trong quá trình truyền, điều này làm tăng kích thước của yêu cầu).

Sau đâ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 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 chỉ bằng cách chỉ định loại MIME của tệp và URL Cloud Storage cho Firebase (là giá trị nhận dạng của tệp).

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

    • Nếu quá trình tải tệp lên hoặc tải xuống bị gián đoạn, các SDK của Cloud Storage cho Firebase sẽ tự động bắt đầu lại từ thời điểm bạn dừng lại.
    • 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 lần cần đến trong ứng dụng của bạn (như trong một yêu cầu đa phương thức mới).
  • Bạn có thể giới hạn quyền truy cập của người dùng cuối 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. Quy tắc này chỉ cho phép người dùng được ủy quyền tải lên, tải xuống hoặc xóa 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 Google Cloud, nhờ đó, bạn có thể linh hoạt xử lý phía máy chủ (chẳng hạn như lọc hình ảnh 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à các yêu cầu đối với tệp và URL khi bạn muốn sử dụng Cloud Storage cho các URL của Firebase bằng các SDK của Vertex AI cho Firebase:

  • Tệp này phải đáp ứng các yêu cầu về tệp đầu vào đối với các yêu cầu đa phương thức khi sử dụng Vertex AI cho Firebase SDK. Quy định 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 (nghĩa là các dịch vụ của Firebase có thể truy cập vào bộ chứa đó, chẳng hạn như Quy tắc bảo mật của Firebase). 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à 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.

  • URL của tệp trên Cloud Storage cho Firebase phải bắt đầu bằng gs://, đây là cách tạo tất cả các URL trong Google Cloud Storage.

  • URL của tệp không được là URL "trình duyệt" (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 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 khách hàng đều có thể truy cập vào tệp và cung cấp URL của tệp trong lệnh gọi bằ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ự là các tệp có thể truy cập hoàn toàn 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 hoặc ứng dụng đã đăng nhập có đủ quyền truy cập vào tệp trước khi cho phép lệnh gọi đi qua URL được cung cấp.

Sử dụng Cloud Storage cho các URL của Firebase thông qua Vertex AI cho Firebase

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

Sau đây là những tác vụ cấp cao bạn cần thực hiện:

  1. Tạo một nhóm Cloud Storage cho Firebase trong dự án Firebase của bạn.

  2. Áp dụng Quy tắc bảo mật Firebase cho bộ chứa này. Quy tắc bảo mật Firebase giúp bạn bảo mật tệp của mình bằng cách chỉ cho phép người dùng cuối được cấp quyền truy cập.

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

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

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

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

  • Loại MIME: Đây là loại nội dung đa phương tiệ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 quá trình 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 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ữ một tệp trong bộ chứa Cloud Storage cho Firebase, bạn có thể đư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. Xin lưu ý rằng các ví dụ này cho thấy một yêu cầu generateContent không truyền trực tuyến, nhưng bạn cũng có thể sử dụng các URL của Cloud Storage cho Firebase để 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 tuỳ chọn sau:

Lựa chọn 1: Bao gồm loại MIME và URL bằng tệp tham chiếu 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 đưa tệp ngay lập tức (thông qua một tệp tham chiếu Bộ nhớ) vào yêu cầu đa phương thức. Lệnh gọi yêu cầu cả loại MIME và URL Cloud Storage cho Firebase.

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

Hãy sử dụng tuỳ chọn này nếu bạn biết các giá trị cho loại MIME và URL Cloud Storage cho Firebase và muốn đưa các giá trị đó vào yêu cầu đa phương thức một cách rõ ràng. Lệnh gọi yêu cầu cả loại MIME và URL.