Google AI SDK 대신 Vertex AI SDK를 사용하도록 마이그레이션

이 페이지에서는 모바일 또는 웹 앱의 Google AI 클라이언트 SDK에서 Vertex AI in Firebase 클라이언트 SDK로 이전하는 방법을 설명합니다. Vertex AI in Firebase SDK는 Apple 플랫폼(Swift), Android(Kotlin 및 Java), 웹(JavaScript), Flutter(Dart)에서 사용할 수 있습니다.

이전 안내로 바로 이동

Vertex AI를 사용하도록 이전해야 하는 이유

Google AI Studio 또는 Google AI 클라이언트 SDK를 사용하여 Gemini API의 대체 버전을 사용해 보셨을 수 있습니다. 이러한 SDK는 Gemini API를 시작하고 프로토타입을 만드는 데 유용합니다. 그러나 Gemini API를 클라이언트 측에서 직접 호출하는 프로덕션 또는 엔터프라이즈 규모 모바일 및 웹 앱의 경우 Firebase SDK를 사용하여 Vertex AI Gemini API를 호출하는 것이 좋습니다.

모바일 및 웹 앱의 보안 기능

모바일 및 웹 앱의 경우 코드 (Gemini API 호출 포함)가 보호되지 않는 환경에서 실행되므로 보안이 중요하며 특별히 고려해야 할 사항이 있습니다.

  • 기본적으로 Vertex AI Gemini APIGoogle AI Gemini API와 같은 API 키가 아닌 Google Cloud IAM에 의해 승인됩니다. Vertex AI in Firebase SDK는 더 안전한 Vertex AI Gemini API를 호출하도록 빌드됩니다.

  • 모바일 및 웹 앱의 경우 승인되지 않은 클라이언트의 악용으로부터 Gemini API 및 프로젝트 리소스(예: 조정된 모델)를 보호해야 합니다. Firebase App Check를 사용하여 모든 API 호출이 실제 앱에서 발생하는지 확인할 수 있으며 이 기능은 Vertex AI in Firebase SDK를 사용하는 경우에만 사용할 수 있습니다.

모바일 및 웹 앱용으로 구축된 생태계

Firebase는 모바일 및 웹 앱을 개발하기 위한 Google의 플랫폼입니다. Vertex AI in Firebase SDK를 사용하면 앱이 풀 스택 앱 및 개발자의 요구사항에 중점을 둔 생태계에 속하게 됩니다. 예를 들어 다음 작업을 하도록 설정되어 있습니다.

  • Cloud Storage for Firebase를 사용하여 멀티모달 요청에 대용량 파일을 포함합니다. 또한 네트워크 상태가 좋지 않은 경우에도 파일 업로드 및 다운로드를 처리하고 최종 사용자 데이터에 더 많은 보안을 제공하는 클라이언트 SDK를 활용하세요. 자세한 내용은 Cloud Storage for Firebase 사용에 관한 솔루션 가이드를 참고하세요.

  • 모바일 및 웹 앱용으로 빌드된 데이터베이스 SDK(예: Cloud Firestore)를 사용하여 구조화된 데이터를 관리합니다.

  • Firebase Remote Config를 사용하여 새 앱 버전을 출시하지 않고도 런타임 구성 (예: 위치)을 동적으로 설정하거나 앱의 값 (예: 모델 이름)을 교체합니다.

Google Cloud에서 Vertex AI를 사용하는 추가 이점

앱과 워크플로에서 생성형 AI를 사용하는 것이 성숙해지면 생성형 AI 애플리케이션을 빌드하고 배포하기 위한 엔드 투 엔드 솔루션을 제공하는 플랫폼이 필요할 수 있습니다. Google Cloud는 앱 개발 초기 단계부터 앱 배포, 앱 호스팅, 복잡한 데이터의 대규모 관리에 이르기까지 생성형 AI의 강력한 성능을 활용할 수 있도록 포괄적인 도구 생태계를 제공합니다.

Google Cloud의 Vertex AI 플랫폼은 효율성과 안정성을 위해 AI 모델의 사용, 배포, 모니터링을 간소화하는 MLOps 도구 모음을 제공합니다. 또한 데이터베이스, DevOps 도구, 로깅, 모니터링, IAM과 통합하는 경우 생성형 AI 전체 수명 주기 관리에 대한 종합적인 접근이 가능합니다.

Google Cloud 문서에서 Vertex AI의 사용 사례에 대해 자세히 알아보세요.

Vertex AI in Firebase SDK로 이전

Vertex AI in Firebase SDK로 이전하려면 다음 세 가지 주요 단계를 거쳐야 합니다.

  1. 신규 또는 기존 Firebase 프로젝트를 설정하고 앱을 Firebase에 연결합니다.

  2. SDK 및 초기화 코드 (모델 이름 포함)만 변경하면 되는 코드베이스를 이전합니다. 실제로 Gemini API를 호출하는 코드는 수정할 필요가 없습니다.

  3. 사용하지 않는 API 키를 삭제하고 사용하지 않는 API를 사용 중지합니다.

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

Firebase에 이미 익숙하더라도 이 섹션을 검토하여 Firebase 프로젝트와 앱이 Vertex AI in Firebase SDK를 사용하도록 설정되어 있는지 확인하세요.

2단계: 코드베이스 이전

앱의 플랫폼을 선택하여 플랫폼별 안내를 확인하세요.

Google AI SDK와 Vertex AI in Firebase SDK는 두 플랫폼 간에 최대한 간편하게 이전할 수 있도록 빌드되었습니다.

이전하려면 앱의 코드베이스에 통합할 SDK와 서비스 및 생성 모델을 초기화하기만 하면 됩니다. Gemini API를 실제로 호출하는 코드는 수정하지 않아도 됩니다.

SDK 변경

Google AI

Kotlin+KTX

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Google AI client SDK for Android
  implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Java

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Google AI client SDK for Android
  implementation("com.google.ai.client.generativeai:generativeai:VERSION")

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

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

Vertex AI in Firebase

Kotlin+KTX

dependencies {
  // ... other androidx dependencies

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

Java

dependencies {
  // ... other androidx dependencies

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

  // 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")
}

초기화 변경

Google AI

Kotlin+KTX

val generativeModel = GenerativeModel(modelName = "MODEL_NAME",
    // Access your API key as a Build Configuration variable
    apiKey = BuildConfig.apiKey
)

Java

GenerativeModel gm = new GenerativeModel("MODEL_NAME",
    // Access your API key as a Build Configuration variable
    BuildConfig.apiKey
);

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

Vertex AI in Firebase

Kotlin+KTX

val generativeModel = Firebase.vertexAI.generativeModel("MODEL_NAME")

Java

GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("MODEL_NAME");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

가져오기 업데이트

다음 코드 스니펫은 Chat, Content, GenerativeModelFutures 클래스를 예로 사용하지만 동일한 패키지 이름의 다른 클래스에도 동일하게 적용됩니다.

Google AI

Kotlin+KTX

import com.google.ai.client.generativeai.Chat
import com.google.ai.client.generativeai.type.Content
import com.google.ai.client.generativeai.java.GenerativeModuleFutures

Java

import com.google.ai.client.generativeai.Chat;
import com.google.ai.client.generativeai.type.Content;
import com.google.ai.client.generativeai.java.GenerativeModuleFutures;

Vertex AI in Firebase

Kotlin+KTX

import com.google.firebase.vertexai.Chat
import com.google.firebase.vertexai.type.Content
import com.google.firebase.vertexai.java.GenerativeModuleFutures

Java

import com.google.firebase.vertexai.Chat;
import com.google.firebase.vertexai.type.Content;
import com.google.firebase.vertexai.java.GenerativeModuleFutures;

3단계: 사용하지 않는 API 키를 삭제하고 사용하지 않는 API 사용 중지

Google AI API 키를 더 이상 사용할 필요가 없으면 보안 권장사항에 따라 삭제합니다. Google AI StudioAPI 키 섹션에서 Google AI API 키를 보고 삭제할 수 있습니다.

또한 더 이상 Google AI Gemini API를 사용하지 않는 경우 프로젝트에서 사용 중지합니다. Generative Language API (generativelanguage.googleapis.com) 페이지Google Cloud 콘솔에서 이 작업을 수행할 수 있습니다. ('Generative Language API'는 Google AI Gemini API의 공식 명칭입니다.)

또 뭘 할 수 있니?