From e987cb6f6b7ac7796ff00268e4e97300d4a1f18f Mon Sep 17 00:00:00 2001 From: autobee-sparticle Date: Fri, 20 Mar 2026 15:47:48 +0900 Subject: [PATCH] =?UTF-8?q?fix(novare):=20=E6=B7=BB=E5=8A=A0=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E7=B2=92=E5=BA=A6=E9=99=8D=E7=BA=A7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E7=AD=96=E7=95=A5=EF=BC=8C=E8=A7=A3=E5=86=B3=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E6=8C=87=E5=AE=9A=E6=97=B6=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98=20(#18)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当用户指定过于详细的位置信息(如"3階執務スペース、フォーラム側窓側")时, find_device_by_area 可能无法匹配到设备区域。新增降级搜索策略: - 第1步:去除方位修饰语,保留核心区域名重新搜索 - 第2步:进一步简化到楼层级别搜索 - 降级成功时告知用户搜索范围变化并确认 Closes #2201 (mygpt-frontend) Co-authored-by: zhuchao Co-authored-by: Claude Opus 4.6 --- prompt/novare.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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. 先查询当前室温