ML Kit의 GenAI API는 Gemini Nano의 기능을 활용하여 앱이 기기 내 생성형 AI 작업을 실행할 수 있도록 지원합니다. 이러한 API는 온디바이스 기반 모델을 관리하고 사용자 데이터를 비공개로 유지하면서 추론을 가속화하는 Android 시스템 서비스인 AICore를 기반으로 빌드됩니다.
GenAI API 사용에는 ML Kit GenAI API 추가 서비스 약관이 적용됩니다. 개발자는 API 클라이언트의 안전과 앱의 사용자 환경에 대해 전적으로 책임을 집니다.
주요 기능
ML Kit는 생성형 AI 기능을 다음 카테고리로 구성합니다.
커스텀 생성 및 에이전트
Gemini Nano 파운데이션 모델을 직접 사용하여 맞춤 프롬프트 및 자율 에이전트형 워크플로를 만듭니다.
- 직접 모델 액세스(
GenerativeModel클래스 사용): 커스텀 텍스트 전용 또는 멀티모달 프롬프트에서 텍스트 또는 유형이 지정된 구조화된 출력을 생성하거나,USER및MODEL역할과sessionId값이 있는List<Content>객체를 사용하여 자체 멀티턴 채팅 기록을 직접 관리하고 도구 선언을 직접 관리합니다. - 에이전트 워크플로(
AgentRunner클래스 사용):GenerativeModel클래스를 기반으로 빌드되며, 멀티턴 세션 관리 (메모리 내 대화 기록 포함) 및 멀티스텝 도구 호출 루프를 자동화합니다.
음성 및 오디오
온디바이스에서 음성 오디오를 스크립트로 작성, 번역, 합성합니다.
- 음성 인식: 음성 오디오 콘텐츠를 동일한 언어의 텍스트로 변환합니다.
- 통역: 음성 오디오를 다른 언어의 텍스트로 실시간 번역합니다.
- 텍스트 음성 변환: 텍스트에서 자연스러운 음성 오디오를 합성합니다.
텍스트 및 이미지 작업
프롬프트 엔지니어링 없이 일반적인 비전, 작성, 검색 작업에 최적화된 작업별 API를 사용합니다.
생성형 AI API의 이점
다른 기존 ML Kit 기능과 마찬가지로 GenAI API는 전적으로 기기 내에서 실행되므로 다음과 같은 이점을 제공합니다.
- 입력, 추론, 출력 데이터가 로컬에서 처리됨
- 안정적인 인터넷 연결 없이도 기능이 동일하게 유지됨
- API 호출마다 추가 서버 비용이 발생하지 않음
또한 GenAI API는 AICore를 기반으로 빌드되고 Gemini Nano로 구동되므로 앱과 작업별 API는 기기에서 동일한 기본 Gemini Nano 기본 모델을 공유합니다. 이렇게 하면 기기에 Gemini Nano가 이미 있는 경우 별도의 모델이 다운로드될 때까지 기다릴 필요가 없으므로 저장공간이 절약됩니다. AICore가 개인 정보 보호를 위해 요청을 격리하는 방법을 자세히 알아보세요.
스트리밍과 비스트리밍 비교
ML Kit GenAI API는 결과를 수신하기 위한 스트리밍 옵션과 비스트리밍 옵션을 모두 제공합니다. 스트리밍 API는 응답이 생성될 때마다 점진적으로 응답을 전송하여 지속적인 데이터 흐름을 제공합니다. 반면 비스트리밍 API는 전체 응답이 완료될 때까지 기다린 후 단일 블록으로 반환합니다.
긴 응답에는 스트리밍 API를 선택하세요. 초기 피드백이 더 빠릅니다. 비스트리밍 API는 짧은 응답이나 결과를 일괄 처리할 때 더 적합합니다.
기기 지원
커스텀 생성 및 에이전트와 텍스트 및 이미지 Tasks API에 대한 기기 지원은 다음 섹션에 설명되어 있습니다. 이 섹션에 나열되지 않은 기능의 경우 개별 기능 페이지에서 기기 지원 정보를 확인하세요.
커스텀 생성 및 에이전트 기기 지원
직접 모델 액세스 및 에이전트 워크플로는 다음 기기에서 지원됩니다.
nano-v2 |
|
nano-v3 |
|
nano-v4 |
|
텍스트 및 이미지 작업 기기 지원
이미지 설명, 요약, 교정, 다시 작성 API는 다음 기기에서 사용할 수 있으며, 추가 기기로 지원을 확대할 계획입니다.
- Google: Pixel 11, Pixel 11 Pro, Pixel 11 Pro XL, Pixel 11 Pro Fold, Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL, Pixel 10 Pro Fold, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold
- Honor: Honor 400 Pro, Magic 7, Magic 7 Pro, Magic 8 Pro, Magic V5
- iQOO: iQOO 13, iQOO 15
- Lenovo: Lenovo Idea Tab Pro Gen 2, Lenovo Legion Tab Gen 5(8.8인치)
- Motorola: Razr 60 Ultra, Razr Ultra 2025, Signature
- OnePlus: OnePlus 15, OnePlus 15R, OnePlus 13, OnePlus 13s
- OPPO: Find N5, Find X9, Find X9 Pro, Find X8, Find X8 Pro, Reno 14 Pro 5G, Reno 15 Pro 5G, Reno 15 Pro Mini 5G, Reno 15 Pro Max 5G
- POCO: POCO F7 Ultra, POCO F8 Pro, POCO F8 Ultra, POCO X7 Pro, POCO X8 Pro
- realme: realme GT 7 Pro, realme GT 7T
- 삼성: 갤럭시 S25, 갤럭시 S25+, 갤럭시 S25 울트라, 갤럭시 S26, 갤럭시 S26+, 갤럭시 S26 울트라, 갤럭시 Z 플립8, 갤럭시 Z 폴드8, 갤럭시 Z 폴드8 울트라, 갤럭시 Z 폴드7, 갤럭시 Z 트라이폴드
- Sharp: AQUOS R11
- Sony: Xperia 1 VIII
- vivo: vivo X200T, vivo X200 FE, vivo X200, vivo X200 Pro, vivo X300, X300 Pro, vivo X Fold3 Pro, vivo X Fold5, vivo T4 Ultra
- Xiaomi: Xiaomi 14T Pro, Xiaomi 15, Xiaomi 15T, Xiaomi 15T Pro, Xiaomi 15 Ultra, Xiaomi 17, Xiaomi 17 Ultra, Xiaomi Pad Mini
특정 언어 지원의 사용 가능 여부는 특정 기기의 구성과 기기에 다운로드된 모델에 따라 달라질 수 있습니다.
Gemini Nano 버전 가져오기
기기에 따라 다른 버전의 Gemini Nano가 실행됩니다. 기기의 Gemini Nano 버전을 반환하려면 getBaseModelName() 메서드를 사용합니다.
애플리케이션별 할당량
AICore는 앱당 추론 할당량을 적용합니다. 짧은 시간 내에 너무 많은 GenAI API 요청을 하면 ErrorCode.BUSY 응답이 발생합니다. 이러한 오류가 발생하면 지수 백오프를 사용하여 요청을 다시 시도해 보세요. 또한 앱이 장기 할당량 (예: 일일 할당량)을 초과하면 ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDED가 반환될 수 있습니다.
백그라운드 사용량
GenAI API 추론은 앱이 상단 포그라운드 애플리케이션인 경우에만 허용됩니다. 포그라운드 서비스를 사용하는 경우를 포함하여 앱이 포그라운드에 있지 않을 때 API를 사용하면 ErrorCode.BACKGROUND_USE_BLOCKED 응답이 발생합니다.
샘플 코드
이 코드를 가져오려면 다음 샘플을 확인하세요.