Firebase용 Cloud Storage를 사용하여 멀티모달 요청에 대용량 파일을 포함하고 파일을 관리하세요.

Firebase용 Vertex AI SDK를 사용하여 앱에서 Gemini API를 호출할 때 Gemini 모델에 멀티모달 입력을 기반으로 텍스트를 생성하라는 메시지를 표시할 수 있습니다. 멀티모달 프롬프트에는 이미지, PDF, 동영상, 오디오와 함께 텍스트와 같은 여러 형식(또는 입력 유형)이 포함될 수 있습니다.

입력의 텍스트가 아닌 부분 (예: 미디어 파일)의 경우 선택적으로 Firebase용 Cloud Storage를 사용하여 요청에 파일을 포함할 수 있습니다. 대략적으로 이 기능에 관해 알아야 할 사항은 다음과 같습니다.

  • Firebase용 Cloud Storage는 모든 멀티모달 요청 (예: 텍스트 생성 및 채팅)과 함께 사용할 수 있습니다. 이 가이드의 에서는 기본적인 텍스트 및 이미지 입력을 보여줍니다.

  • 요청 입력에서 파일의 MIME 유형과 Firebase용 Cloud Storage URL(항상 gs://로 시작)을 지정합니다. 이러한 값은 Cloud Storage 버킷에 업로드된 모든 파일에 자동으로 할당되는 메타데이터입니다.

  • 지원되는 파일 형식 및 URL을 사용해야 합니다.


이 솔루션 가이드에서는 Google Cloud에서 Firebase용 Cloud Storage를 설정하고 앱에서 Firebase용 Cloud Storage 버킷에 파일을 업로드한 후 Gemini API에 대한 멀티모달 요청에 파일의 MIME 유형 및 Firebase용 Cloud Storage URL을 포함하는 방법을 설명합니다.

코드 예시를 확인해 보시겠어요? 아니면 이미 Firebase용 Cloud Storage를 설정했고 멀티모달 요청에 사용할 준비가 되셨나요?

코드 예시로 이동

앱에서 Firebase용 Cloud Storage를 사용하는 이유

Firebase용 Cloud Storage는 Google Cloud Storage와 동일한 빠르고 안전하며 확장 가능한 인프라를 사용하여 blob과 파일을 저장하며 클라이언트 SDK는 모바일 및 웹 앱용으로 특별히 빌드되었습니다.

Firebase용 Vertex AI SDK의 경우 최대 요청 크기는 20MB입니다. 요청이 너무 크면 HTTP 413 오류가 발생합니다. 파일 크기로 인해 총 요청 크기가 20MB를 초과하는 경우 Firebase용 Cloud Storage URL을 사용하여 파일을 멀티모달 요청에 포함합니다. 그러나 파일이 작은 경우 종종 인라인 데이터로 직접 전달할 수 있습니다(인라인 데이터로 제공된 파일은 전송 시 base64로 인코딩되어 요청의 크기가 늘어납니다).

Firebase용 Cloud Storage를 사용할 때의 추가 이점은 다음과 같습니다.

  • 최종 사용자가 앱에서 Firebase용 Cloud Storage 버킷으로 직접 이미지를 업로드하도록 한 다음 파일의 MIME 유형과 Firebase용 Cloud Storage URL (파일 식별자)을 지정하기만 하면 멀티모달 프롬프트에 이미지를 포함할 수 있습니다.

  • 최종 사용자가 이미지를 제공해야 하는 경우, 특히 네트워크 품질이 나쁘거나 불안정한 경우 최종 사용자의 시간과 대역폭을 절약할 수 있습니다.

    • 파일 업로드 또는 다운로드가 중단되면 Firebase용 Cloud Storage SDK는 중단된 지점부터 자동으로 작업을 다시 시작합니다.
    • 최종 사용자가 앱에서 필요할 때마다 (예: 새로운 멀티모달 요청) 동일한 파일을 업로드할 필요 없이 동일한 업로드된 파일을 여러 번 사용할 수 있습니다.
  • 승인된 사용자만 파일을 업로드, 다운로드 또는 삭제하도록 허용하는 Firebase 보안 규칙을 사용하여 Firebase용 Cloud Storage에 저장된 파일에 대한 최종 사용자의 액세스를 제한할 수 있습니다.

  • Firebase 또는 Google Cloud에서 버킷의 파일에 액세스할 수 있으므로 Google Cloud Storage API를 사용하여 이미지 필터링이나 동영상 트랜스코딩과 같은 서버 측 처리를 유연하게 수행할 수 있습니다.

어떤 유형의 파일 및 URL이 지원되나요?

Firebase용 Vertex AI SDK와 함께 Firebase용 Cloud Storage URL을 사용하려는 경우 파일 및 URL 요구사항은 다음과 같습니다.

  • 파일은 Firebase용 Vertex AI SDK를 사용할 때 멀티모달 요청의 입력 파일 요구사항을 충족해야 합니다. 여기에는 MIME 유형 및 파일 크기와 같은 요구사항이 포함됩니다.

  • 파일은 Firebase용 Cloud Storage 버킷에 저장해야 합니다. 즉, Firebase 보안 규칙과 같은 Firebase 서비스에서 버킷에 액세스할 수 있습니다. Firebase Console에서 버킷을 볼 수 있으면 Firebase용 Cloud Storage 버킷입니다.

  • Firebase용 Cloud Storage 버킷은 앱을 등록한 동일한 Firebase 프로젝트에 있어야 합니다.

  • 파일의 Firebase용 Cloud Storage URL은 모든 Google Cloud Storage URL을 구성하는 방법인 gs://로 시작해야 합니다.

  • 파일의 URL은 '브라우저' URL일 수 없습니다 (예: 인터넷에서 찾은 이미지의 URL).

또한 버킷의 Firebase 보안 규칙이 파일에 대한 적절한 액세스를 허용해야 합니다. 예를 들면 다음과 같습니다.

  • 공개 규칙이 있는 경우 모든 사용자 또는 클라이언트가 Firebase용 Vertex AI SDK를 사용하여 호출 시 파일에 액세스하고 URL을 제공할 수 있습니다. 이러한 유형의 규칙은 시작 시와 초기 프로토타입 단계에서만 사용해야 합니다 (파일이 실제로 완전히 공개적으로 액세스할 수 있는 파일인 경우 제외).

  • 강력한 규칙 (적극 권장됨)이 있는 경우 Firebase는 제공된 URL로 호출을 진행하기 전에 로그인한 사용자 또는 클라이언트가 파일에 대한 충분한 액세스 권한을 가지고 있는지 확인합니다.

Firebase용 Vertex AI로 Firebase용 Cloud Storage URL 사용

1단계: Firebase용 Cloud Storage 설정

수행해야 하는 상위 수준 작업은 다음과 같습니다.

  1. Firebase 프로젝트에서 Firebase용 Cloud Storage 버킷을 만듭니다.

  2. 이 버킷에 Firebase 보안 규칙을 적용합니다. Firebase 보안 규칙을 사용하면 승인된 최종 사용자로 액세스를 제한하여 파일의 보안을 강화할 수 있습니다.

  3. Firebase용 Cloud Storage 클라이언트 라이브러리를 앱에 추가합니다.

    이 작업은 건너뛸 수 있지만 항상 멀티모달 요청에 MIME 유형과 Firebase용 Cloud Storage URL 값을 명시적으로 포함해야 합니다.

2단계: 버킷에 파일 업로드

파일을 버킷에 업로드하면 Cloud Storage가 다음 두 가지 정보를 파일에 자동으로 적용합니다. 이 가이드의 다음 단계에 나와 있는 것처럼 이러한 값을 멀티모달 요청에 포함해야 합니다.

  • MIME 유형: 파일의 미디어 유형입니다 (예: image/png). Firebase용 Cloud Storage는 업로드 중에 자동으로 MIME 유형을 감지하려고 시도하고 이 메타데이터를 버킷의 객체에 적용합니다. 하지만 선택사항으로 업로드 중에 MIME 유형을 지정할 수 있습니다.

  • Firebase용 Cloud Storage URL: 파일의 고유 식별자입니다. URL은 gs://으로 시작해야 합니다.

3단계: 파일의 MIME 유형과 URL을 멀티모달 요청에 포함

Firebase용 Cloud Storage 버킷에 파일을 저장한 후 파일의 MIME 유형과 Firebase용 Cloud Storage URL을 멀티모달 요청에 포함할 수 있습니다. 이 예시는 비 스트리밍 generateContent 요청을 표시하지만 스트리밍 및 채팅에 Firebase용 Cloud Storage URL을 사용할 수도 있습니다.

요청에 파일을 포함하려면 다음 옵션 중 하나를 사용하세요.

옵션 1: 스토리지 참조를 사용하여 MIME 유형 및 URL 포함

방금 파일을 버킷에 업로드했고 스토리지 참조를 통해 파일을 멀티모달 요청에 즉시 포함하려면 이 옵션을 사용합니다. 호출에는 MIME 유형과 Firebase용 Cloud Storage URL이 모두 필요합니다.

옵션 2: MIME 유형 및 URL을 명시적으로 포함

MIME 유형 및 Firebase용 Cloud Storage URL의 값을 알고 있고 이를 멀티모달 요청에 명시적으로 포함하려는 경우 이 옵션을 사용합니다. 호출에는 MIME 유형과 URL이 모두 필요합니다.