Đư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 bằng SDK Vertex AI cho Firebase, bạn có thể đặt câu lệnh để mô hình Gemini tạo văn bản dựa trên phương thức nhập đa phương thức. Các câu lệnh đa phương thức có thể bao gồm nhiều phương thức (hoặc nhiều kiểu phương thức nhập), 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 đ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. 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ư tạo cả 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 dữ liệu đầu vào của yêu cầu. Các giá trị này được tự động chỉ định siêu dữ liệu cho mọi tệp được 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 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 tới Gemini API.

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

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ơ sở hạ tầng tốc độ cao, bảo mật và có thể mở rộng giống như Google Cloud Storage để lưu trữ các blob và tệp. Ngoài ra, các SDK ứng dụng của Google Cloud Storage đượ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 khiến 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 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 (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, làm 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 các hình ảnh đó vào các 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 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 là khi họ 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, SDK Cloud Storage cho Firebase sẽ tự động bắt đầu lại hoạt động ngay tại nơi dừng lại.
    • Có thể sử dụng cùng một tệp đã tải lên nhiều lần mà người dùng cuối không 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 (như trong một 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, theo đó chỉ cho phép người dùng được uỷ quyền tải lên, tải xuống hoặc xoá tệp.

  • Bạn có thể truy cập vào các tệp trong bộ chứa của mình từ Firebase hoặc Google Cloud, cho phép bạn linh hoạt thực hiện các bước 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 về tệp và URL khi bạn muốn sử dụng URL của Cloud Storage cho Firebase với SDK Vertex AI cho Firebase:

  • Tệp này phải đáp ứng các yêu cầu về tệp đầu vào cho các yêu cầu đa phương thức khi sử dụng các SDK Vertex AI cho Firebase. Trong đó có 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 (tức là có thể truy cập vào bộ chứa đối với các dịch vụ của Firebase, 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 trong Cloud Storage cho Firebase phải bắt đầu bằng gs://, đây là cách tạo tất cả URL của 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 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 phù hợp vào tệp. Ví dụ:

  • Nếu bạn có các quy tắc công khai, thì mọi người dùng hoặc ứng dụ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 sớm (trừ phi các tệp đó thực sự là 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 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 thực hiện lệnh gọi bằng 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 giúp bạn bảo mật tệp của mình bằng cách chỉ cho phép những người dùng cuối được phép truy cập.

  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 tác vụ này, nhưng sau đó bạn phải luôn đưa vào 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 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ư trình bày trong bước tiếp theo của hướng dẫn 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 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 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ó một tệp được lưu trữ trong bộ chứa Cloud Storage cho Firebase, bạn có thể đưa loại MIME và URL của tệp đó vào Cloud Storage cho Firebase vào một yêu cầu đa phương thức. Xin lưu ý rằng những ví dụ này cho thấy 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 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à muốn đưa tệp đó ngay lập tức (thông qua tệp tham chiếu đến Bộ nhớ) trong yêu cầu đa phương thức. Lệnh gọi yêu cầu cả loại MIME và 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 lựa chọn này nếu bạn biết các giá trị cho loại MIME và URL của Cloud Storage for Firebase, đồng thời 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. Cuộc gọi yêu cầu cả loại MIME và URL.