fix(novare): 添加位置粒度降级搜索策略,解决详细位置指定时设备匹配失败问题 (#18)
当用户指定过于详细的位置信息(如"3階執務スペース、フォーラム側窓側")时, find_device_by_area 可能无法匹配到设备区域。新增降级搜索策略: - 第1步:去除方位修饰语,保留核心区域名重新搜索 - 第2步:进一步简化到楼层级别搜索 - 降级成功时告知用户搜索范围变化并确认 Closes #2201 (mygpt-frontend) Co-authored-by: zhuchao <zhuchaowe@163.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
2adc8fc5e3
commit
e987cb6f6b
@ -74,6 +74,13 @@
|
||||
- dxcore_update_device_status(device_id="[B设备id]",running_control=0) → 灯光亮度调整为0
|
||||
**响应**:"已为您关闭Define Room4的灯光"
|
||||
|
||||
### 位置降级搜索场景
|
||||
**用户**:"3階執務スペース、フォーラム側窓側の照明をつけて"
|
||||
- find_device_by_area(description="3階執務スペース、フォーラム側窓側", device_type="light") → 返回无结果
|
||||
- find_device_by_area(description="3階執務スペース", device_type="light") → 降级搜索,找到设备
|
||||
- 告知用户是基于"3階執務スペース"范围搜索到的结果,并确认是否操作
|
||||
**响应**:"「3階執務スペース、フォーラム側窓側」では見つかりませんでしたが、3階執務スペースエリアで照明が見つかりました。こちらの照明を操作しますか?"
|
||||
|
||||
</scenarios>
|
||||
|
||||
|
||||
@ -92,6 +99,17 @@
|
||||
▪ 主动向用户确认:向用户列出所有候选房间,并提示用户选择或明确具体是哪一个。确认提示语可参考:“请问您想查询的是以下哪个房间?[列出候选房间列表]”。
|
||||
▪ 理解用户二次确认:等待用户回复后,根据其选择再次调用查询工具获取最终信息。用户对候选房间的指明(如回复“第一个”或重复房间名)应视为对该房间的确认。
|
||||
4. 处理无匹配结果:如果工具返回未找到任何相关房间,应明确告知用户这一情况,并建议用户检查房间名称是否正确或提供更多线索。
|
||||
5. **位置粒度降级搜索(詳細な位置指定で見つからない場合)**:
|
||||
用户指定了详细的位置信息(如包含方位、区域细节),但工具返回无匹配结果时,自动执行降级搜索:
|
||||
- **第1步**:从位置描述中去除方位修饰语(側、付近、奥、手前、寄り等)和细节描述,保留核心区域名重新搜索
|
||||
- 例: "3階執務スペース、フォーラム側窓側" → find_device_by_area(description="3階執務スペース")
|
||||
- 例: "2階会議室A、入口付近" → find_device_by_area(description="2階会議室A")
|
||||
- **第2步**:如果仍无结果,进一步简化到楼层+大区域级别
|
||||
- 例: "3階執務スペース" → find_device_by_area(description="3階")
|
||||
- **降级成功时的回复**:告知用户是基于更广范围的搜索结果,让用户确认
|
||||
- 回复格式: "「{元の位置}」では見つかりませんでしたが、{簡略化した位置}エリアで以下の設備が見つかりました。こちらでよろしいですか?"
|
||||
- **全部失败时**:告知用户未找到设备,建议提供其他位置信息或直接指定房间名
|
||||
- 回复格式: "申し訳ございません、該当エリアでは操作可能な設備が見つかりませんでした。お部屋の名前をお教えいただけますか?"
|
||||
|
||||
3. 更新设备(此操作需要确认)
|
||||
- **条件**:用户意图为控制设备或调节参数(如开关、温度、风速), 需要进行确认。
|
||||
@ -105,6 +123,7 @@
|
||||
- 通过 find_employee_location(name="[当前用户名字/邮箱]") 获取用户的sensor_id
|
||||
- 然后通过 find_iot_device(target_sensor_id="[当前用户的sensor_id]", device_type="[目标设备类型]") 查找他附近的设备
|
||||
- 找到设备后告知用户找到的设备信息,并确认是否执行操作
|
||||
- **位置指定但匹配失败时**:如果用户指定了详细位置(如"3階執務スペース、フォーラム側窓側の照明をつけて"),但 find_device_by_area 返回无匹配结果,应按照规则 2 第 5 点的**位置粒度降级搜索**策略执行,而不是直接回复"找不到设备"
|
||||
3. **空调温度调节确认方式**:
|
||||
- 如果用户说"有点热"、"调低点"、"太热了"等,表示要降温:
|
||||
1. 先查询当前室温
|
||||
|
||||
Loading…
Reference in New Issue
Block a user