家信息获取 (Get Home Info)
1. 技能说明
本技能是一个上下文解析与澄清工具。它不直接回答用户问题,而是为其他需要 homeId 的技能(如“全屋消息简报”、“设备控制”)获取homeId。它的主要工作流程是:
- 意图识别:从用户的自然语言中判断是否指定了某个家庭(如“某某小区”、“爸妈家”)。
- 数据获取:调用云侧接口获取用户名下所有家庭的信息。
- 歧义澄清:当用户拥有多个家庭且输入不明确时,主动发起澄清询问。
- 上下文传递:将最终确定的
homeId传递给调用方技能,使其能够继续执行。
2. 使用方法
- 接收输入:接收用户的原始指令文本(例如:“帮我看下爸妈家的设备消息”)。
- 调用JS接口:执行指定的 JS 命令来获取家庭列表。
- 命令:
# 获取用户家信息 node common-skill/bin/smarthome-claw.js get_homes_info - 输出文件
out_put/get_homes_info/homes_info.txt- 家庭信息列表
- 返回字段
- homeId: 家庭 ID
- homeName: 家庭名称
- address: 地址
- role: 用户角色
- 逻辑判断与澄清:
- 情况A:用户只有一个家
- 直接返回该家的home信息。无需澄清。
- 情况B:用户有多个家,且输入明确
- 例如用户说“爸妈家的设备消息”。技能需匹配
homeName(如“父母家”),并返回对应的homeId。
- 例如用户说“爸妈家的设备消息”。技能需匹配
- 情况C:用户有多个家,但输入模糊
- 例如用户只说“帮我看看消息”。技能无法确定是哪个家。
- 动作: 触发澄清流程,向用户提问:“您名下有多个家庭,请问您想查看哪一个?是‘我的公寓’还是‘父母的别墅’?”
- 等待: 等待用户二次确认后,再返回对应的
homeId,支持返回该用户所有的homeId,根据主技能的需求判断。
- 情况A:用户只有一个家
- 输出结果:将解析得到的
homeId作为结果返回给主技能。
3. 实现细节
- 模糊匹配: 技能应具备一定的模糊匹配能力。
- 上下文记忆: 如果用户在上一轮对话中已经明确了是哪个家,本技能应优先使用上下文中的信息,避免重复询问。
- 错误处理:
- 接口调用失败: 未获取用户homeId,返回错误信息,主技能自行决定后续流程。
- 无法匹配: 如果用户指定了一个不存在的家,应回复:“未找到名为‘xxx’的家庭,请确认。”