Firebase용 Vertex AI SDK를 사용하여 Gemini API 시작하기


이 가이드에서는 Firebase용 Vertex AI SDK를 사용하여 앱에서 직접 Vertex AI Gemini API 호출을 시작하는 방법을 설명합니다.

기본 요건

이 가이드에서는 Android 스튜디오를 사용하여 Android용 앱을 개발하는 데 익숙하다고 가정합니다.

  • 개발 환경과 Android 앱이 다음 요구사항을 충족하는지 확인합니다.

    • Android 스튜디오 (최신 버전)
    • Android 앱은 API 수준 21 이상을 타겟팅해야 합니다.
  • (선택사항) 샘플 앱을 확인합니다.

    샘플 앱 다운로드

    SDK를 빠르게 사용해 보거나, 다양한 사용 사례의 전체 구현을 살펴보거나, 자체 Android 앱이 없는 경우 샘플 앱을 사용할 수 있습니다. 샘플 앱을 사용하려면 Firebase 프로젝트에 연결해야 합니다.

1단계: Firebase 프로젝트 설정 및 Firebase에 앱 연결

이미 Firebase 프로젝트와 Firebase에 연결된 앱이 있는 경우

  1. Firebase Console에서 Gemini로 빌드 페이지로 이동한 후 두 번째 카드를 클릭하여 다음 작업을 수행하는 데 도움이 되는 워크플로를 시작합니다. Vertex AI 콘솔에 탭이 표시되면 이러한 작업이 완료된 것입니다

  2. 이 가이드의 다음 단계로 진행하여 앱에 SDK를 추가하세요.

아직 Firebase 프로젝트와 Firebase에 연결된 앱이 없는 경우


2단계: SDK 추가

Firebase 프로젝트가 설정되고 앱이 Firebase에 연결되었으면(이전 단계 참조) 이제 Firebase용 Vertex AI SDK를 앱에 추가할 수 있습니다.

Android용 Firebase용 Vertex AI SDK (firebase-vertexai)를 사용하면 Vertex AI Gemini API에 액세스할 수 있습니다.

모듈 (앱 수준) Gradle 구성 파일(예: <project>/<app-module>/build.gradle.kts)에서 Android용 Firebase용 Vertex AI SDK의 종속 항목을 추가합니다.

Kotlin+KTX

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI for Firebase SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.0-beta01")
}

Java

Java의 경우 라이브러리를 두 개 더 추가해야 합니다.

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI for Firebase SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.0-beta01")

  // Required for one-shot operations (to use `ListenableFuture` from Guava Android)
  implementation("com.google.guava:guava:31.0.1-android")

  // Required for streaming operations (to use `Publisher` from Reactive Streams)
  implementation("org.reactivestreams:reactive-streams:1.0.4")
}

3단계: Vertex AI 서비스 및 생성 모델 초기화

API 호출을 하려면 먼저 Vertex AI 서비스와 생성 모델을 초기화해야 합니다.

Kotlin+KTX

Kotlin의 경우 이 SDK의 메서드는 정지 함수이며 코루틴 범위에서 호출해야 합니다.
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-flash-preview-0514")

Java

Java의 경우 이 SDK의 스트리밍 메서드가 반응형 스트림 라이브러리에서 Publisher 유형을 반환합니다.
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-1.5-flash-preview-0514");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

시작 가이드를 완료했다면 Gemini 모델과 사용 사례 및 앱에 적합한 위치 (선택사항)를 선택하는 방법을 알아봅니다.

4단계: Vertex AI Gemini API 호출

앱을 Firebase에 연결하고, SDK를 추가하고, Vertex AI 서비스와 생성 모델을 초기화했으므로 이제 Vertex AI Gemini API를 호출할 수 있습니다.

generateContent()를 사용하여 텍스트 전용 프롬프트 요청에서 텍스트를 생성할 수 있습니다.

Kotlin+KTX

Kotlin의 경우 이 SDK의 메서드는 정지 함수이며 코루틴 범위에서 호출해야 합니다.
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-flash-preview-0514")

// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."

// To generate text output, call generateContent with the text input
val response = generativeModel.generateContent(prompt)
print(response.text)

Java

Java의 경우 이 SDK의 메서드는 ListenableFuture를 반환합니다.
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-1.5-flash-preview-0514");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// Provide a prompt that contains text
Content prompt = new Content.Builder()
    .addText("Write a story about a magic backpack.")
    .build();

// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String resultText = result.getText();
        System.out.println(resultText);
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

가능한 작업

Gemini 모델 자세히 알아보기

다양한 사용 사례에 사용할 수 있는 모델할당량 및 가격에 대해 알아보세요.

Gemini API의 다른 기능 사용해 보기

콘텐츠 생성 제어 방법 알아보기

또한 Vertex AI Studio를 사용하여 프롬프트와 모델 구성을 실험할 수도 있습니다.


Firebase용 Vertex AI 사용 경험에 대한 의견 보내기