ML Kit GenAI API 개요

ML Kit의 GenAI API는 Gemini Nano의 기능을 활용하여 앱이 작업을 실행하도록 지원합니다. 이러한 API는 고수준 인터페이스를 통해 인기 있는 사용 사례에 즉시 사용할 수 있는 품질을 제공합니다. ML Kit GenAI API는 AICore를 기반으로 빌드됩니다. AICore는 Android 시스템 서비스로, 생성형 AI 기반 모델의 기기 내 실행을 지원하여 로컬에서 데이터를 처리함으로써 향상된 앱 기능과 개선된 사용자 개인 정보 보호와 같은 기능을 지원합니다.

ML Kit GenAI API는 다음 기능을 지원합니다.

  • 요약: 기사 또는 채팅 대화를 글머리기호 목록으로 요약합니다.
  • 교정: 문법을 다듬고 맞춤법 오류를 수정하여 짧은 콘텐츠를 다듬습니다.
  • 재작성: 짧은 메시지를 다양한 어조나 스타일로 재작성합니다.
  • 이미지 설명: 주어진 이미지에 대한 간단한 설명을 생성합니다.

생성형 AI API의 이점

기존 ML Kit 기능과 마찬가지로 GenAI API는 완전히 온디바이스로 실행되므로 다음과 같은 이점을 제공합니다.

  • 입력, 추론, 출력 데이터가 로컬에서 처리됨
  • 안정적인 인터넷 연결이 없어도 기능은 동일하게 유지됨
  • API 호출당 추가 서버 비용이 발생하지 않음

또한 생성형 AI API는 AICore를 기반으로 빌드되고 Gemini Nano로 구동되므로 모든 앱이 기기에 있는 공유 Gemini Nano 모델을 사용할 수 있습니다. 이렇게 하면 모델이 기기에 이미 있는 경우 모델이 다운로드될 때까지 기다릴 필요가 없으므로 저장공간이 절약됩니다. AICore가 개인 정보를 보호하기 위해 요청을 격리하는 방법 자세히 알아보기

스트리밍과 비스트리밍의 차이

ML Kit GenAI API는 결과를 수신하기 위한 스트리밍 및 비스트리밍 옵션을 모두 제공합니다. 스트리밍 API는 응답이 생성될 때마다 점진적으로 응답을 전송하여 데이터의 연속적인 흐름을 제공합니다. 반면 스트리밍되지 않는 API는 전체 응답이 완료될 때까지 기다린 후 단일 블록으로 반환합니다.

긴 응답에는 스트리밍 API를 선택하세요. 초기 피드백을 더 빠르게 받을 수 있습니다. 비 스트리밍 API는 짧은 응답에 더 적합하거나 결과를 일괄 처리할 때 더 적합합니다.

기기 지원

ML Kit GenAI API는 다음 기기에서 사용할 수 있으며, 지원 기기를 추가로 확대할 계획입니다.

  • Google: 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 6 Pro, Magic 6 RSR, Magic 7, Magic 7 Pro, Magic V3
  • iQOO: iQOO 13
  • Motorola: Razr 60 Ultra
  • OnePlus: OnePlus 13, OnePlus 13s
  • OPPO: Find N5, Find X8, Find X8 Pro
  • POCO: POCO F7 Ultra
  • realme: realme GT 7 Pro
  • 삼성: 갤럭시 S25, 갤럭시 S25+, 갤럭시 S25 울트라
  • vivo: vivo X200, vivo X200 Pro, vivo X Fold3 Pro, vivo X Fold5
  • Xiaomi: Xiaomi 15 Ultra, Xiaomi 15

특정 언어 지원의 사용 가능 여부는 특정 기기의 구성과 기기에 다운로드된 모델에 따라 달라질 수 있습니다.

애플리케이션별 할당량

AICore는 앱당 추론 할당량을 적용합니다. 즉, 단기간에 너무 많은 생성형 AI API 요청을 하면 ErrorCode.BUSY 응답이 발생합니다. 이러한 오류가 발생하면 지수 백오프를 사용하여 요청을 다시 시도하는 것이 좋습니다.

백그라운드 사용

생성형 AI API 추론은 앱이 최상위 포그라운드 애플리케이션인 경우에만 허용됩니다. 앱이 포그라운드에 있지 않을 때 API를 사용하면(포그라운드 서비스 사용 포함) 현재 백그라운드 사용량 할당량이 부족하여 ErrorCode.BUSY 응답이 발생합니다.

샘플 코드

이 코드를 가져오려면 다음 샘플을 확인하세요.