ML Kit GenAI API 概览

机器学习套件的生成式 AI API 利用 Gemini Nano 的强大功能,帮助您的应用执行设备端生成式 AI 任务。这些 API 基于 AICore 构建,AICore 是一项 Android 系统服务,可管理设备端基础模型并加快推理速度,同时确保用户数据的私密性。

使用生成式 AI API 时,须遵守《ML Kit 生成式 AI API 附加服务条款》。开发者对其 API 客户端的安全性和应用的用户体验负有全部责任。

主要功能

机器学习套件将其生成式 AI 功能分为以下几类:

自定义生成和智能体

直接使用 Gemini Nano 基础模型进行自定义提示词撰写和自主 Agentic Workflows:

  • 直接模型访问(使用 GenerativeModel 类):根据自定义纯文本或多模态提示词生成文本或类型化结构化输出,或直接使用具有 USER 和 MODEL 角色以及 sessionId 值的 List<Content> 对象管理您自己的多轮对话历史记录,并直接管理工具声明。
  • Agentic Workflows(使用 AgentRunner 类):基于 GenerativeModel 类构建,可自动执行多轮会话管理(包括内存中的对话历史记录)和多步骤工具调用循环。

语音和音频

在设备端转写、翻译和合成语音音频:

  • 语音识别:将语音音频内容转写为相同语言的文本。
  • 语音翻译:实时将语音音频翻译成另一种语言的文本。
  • 文字转语音:根据文字合成自然流畅的语音音频。

文本和图片任务

使用针对常见视觉、写作和搜索任务进行了优化的特定任务 API,无需提示词工程:

  • 图片说明:为给定图片生成简短说明。
  • 总结:以项目符号列表的形式总结文章或聊天对话。
  • 校对:通过修正语法和拼写错误来润色简短内容。
  • 重写:以不同的语气或风格重写简短消息。
  • 语义搜索:使用 Embedding API 为文本和图片生成向量嵌入,并将其与 AndroidX AppSearch 配对,以便按含义查找内容。

生成式 AI API 的优势

与其他现有的机器学习套件功能类似,生成式 AI API 完全在设备端运行,因此具有以下优势:

  • 输入、推理和输出数据均在本地处理
  • 在没有可靠网络连接的情况下,功能保持不变
  • 每次 API 调用都不会产生额外的服务器费用

此外,由于生成式 AI API 基于 AICore 构建并由 Gemini Nano 提供支持,因此应用和特定于任务的 API 会在设备上共享同一个底层 Gemini Nano 基础模型。这样,如果设备上已存在 Gemini Nano,就无需等待单独的模型下载,从而节省存储空间。 详细了解 AICore 如何隔离请求以保护隐私。

流式传输与非流式传输

机器学习套件生成式 AI API 提供流式和非流式两种结果接收方式。流式 API 会在生成回答时以增量方式提供回答,从而提供持续的数据流。相比之下,非流式 API 会等到整个回答完成后,再将其作为一个整体返回。

如果需要较长的回答,请选择流式传输 API,因为它可以更快地提供初始反馈。非流式 API 更适合简短回答或批量处理结果。

设备支持

以下部分介绍了设备对自定义生成和智能体以及文本和图片 Tasks API 的支持。对于本部分中未列出的任何功能,请参阅各个功能页面,了解设备支持信息。

自定义生成和代理设备支持

以下设备支持直接模型访问和Agentic Workflows:

nano-v2

  • 荣耀:Magic V5、Magic 7、Magic 7 Pro
  • iQOO:iQOO 13
  • 摩托罗拉:Razr 60 Ultra、Razr Ultra 2025
  • 一加:一加 13、一加 13s
  • OPPO:Find N5
  • POCO:POCO F7 Ultra、POCO F8 Pro、POCO F8 Ultra、POCO X7 Pro、POCO X8 Pro
  • 真我:真我 GT 7 Pro
  • 三星:Galaxy Z Fold7、Galaxy Z TriFold
  • vivo:vivo X200 FE、vivo T4 Ultra
  • 小米:小米 14T Pro、小米 15、小米 15T、小米 15T Pro、小米 15 Ultra、小米 17、小米 17 Ultra、小米 Pad Mini

nano-v3

  • 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
  • 荣耀:荣耀 Magic 8 Pro
  • iQOO:iQOO 15
  • Lenovo:Lenovo Idea Tab Pro Gen 2、Lenovo Legion Tab Gen 5(8.8 英寸)
  • Motorola:Signature
  • 一加:一加 15、一加 15R
  • OPPO: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
  • 真我:真我 GT 7T
  • 三星:Galaxy S26、Galaxy S26+、Galaxy S26 Ultra
  • 夏普:AQUOS R11
  • Sony:Xperia 1 VIII
  • vivo:vivo X200T、vivo X200、vivo X200 Pro、vivo X300、vivo X300 Pro

nano-v4

  • Google:Pixel 11、Pixel 11 Pro、Pixel 11 Pro XL、Pixel 11 Pro Fold
  • 三星:Galaxy Z Flip8、Galaxy Z Fold8、Galaxy Z Fold8 Ultra

文本和图片任务设备支持

Image Description、Summarization、Proofreading 和 Rewriting 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
  • 荣耀:荣耀 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 英寸)
  • 摩托罗拉:Razr 60 Ultra、Razr Ultra 2025、Signature
  • 一加:一加 15、一加 15R、一加 13、一加 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
  • 真我:真我 GT 7 Pro、真我 GT 7T
  • 三星:Galaxy S25、Galaxy S25+、Galaxy S25 Ultra、Galaxy S26、Galaxy S26+、Galaxy S26 Ultra、Galaxy Z Flip8、Galaxy Z Fold8、Galaxy Z Fold8 Ultra、Galaxy Z Fold7、Galaxy Z TriFold
  • 夏普: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
  • 小米:小米 14T Pro、小米 15、小米 15T、小米 15T Pro、小米 15 Ultra、小米 17、小米 17 Ultra、小米 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 响应。

示例代码

如需获取此代码,请查看以下示例: