通过 Gemini Nano 直接模型访问权限发送自定义请求

借助机器学习套件的直接模型访问权限 (com.google.mlkit:genai-prompt),您可以通过 GenerativeModel 类向 Gemini Nano 基础模型发送自定义端侧自然语言请求。直接模型访问接受文本或多模态(图片和文本)输入,支持客户端管理的多轮对话(List<Content>,具有 USER 和 MODEL 角色以及 sessionId),并发出文本输出或类型化结构化输出。

您可以将直接模型访问用于各种应用场景,包括:

用例

示例

图片理解

分析照片以进行分类,例如“宠物”“食物”或“旅行”。

简短翻译

翻译送货司机和客户之间的简短消息。

引导式摘要

根据用户的特定兴趣总结对某家餐厅的评价。

实体提取

从邮件会话串中提取有关即将举行的活动的重要详情。

内容生成灵感

为日志条目提供提示建议。

智能文件扫描

从收据图片中提取商品信息并进行分类。

文本分类

将客户评价分类为正面、中性或负面。

直接模型访问与特定任务 API

除了直接访问 Gemini Nano 基础模型以获取自定义提示外,机器学习套件还提供了针对专用语音、图片和文本任务的预配置 API:语音识别、图片描述、总结、校对、重写等。文本和图片 Tasks API 在共享基础模型的基础上使用特定于任务的特征类型和微调的 LoRA 适配器。下表概述了每种方法的优势:

注意事项

直接模型访问 (GenerativeModel)

文本和图片任务 API

集成工作

高。

由于需要进行提示词工程和质量保证,因此需要付出更多努力才能实现。

无压力

所需工作量较少,因为这些 API 在基础模型之上使用任务专用特征类型和经过微调的 LoRA 适配器。无需直接与 LLM 交互。

灵活性

灵活性更高,因为您可以自定义工程提示、管理多轮对话上下文、强制执行类型化结构化架构,或在 GenerativeModel 之上构建更高级别的智能体工作流 (AgentRunner)。

灵活性较低。每个特定于任务的 API 都具有固定的 LoRA 微调和内置提示,这些提示具有以下特征:

  • 图片说明简短且笼统。
  • 总结只能包含 1-3 个要点。
  • 重写功能仅支持预定义样式。

一般而言,如果您需要更多自定义和灵活性,请使用直接模型访问;对于不需要自定义逻辑的标准任务,请使用特定于任务的 API。

示例代码