Firebase AI Logic 기본은(는) 무엇을 하나요?
개요
Firebase AI Logic은 Firebase의 제품으로, 개발자가 클라이언트 SDK를 사용하여 모바일 및 웹 앱에 생성형 AI를 추가할 수 있도록 합니다. 앱은 Firebase AI Logic을 통해 Gemini 모델을 직접 호출할 수 있으므로, 개발자가 전용 백엔드를 관리할 필요가 없습니다. Firebase AI Logic은 이전에 "Vertex AI for Firebase"로 알려졌습니다.
두 가지 Gemini API 제공자를 지원합니다:
- Gemini Developer API: 프로토타이핑에 이상적인 무료 티어와 프로덕션을 위한 종량제 요금제 제공
- Agent Platform Gemini API (이전 명칭: Vertex AI): 엔터프라이즈급 프로덕션 준비가 완료된 확장에 이상적, Blaze 요금제 필요
기본적으로 Gemini Developer API를 사용하고, 애플리케이션에서 필요한 경우에만 Agent Platform Gemini API(이전 명칭: Vertex AI)를 사용합니다.
설정 및 초기화
사전 요구 사항
- 시작하기 전에 사용자가 관심 있는 플랫폼(Android, iOS, Web 또는 Flutter)을 확인합니다.
- 플랫폼이 지원되지 않는 경우, 사용자를 Firebase 문서로 안내하여 애플리케이션에 AI Logic을 설정하는 방법을 알려줍니다(이 링크 공유: https://firebase.google.com/docs/ai-logic/get-started).
- 아래 Firebase CLI 명령어는 모든 플랫폼에서
npx를 통해 실행되므로 Node.js 20+ 및 npm이 필요합니다.firebase-basics스킬을 사용하여 이를 확인하고 Firebase CLI에 로그인합니다. Node.js가 없거나 버전 20보다 낮은 경우, 해당 스킬에서 설명하는 대로 사용자에게 설치하도록 요청합니다.sudo apt-get과 같은 방식으로 시스템 패키지를 직접 설치하지 마십시오. 이는 사용자 동의 없이 시스템을 변경하는 것입니다.
1. Firebase AI Logic 프로비저닝 (모든 플랫폼)
Firebase CLI를 사용하여 Firebase 프로젝트에 Firebase AI Logic을 프로비저닝합니다:
-
Firebase 디렉토리(
firebase.json파일이 있는 곳)에 있는지 확인합니다. -
의도한 Firebase 프로젝트에 대해 Firebase CLI 명령어를 실행하고 있는지 확인합니다. 이 명령어를 실행하면 활성 프로젝트에 "current"가 표시됩니다:
npx -y firebase-tools@latest projects:list -
현재 Firebase 프로젝트에 대상 플랫폼에 대한 Firebase 앱이 하나 이상 등록되어 있는지 확인합니다:
npx -y firebase-tools@latest apps:list -
Firebase 프로젝트에 Firebase AI Logic을 프로비저닝합니다:
npx -y firebase-tools@latest init ailogic이 명령어는 Firebase 프로젝트에서 Gemini Developer API를 활성화합니다.
[!WARNING] 중요: Firebase AI Logic 프로비저닝 필수 모든 플랫폼(Android, iOS, Web, Flutter)에서, 앱이 이미 Firebase를 사용 중이더라도 반드시
npx -y firebase-tools@latest init ailogic를 실행하여 서비스를 프로비저닝해야 합니다.GoogleService-Info.plist,google-services.json,firebase_options.dart설정 파일은 클라이언트 구성만 처리하며 Firebase AI Logic 서비스를 활성화하지 않으므로PERMISSION_DENIED오류가 발생합니다.
직접 init ailogic를 실행할 수 없는 경우(Node.js 누락 또는 Firebase CLI 로그인 안 됨) 건너뛰지 마십시오. Firebase AI Logic 서비스가 프로비저닝될 때까지 Gemini 모델에 대한 앱의 요청은 실패합니다. 사용자에게 프로젝트 디렉토리에서 이 명령어를 실행하도록 지시하고 최종 요약에 포함하십시오:
npx -y firebase-tools@latest init ailogic
2. 앱에 SDK 추가 및 서비스 초기화
SDK 종속성 추가 및 서비스 초기화는 플랫폼에 따라 다릅니다. 코드를 작성하기 전에 초기화 코드 참조에 나열된 대상 플랫폼의 참조를 읽으십시오.
자세한 내용은 Firebase AI Logic 시작하기를 참조하십시오.
핵심 기능
[!WARNING] 중요: 최신 모델 이름 사용: 현재 지원되는 모델 이름은 항상 Firebase AI Logic 모델 문서에서 확인하십시오.
gemini-2.0-pro또는gemini-2.0-flash등 종료된 이전 모델을 사용하지 마십시오.
텍스트 전용 생성
멀티모달 (텍스트 + 이미지/오디오/비디오/PDF 입력)
Firebase AI Logic을 사용하면 Gemini 모델이 앱에서 직접 이미지 파일을 분석할 수 있습니다. 이를 통해 캡션 생성, 이미지 관련 질문 답변, 객체 감지, 이미지 분류와 같은 기능을 구현할 수 있습니다. 이미지 외에도 Gemini는 오디오, 비디오, PDF와 같은 다른 미디어 유형을 인라인 데이터로 MIME 유형과 함께 전달하여 분석할 수 있습니다. 20MB보다 큰 파일(인라인 데이터로 인해 HTTP 413 오류가 발생할 수 있음)은 Cloud Storage for Firebase에 저장하고 해당 URL을 Gemini Developer API에 전달하십시오.
채팅 세션 (다중 턴)
startChat을 사용하여 기록을 자동으로 유지합니다.
스트리밍 응답
결과가 도착하는 대로 부분 결과를 표시하여(타이핑 효과처럼) 사용자 경험을 개선하려면 generateContent 대신 generateContentStream을 사용하여 더 빠르게 결과를 표시하십시오.
텍스트-음성(TTS) 변환 생성
별도의 음성 백엔드 없이 클라이언트 장치에서 직접 음성 오디오를 생성합니다. Firebase AI Logic은 전용 Gemini TTS 모델을 사용한 음성 합성을 지원합니다:
- 지원 모델:
gemini-3.1-flash-tts-preview - 기능:
- 단일 화자 음성 페르소나 선택(
voiceName) 및SpeechConfig/MultiSpeakerVoiceConfig를 통한 최대 2명의 화자 대화 responseModalities를 오디오로 설정하여 직접 오디오 응답- 저지연 재생을 위한
generateContentStream을 사용한 스트리밍 음성 응답 - 오디오 지시문(
[Audio Profile: ...],[Scene: ...],[Director's Note: ...]) 및 감정 태그([whispers],[laughs],[slowly]) - 24kHz 16비트 선형 PCM(
audio/l16) 또는 WAV 컨테이너 형식(audio/x-wav)의 클라이언트 측 디코딩 및 재생
- 단일 화자 음성 페르소나 선택(
전체 구현 세부 사항, 스트리밍 패턴 및 iOS(Swift), Android(Kotlin), Web용 복사-붙여넣기 코드 조각은 텍스트-음성(TTS) 변환 생성 가이드를 참조하십시오.
Nano Banana로 이미지 생성
[!WARNING] 최신 이미지 모델 이름 사용: 현재 지원되는 이미지 생성(Nano Banana) 모델 이름은 항상 Firebase AI Logic 모델 문서에서 확인하십시오.
- 업그레이드된 Blaze 종량제 요금제가 필요합니다.
내장 googleSearch 도구를 사용한 검색 근거
지원되는 플랫폼 및 프레임워크
지원되는 플랫폼 및 프레임워크에는 Android용 Kotlin 및 Java, iOS용 Swift, 웹 앱용 JavaScript, Flutter용 Dart, Unity용 C Sharp가 포함됩니다.
고급 기능
구조화된 출력 (JSON)
응답에 특정 JSON 스키마를 적용합니다.
온디바이스 AI (하이브리드)
하이브리드 추론은 가능한 경우 온디바이스 모델로 프롬프트를 실행하고, 그렇지 않은 경우 클라우드 호스팅 모델로 대체합니다(또는 그 반대). 가용성 및 설정 단계는 플랫폼에 따라 다릅니다. 자세한 내용은 하이브리드 및 온디바이스 문서를 참조하십시오. 이 문서는 각 플랫폼의 가이드로 연결됩니다.
보안 및 프로덕션
Firebase App Check
[!WARNING] 중요 안전 요구 사항: AI Logic을 안전하게 사용하려면 반드시 앱에 App Check를 설정해야 합니다. 이는 승인되지 않은 클라이언트가 API 할당량을 사용하거나 백엔드 리소스에 액세스하는 것을 방지합니다.
설정 지침은 Firebase AI Logic용 App Check를 참조하십시오. 각 플랫폼은 자체 증명 제공자를 사용하므로 대상 플랫폼의 지침을 따르십시오.
로컬 개발 및 CI/CD용 App Check 디버그 토큰
App Check 증명 제공자(예: Play Integrity 또는 DeviceCheck)는 에뮬레이터, 시뮬레이터 또는 CI 환경을 거부하므로, 개발 및 테스트 중에는 App Check 디버그 토큰을 사용하여 표준 증명을 우회해야 합니다.
[!WARNING] 중요: 디버그 토큰을 하드코딩하거나 커밋하지 마십시오 App Check 디버그 토큰을 사용하면 클라이언트가 증명을 우회하고 실제 장치 없이 백엔드 리소스에 액세스할 수 있습니다. 이를 비공개 비밀로 취급하십시오. 디버그 토큰을 버전 관리에 커밋하거나 클라이언트 코드(Web, Android, iOS, Flutter)에 원시 토큰 문자열을 하드코딩하지 마십시오. 항상 로컬 환경 변수, gitignore 처리된 로컬 구성 또는 CI 비밀을 통해 주입하십시오. 토큰이 손상된 경우 Firebase Console에서 즉시 취소하십시오.
로컬 개발 (자동 생성)
- 코드의 App Check 제공자가 디버그 팩토리를 사용하도록 구성합니다. API는 플랫폼별로 다릅니다. 플랫폼 참조의 App Check 섹션 또는 위에 링크된 App Check 문서를 참조하십시오.
- 에뮬레이터/localhost에서 앱을 실행합니다.
- 런타임 디버거 콘솔/Logcat 로그에서 생성된 UUID를 찾습니다:
- 예시:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678"
- 예시:
- Firebase Console의 Security > App Check > Apps > Manage debug tokens에서 이 토큰을 등록합니다.
💡 팁 (디버그 토큰 변경 방지): 시뮬레이터 또는 에뮬레이터 재설정, 새로 설치, 브라우저 데이터 삭제는 SDK가 새 디버그 토큰을 생성하게 하여 다시 등록해야 합니다. 하드코딩 없이 안정적인 디버그 토큰을 유지하려면 플랫폼 참조의 App Check 섹션을 참조하십시오.
CI/CD 파이프라인 (사전 프로비저닝)
- Firebase Console의 Security > App Check > Apps > Manage debug tokens에서 새 디버그 토큰을 생성하고 등록합니다.
- 이 토큰 문자열을 CI 시스템에 암호화된 비밀로 추가합니다(예:
APP_CHECK_DEBUG_TOKEN). - 테스트 실행 중에 이 비밀이 SDK에 환경 변수로 전달되도록 빌드를 구성합니다.
Firebase Remote Config
모델 이름(예: 특정 모델 버전 문자열)을 하드코딩할 필요가 없습니다. Firebase Remote Config를 사용하여 새 클라이언트 코드를 배포하지 않고도 모델 버전을 동적으로 업데이트하십시오. 모델 이름 원격 변경을 참조하십시오.
초기화 코드 참조
-
Android (Kotlin)
- Gemini API 제공자: Gemini Developer API
- 참조: usage_patterns_android.md
-
iOS (Swift)
- Gemini API 제공자: Gemini Developer API
- 참조: ios_setup.md
-
Web 모듈형 API
- Gemini API 제공자: Gemini Developer API
- 참조: usage_patterns_web.md
-
Flutter (Dart)
- Gemini API 제공자: Gemini Developer API
- 참조: flutter_setup.md
[!WARNING] 중요: 최신 모델 이름 사용: 현재 지원되는 모델 이름은 항상 Firebase AI Logic 모델 문서에서 확인하십시오.
gemini-2.0-pro또는gemini-2.0-flash등 종료된 이전 모델을 사용하지 마십시오.
참조
Android (Kotlin) SDK 사용 패턴 iOS SDK 코드 예제 및 사용 패턴 Web SDK 설정, 코드 예제 및 사용 패턴