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

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

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

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

  • 요청 입력에 파일의 MIME 유형과 항상 gs://로 시작하는 Firebase용 Cloud Storage URL을 지정합니다. 이러한 값은 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이 모두 필요합니다.