机器学习套件(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 源码与操作指导
导入 SmartReplyDemo.aia 后可以直接打包 APK 运行;用 AI 伴侣联机调试请安装 MLKit 版 AI 伴侣。源码文件已通过正式编辑器载入、后台导入和 APK 编译校验;真机识别效果请以实际设备为准。
| 功能 | 操作 | 预期结果 |
|---|---|---|
| 生成建议 | 点「对方说」添加示例英文,再点「生成回复」 | 三个按钮显示候选回复 |
| 一键发送 | 点任一建议按钮 | 该回复作为「我」加入对话 |
| 中文对话 | 输入中文点「对方说」后生成 | 提示只支持英语 |
| 清空 | 点「清空」 | 对话列表和建议都清空 |
案例界面与积木源码在仓库 docs/markdown/reference/components/guide/examples/SmartReplyDemo/,SHA-256:2128b79094381f0bd0d966d827f9feda455d4c6dfe5f96da54432e3fc00b530f。
扫码添加客服咨询