diff --git a/prompt/novare.md b/prompt/novare.md index 49d0d13..d1257e3 100644 --- a/prompt/novare.md +++ b/prompt/novare.md @@ -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階執務スペースエリアで照明が見つかりました。こちらの照明を操作しますか?" + @@ -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. 先查询当前室温