智能回复(SmartReply)使用指导:根据对话推荐快捷回复

« 返回

机器学习套件(ML Kit)组件在在线版和教育版中提供,离线版(含机房版)不包含。

它能做什么

智能回复根据对话上下文生成 1~3 条候选回复,就像输入法上方的快捷回复。用「添加对方消息」「添加本人消息」按顺序把对话喂进去,再调「生成回复建议」。只支持英语对话,中文对话会触发「语言不支持」。

准备工作

  • 对话顺序:按实际先后添加;组件内部维护对话历史,「消息数」看已添加多少条,「清空对话」重新开始。
  • 联机调试:安卓上用 AI 伴侣调试需要安装 MLKit 版 AI 伴侣(应用宝,包名 cn.fun123.appinventor);普通版伴侣不含识别引擎,调用时会触发「屏幕.出现错误时」(错误码 4722)。直接打包 APK 安装测试不受影响。
  • 安装包体积:只有用到本组件的 App 才会打包它的识别引擎与模型,体积以编译结果为准。
  • 鸿蒙:暂不支持:调用方法会触发「生成建议失败」并说明原因。

案例一:喂入对话并生成建议

对方的话用「添加对方消息」(需要一个对方编号),自己的话用「添加本人消息」:

when 按钮_对方.Click() {
  智能回复1.AddRemoteMessage(文本输入框_消息.Text, "friend")
}
when 按钮_我说.Click() {
  智能回复1.AddLocalMessage(文本输入框_消息.Text)
}
when 按钮_生成.Click() {
  智能回复1.SuggestReplies()
}
when 智能回复1.LanguageNotSupported() {
  标签_状态.Text = "只支持英语对话"
}

案例二:候选回复做成一键发送按钮

把建议列表存进全局变量,显示在三个按钮上,点按钮就当作自己说的话:

global 建议 = []
when 智能回复1.GotSuggestions(数量, 候选词) {
  建议 = 候选词
  按钮_建议1.Text = choose(length(建议) >= 1, select(建议, 1), "…")
  按钮_建议2.Text = choose(length(建议) >= 2, select(建议, 2), "…")
  按钮_建议3.Text = choose(length(建议) >= 3, select(建议, 3), "…")
}
when 按钮_建议1.Click() {
  智能回复1.AddLocalMessage(按钮_建议1.Text)
}

结果数据说明

「建议列表」是文本列表,可以直接给列表显示框,或做成按钮。对话太短或话题太偏时触发「没有合适回复」。

常见问题

现象 原因与处理
总是语言不支持 对话里有中文;只支持英语
没有合适回复 多聊几句,最后一条最好是对方的消息
建议重复上次的 加完新消息再生成

完整 .aia 源码与操作指导

下载 .aia 源码

导入 SmartReplyDemo.aia 后可以直接打包 APK 运行;用 AI 伴侣联机调试请安装 MLKit 版 AI 伴侣。源码文件已通过正式编辑器载入、后台导入和 APK 编译校验;真机识别效果请以实际设备为准。

功能 操作 预期结果
生成建议 点「对方说」添加示例英文,再点「生成回复」 三个按钮显示候选回复
一键发送 点任一建议按钮 该回复作为「我」加入对话
中文对话 输入中文点「对方说」后生成 提示只支持英语
清空 点「清空」 对话列表和建议都清空

案例界面与积木源码在仓库 docs/markdown/reference/components/guide/examples/SmartReplyDemo/,SHA-256:2128b79094381f0bd0d966d827f9feda455d4c6dfe5f96da54432e3fc00b530f。

文档反馈