From 1b532ce6284dee7adf35a2f174fd7527b92220a8 Mon Sep 17 00:00:00 2001 From: liu Date: Wed, 1 Nov 2023 17:00:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=9B=86=E6=88=90=E4=BA=AC=E4=B8=9C?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E4=BA=BA=E5=AF=B9=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rasa.zip | Bin 0 -> 10024 bytes rasa/domain.yml | 77 +++++---- rasa/nlu.yml | 38 ++--- rasa/rules.yml | 88 +++++----- .../supervision/config/ResponseConfig.java | 14 ++ .../supervision/exception/HumanException.java | 59 +++++++ .../com/supervision/mapper/LockMapper.java | 18 ++ .../supervision/model/DiagnosisQaRecord.java | 6 +- .../main/java/com/supervision/model/Lock.java | 45 +++++ .../com/supervision/service/LockService.java | 13 ++ .../service/impl/LockServiceImpl.java | 22 +++ .../com/supervision/vo/rasa}/RasaTalkVo.java | 2 +- .../mapper/DiagnosisQaRecordMapper.xml | 27 +-- .../src/main/resources/mapper/LockMapper.xml | 19 +++ .../rasa/controller/RasaFileController.java | 4 + .../rasa/controller/RasaTalkController.java | 2 +- .../rasa/service/RasaTalkService.java | 2 +- .../service/impl/RasaTalkServiceImpl.java | 4 +- .../src/main/resources/application.yml | 2 +- virtual-patient-web/pom.xml | 1 - .../VirtualPatientApplication.java | 1 - .../supervision/controller/AskController.java | 25 +-- .../controller/TestController.java | 5 +- .../{websocket/dto => pojo/vo}/ActionDTO.java | 2 +- .../supervision/pojo/vo/TalkResultResVO.java | 18 ++ .../com/supervision/service/AskService.java | 9 +- .../service/impl/AskServiceImpl.java | 155 +++++++++--------- .../service/impl/RasaServiceImpl.java | 8 +- .../java/com/supervision/util/HumanUtil.java | 101 ++++++++++++ .../java/com/supervision/util/RasaUtil.java | 24 ++- .../websocket/cache/WebSocketUserCache.java | 39 ----- .../websocket/config/WebSocketConfig.java | 23 --- .../websocket/dto/SocketMessageDTO.java | 37 ----- .../handler/AskWebSocketHandler.java | 60 ------- .../src/main/resources/application.yml | 9 +- 35 files changed, 560 insertions(+), 399 deletions(-) create mode 100644 rasa.zip create mode 100644 virtual-patient-common/src/main/java/com/supervision/exception/HumanException.java create mode 100644 virtual-patient-model/src/main/java/com/supervision/mapper/LockMapper.java create mode 100644 virtual-patient-model/src/main/java/com/supervision/model/Lock.java create mode 100644 virtual-patient-model/src/main/java/com/supervision/service/LockService.java create mode 100644 virtual-patient-model/src/main/java/com/supervision/service/impl/LockServiceImpl.java rename {virtual-patient-rasa/src/main/java/com/supervision/rasa/pojo/vo => virtual-patient-model/src/main/java/com/supervision/vo/rasa}/RasaTalkVo.java (86%) create mode 100644 virtual-patient-model/src/main/resources/mapper/LockMapper.xml rename virtual-patient-web/src/main/java/com/supervision/{websocket/dto => pojo/vo}/ActionDTO.java (84%) create mode 100644 virtual-patient-web/src/main/java/com/supervision/pojo/vo/TalkResultResVO.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/util/HumanUtil.java delete mode 100644 virtual-patient-web/src/main/java/com/supervision/websocket/cache/WebSocketUserCache.java delete mode 100644 virtual-patient-web/src/main/java/com/supervision/websocket/config/WebSocketConfig.java delete mode 100644 virtual-patient-web/src/main/java/com/supervision/websocket/dto/SocketMessageDTO.java delete mode 100644 virtual-patient-web/src/main/java/com/supervision/websocket/handler/AskWebSocketHandler.java diff --git a/rasa.zip b/rasa.zip new file mode 100644 index 0000000000000000000000000000000000000000..bc0142630096483e59e99c5385af872842d9e33f GIT binary patch literal 10024 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 literal 0 HcmV?d00001 diff --git a/rasa/domain.yml b/rasa/domain.yml index a7dc3a5f..edb0369b 100644 --- a/rasa/domain.yml +++ b/rasa/domain.yml @@ -3,7 +3,10 @@ version: "3.1" intents: - ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698 - ask_wen_chu_xian_jian_ge_1717735465047568386 + - tool_blood_pressure + - tool_heart_rate - ask_wen_fa_zuo_pin_lv_1717735465211146241 + - tool_thermometer - ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 - ask_wen_fu_yao_shi_1717735465630576641 - ask_wen_chou_yan_shi_1717735465680908289 @@ -11,20 +14,28 @@ intents: - ask_wen_bing_shi_1717735465420861442 - ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345 - ask_wen_zheng_zhuang_miao_shu_1717735465076928513 + - ancillary_eye_ct + - ancillary_jia_zhuang_xian_chao_sheng - ask_wen_jia_zu_shi_1717735465328586753 - ask_wen_chu_xian_duo_jiu_1717735464976265217 - ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 - ask_wen_fu_yao_shi_1717735465735434241 + - ancillary_xi_dian_lv - ask_wen_guo_min_shi_1717735465710268417 + - tool_weight + - ancillary_blood_h-z + - ancillary_xin_dian_tu - ask_wen_jiu_zhen_shi_1717735465299226626 - ask_wen_qi_ta_zheng_zhuang_1717735465173397505 - ask_wen_bu_shu_fu_1717735464913350658 - ask_wen_lei_si_qing_kuang_1717735465240506370 - ask_wen_ti_li_1717735465605410818 + - tool_height - ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 - ask_wen_fu_xie_1717735465580244993 - ask_wen_zi_wo_gan_jue_1717735465504747522 - ask_wen_shou_shang_shi_1717735465450221569 + - ancillary_blood_a-g - ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 - ask_wen_diao_tou_fa_1717735465555079170 - ask_wen_yin_jiu_shi_1717735465655742466 @@ -34,8 +45,14 @@ responses: - text: "没有" utter_ask_wen_chu_xian_jian_ge_1717735465047568386: - text: "基本上天天出现。" + utter_tool_blood_pressure: + - text: "---tool---2" + utter_tool_heart_rate: + - text: "---tool---9" utter_ask_wen_fa_zuo_pin_lv_1717735465211146241: - text: "反复发作,基本上天天出现," + utter_tool_thermometer: + - text: "---tool---6" utter_ask_wen_dui_ri_chang_ying_xiang_1717735465357946881: - text: "影响到我的工作和生活了。" utter_ask_wen_fu_yao_shi_1717735465630576641: @@ -50,6 +67,10 @@ responses: - text: "没有" utter_ask_wen_zheng_zhuang_miao_shu_1717735465076928513: - text: "感觉心跳特别快,喘不上气,活动后更严重。" + utter_ancillary_eye_ct: + - text: "---ancillary---10" + utter_ancillary_jia_zhuang_xian_chao_sheng: + - text: "---ancillary---9" utter_ask_wen_jia_zu_shi_1717735465328586753: - text: "没有" utter_ask_wen_chu_xian_duo_jiu_1717735464976265217: @@ -58,8 +79,16 @@ responses: - text: "活动后会加重,双腿还会没劲。" utter_ask_wen_fu_yao_shi_1717735465735434241: - text: "之前身体很好,没吃过什么药。" + utter_ancillary_xi_dian_lv: + - text: "---ancillary---4" utter_ask_wen_guo_min_shi_1717735465710268417: - text: "没有" + utter_tool_weight: + - text: "---tool---8" + utter_ancillary_blood_h-z: + - text: "---ancillary---1" + utter_ancillary_xin_dian_tu: + - text: "---ancillary---2" utter_ask_wen_jiu_zhen_shi_1717735465299226626: - text: "没有" utter_ask_wen_qi_ta_zheng_zhuang_1717735465173397505: @@ -70,6 +99,8 @@ responses: - text: "之前没有。" utter_ask_wen_ti_li_1717735465605410818: - text: "体力好像比之前差了一些,最近这些天我经常喘不过气来,并且活动后感觉双腿乏力,感觉到非常虚弱。" + utter_tool_height: + - text: "---tool---7" utter_ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497: - text: "夏天很怕热,晚上也会睡不着。" utter_ask_wen_fu_xie_1717735465580244993: @@ -78,39 +109,22 @@ responses: - text: "我不知道" utter_ask_wen_shou_shang_shi_1717735465450221569: - text: "没有" + utter_ancillary_blood_a-g: + - text: "---ancillary---3" utter_ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770: - text: "比较严重。" utter_ask_wen_diao_tou_fa_1717735465555079170: - text: "似乎是比之前掉的多了。" utter_ask_wen_yin_jiu_shi_1717735465655742466: - text: "没有" - utter_tool_height: - - text: "---tool---7" - utter_tool_blood_pressure: - - text: "---tool---2" - utter_tool_heart_rate: - - text: "---tool---9" - utter_tool_thermometer: - - text: "---tool---6" - utter_tool_weight: - - text: "---tool---8" - utter_ancillary_eye_ct: - - text: "---ancillary---10" - utter_ancillary_blood_a-g: - - text: "---ancillary---3" - utter_ancillary_jia_zhuang_xian_chao_sheng: - - text: "---ancillary---9" - utter_ancillary_xi_dian_lv: - - text: "---ancillary---4" - utter_ancillary_blood_h-z: - - text: "---ancillary---1" - utter_ancillary_xin_dian_tu: - - text: "---ancillary---2" actions: - utter_ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698 - utter_ask_wen_chu_xian_jian_ge_1717735465047568386 + - utter_tool_blood_pressure + - utter_tool_heart_rate - utter_ask_wen_fa_zuo_pin_lv_1717735465211146241 + - utter_tool_thermometer - utter_ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 - utter_ask_wen_fu_yao_shi_1717735465630576641 - utter_ask_wen_chou_yan_shi_1717735465680908289 @@ -118,34 +132,31 @@ actions: - utter_ask_wen_bing_shi_1717735465420861442 - utter_ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345 - utter_ask_wen_zheng_zhuang_miao_shu_1717735465076928513 + - utter_ancillary_eye_ct + - utter_ancillary_jia_zhuang_xian_chao_sheng - utter_ask_wen_jia_zu_shi_1717735465328586753 - utter_ask_wen_chu_xian_duo_jiu_1717735464976265217 - utter_ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 - utter_ask_wen_fu_yao_shi_1717735465735434241 + - utter_ancillary_xi_dian_lv - utter_ask_wen_guo_min_shi_1717735465710268417 + - utter_tool_weight + - utter_ancillary_blood_h-z + - utter_ancillary_xin_dian_tu - utter_ask_wen_jiu_zhen_shi_1717735465299226626 - utter_ask_wen_qi_ta_zheng_zhuang_1717735465173397505 - utter_ask_wen_bu_shu_fu_1717735464913350658 - utter_ask_wen_lei_si_qing_kuang_1717735465240506370 - utter_ask_wen_ti_li_1717735465605410818 + - utter_tool_height - utter_ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 - utter_ask_wen_fu_xie_1717735465580244993 - utter_ask_wen_zi_wo_gan_jue_1717735465504747522 - utter_ask_wen_shou_shang_shi_1717735465450221569 + - utter_ancillary_blood_a-g - utter_ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 - utter_ask_wen_diao_tou_fa_1717735465555079170 - utter_ask_wen_yin_jiu_shi_1717735465655742466 - - utter_tool_height - - utter_tool_blood_pressure - - utter_tool_heart_rate - - utter_tool_thermometer - - utter_tool_weight - - utter_ancillary_eye_ct - - utter_ancillary_blood_a-g - - utter_ancillary_jia_zhuang_xian_chao_sheng - - utter_ancillary_xi_dian_lv - - utter_ancillary_blood_h-z - - utter_ancillary_xin_dian_tu session_config: session_expiration_time: 60 diff --git a/rasa/nlu.yml b/rasa/nlu.yml index e17cc18a..ef22342f 100644 --- a/rasa/nlu.yml +++ b/rasa/nlu.yml @@ -28,25 +28,25 @@ nlu: examples: | - 您第一次发现这个问题是在什么时候?它是从什么时候开始的? - 当您首次察觉到这一问题是在什么日期? - - 您是何时开始意识到这个问题的存在? - - 您是在什么时间点首次察觉到这个问题? - - 您是何时首次觉察到这个问题的存在? - - 这个问题是在什么日期首次引起您的关注? - - 您是在什么时间首次察觉到这个问题的存在? - - 您是何时开始感知到这个问题的存在? - - 这个问题是在什么日期首次显现在您的视野中? - - 您是在什么时间点开始注意到这个问题? - - 这个问题何时首次引起您的注意? - - 您是在什么日期首次注意到这个问题? - - 这个问题是在什么时间点开始变得明显? - - 您是何时首次觉察到这个问题? - - 您是在什么日期开始感知到这个问题的存在? - - 这个问题何时首次显现在您的视野中? - - 您是在什么时间点首次发觉这个问题? - - 这个问题是在什么日期首次引起您的注意? - - 您是何时开始察觉到这个问题的存在? - - 您是在什么时间点首次注意到这个问题? - - 这个问题是在什么日期首次被您察 + - 您是何时开始意识到这个问题的存在? + - 您是在什么时间点首次察觉到这个问题? + - 您是何时首次觉察到这个问题的存在? + - 这个问题是在什么日期首次引起您的关注? + - 您是在什么时间首次察觉到这个问题的存在? + - 您是何时开始感知到这个问题的存在? + - 这个问题是在什么日期首次显现在您的视野中? + - 您是在什么时间点开始注意到这个问题? + - 这个问题何时首次引起您的注意? + - 您是在什么日期首次注意到这个问题? + - 这个问题是在什么时间点开始变得明显? + - 您是何时首次觉察到这个问题? + - 您是在什么日期开始感知到这个问题的存在? + - 这个问题何时首次显现在您的视野中? + - 您是在什么时间点首次发觉这个问题? + - 这个问题是在什么日期首次引起您的注意? + - 您是何时开始察觉到这个问题的存在? + - 您是在什么时间点首次注意到这个问题? + - 这个问题是在什么日期首次被您察 - intent: ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 examples: | - 您有没有注意过什么情况下症状会减轻或加重? diff --git a/rasa/rules.yml b/rasa/rules.yml index 37ed247f..340f3203 100644 --- a/rasa/rules.yml +++ b/rasa/rules.yml @@ -10,10 +10,22 @@ rules: steps: - intent: ask_wen_chu_xian_jian_ge_1717735465047568386 - action: utter_ask_wen_chu_xian_jian_ge_1717735465047568386 + - rule: 呼出-tool-水银血压计 + steps: + - intent: tool_blood_pressure + - action: utter_tool_blood_pressure + - rule: 呼出-tool-心率 + steps: + - intent: tool_heart_rate + - action: utter_tool_heart_rate - rule: 问发作频率 steps: - intent: ask_wen_fa_zuo_pin_lv_1717735465211146241 - action: utter_ask_wen_fa_zuo_pin_lv_1717735465211146241 + - rule: 呼出-tool-体温计 + steps: + - intent: tool_thermometer + - action: utter_tool_thermometer - rule: 问对日常影响 steps: - intent: ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 @@ -42,6 +54,14 @@ rules: steps: - intent: ask_wen_zheng_zhuang_miao_shu_1717735465076928513 - action: utter_ask_wen_zheng_zhuang_miao_shu_1717735465076928513 + - rule: 呼出-ancillary-眼眶CT + steps: + - intent: ancillary_eye_ct + - action: utter_ancillary_eye_ct + - rule: 呼出-ancillary-甲状腺超声 + steps: + - intent: ancillary_jia_zhuang_xian_chao_sheng + - action: utter_ancillary_jia_zhuang_xian_chao_sheng - rule: 问家族史 steps: - intent: ask_wen_jia_zu_shi_1717735465328586753 @@ -58,10 +78,26 @@ rules: steps: - intent: ask_wen_fu_yao_shi_1717735465735434241 - action: utter_ask_wen_fu_yao_shi_1717735465735434241 + - rule: 呼出-ancillary-吸碘率 + steps: + - intent: ancillary_xi_dian_lv + - action: utter_ancillary_xi_dian_lv - rule: 问过敏史 steps: - intent: ask_wen_guo_min_shi_1717735465710268417 - action: utter_ask_wen_guo_min_shi_1717735465710268417 + - rule: 呼出-tool-体重 + steps: + - intent: tool_weight + - action: utter_tool_weight + - rule: 呼出-ancillary-Blood H-Z + steps: + - intent: ancillary_blood_h-z + - action: utter_ancillary_blood_h-z + - rule: 呼出-ancillary-心电图 + steps: + - intent: ancillary_xin_dian_tu + - action: utter_ancillary_xin_dian_tu - rule: 问就诊史 steps: - intent: ask_wen_jiu_zhen_shi_1717735465299226626 @@ -82,6 +118,10 @@ rules: steps: - intent: ask_wen_ti_li_1717735465605410818 - action: utter_ask_wen_ti_li_1717735465605410818 + - rule: 呼出-tool-身高 + steps: + - intent: tool_height + - action: utter_tool_height - rule: 问症状改变情况 steps: - intent: ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 @@ -98,6 +138,10 @@ rules: steps: - intent: ask_wen_shou_shang_shi_1717735465450221569 - action: utter_ask_wen_shou_shang_shi_1717735465450221569 + - rule: 呼出-ancillary-Blood A-G + steps: + - intent: ancillary_blood_a-g + - action: utter_ancillary_blood_a-g - rule: 问症状严重程度 steps: - intent: ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 @@ -110,47 +154,3 @@ rules: steps: - intent: ask_wen_yin_jiu_shi_1717735465655742466 - action: utter_ask_wen_yin_jiu_shi_1717735465655742466 - - rule: 身高 - steps: - - intent: tool_height - - action: utter_tool_height - - rule: 水银血压计 - steps: - - intent: tool_blood_pressure - - action: utter_tool_blood_pressure - - rule: 心率 - steps: - - intent: tool_heart_rate - - action: utter_tool_heart_rate - - rule: 体温计 - steps: - - intent: tool_thermometer - - action: utter_tool_thermometer - - rule: 体重 - steps: - - intent: tool_weight - - action: utter_tool_weight - - rule: 眼眶CT - steps: - - intent: ancillary_eye_ct - - action: utter_ancillary_eye_ct - - rule: Blood A-G - steps: - - intent: ancillary_blood_a-g - - action: utter_ancillary_blood_a-g - - rule: 甲状腺超声 - steps: - - intent: ancillary_jia_zhuang_xian_chao_sheng - - action: utter_ancillary_jia_zhuang_xian_chao_sheng - - rule: 吸碘率 - steps: - - intent: ancillary_xi_dian_lv - - action: utter_ancillary_xi_dian_lv - - rule: Blood H-Z - steps: - - intent: ancillary_blood_h-z - - action: utter_ancillary_blood_h-z - - rule: 心电图 - steps: - - intent: ancillary_xin_dian_tu - - action: utter_ancillary_xin_dian_tu diff --git a/virtual-patient-common/src/main/java/com/supervision/config/ResponseConfig.java b/virtual-patient-common/src/main/java/com/supervision/config/ResponseConfig.java index 52af4d36..ba9a1c7d 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/ResponseConfig.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/ResponseConfig.java @@ -3,6 +3,7 @@ package com.supervision.config; import cn.hutool.json.JSONUtil; import com.supervision.domain.GlobalResult; import com.supervision.exception.BusinessException; +import com.supervision.exception.HumanException; import lombok.extern.slf4j.Slf4j; import org.springframework.core.MethodParameter; import org.springframework.http.HttpStatus; @@ -70,6 +71,18 @@ public class ResponseConfig implements ResponseBodyAdvice { return GlobalResult.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), exception.getMessage(), "业务异常"); } + /** + * 数字人异常处理 + * + * @param exception 业务异常 + * @return 通用返回值 + */ + @ExceptionHandler(HumanException.class) + public GlobalResult humanExceptionResponse(HumanException exception) { + log.error(exception.getMessage(), exception); + return GlobalResult.error(exception.getCode(), exception.getMessage(), "数字人异常"); + } + /** * 参数验证异常处理 @@ -99,4 +112,5 @@ public class ResponseConfig implements ResponseBodyAdvice { return GlobalResult.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "未知错误", exception.getMessage()); } + } diff --git a/virtual-patient-common/src/main/java/com/supervision/exception/HumanException.java b/virtual-patient-common/src/main/java/com/supervision/exception/HumanException.java new file mode 100644 index 00000000..814529a1 --- /dev/null +++ b/virtual-patient-common/src/main/java/com/supervision/exception/HumanException.java @@ -0,0 +1,59 @@ +/* + * 文 件 名: CustomException + * 版 权: + * 描 述: <描述> + * 修 改 人: RedName + * 修改时间: 2022/8/5 + * 跟踪单号: <跟踪单号> + * 修改单号: <修改单号> + * 修改内容: <修改内容> + */ +package com.supervision.exception; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; + +/** + * <功能详细描述> + * 自定义异常 + * + * @author ljt + * @version [版本号, 2022/8/5] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +@Slf4j +public class HumanException extends RuntimeException { + + /** + * 房间状态获取异常时,前端刷新房间,重新进入 + */ + private static final Integer HUMAN_ERROR = 6001; + /** + * 异常编码 + */ + private final Integer code; + + /** + * 异常信息 + */ + private final String message; + + private HumanException(Integer code, String message) { + this.code = code; + this.message = message; + } + + public static HumanException humanError(String message) { + return new HumanException(HUMAN_ERROR, message); + } + + @Override + public String getMessage() { + return message; + } + + public Integer getCode() { + return code; + } +} diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/LockMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/LockMapper.java new file mode 100644 index 00000000..933d13c5 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/mapper/LockMapper.java @@ -0,0 +1,18 @@ +package com.supervision.mapper; + +import com.supervision.model.Lock; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author flevance +* @description 针对表【lock(并发锁,目前没有redis,使用这个)】的数据库操作Mapper +* @createDate 2023-11-01 13:11:34 +* @Entity com.supervision.model.Lock +*/ +public interface LockMapper extends BaseMapper { + +} + + + + diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java index ab81bafd..5b118db4 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; +import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,7 +19,7 @@ import lombok.Data; @TableName(value ="vp_diagnosis_qa_record") @Data @ApiModel -public class DiagnosisQaRecord implements Serializable { +public class DiagnosisQaRecord extends Model implements Serializable { /** * 主键 */ @@ -31,6 +32,9 @@ public class DiagnosisQaRecord implements Serializable { @ApiModelProperty("诊断进程ID") private String processId; + @ApiModelProperty("问答类型:default,disease") + private String questionAnswerType; + /** * 问题答案表ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/Lock.java b/virtual-patient-model/src/main/java/com/supervision/model/Lock.java new file mode 100644 index 00000000..5a0fbd44 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/model/Lock.java @@ -0,0 +1,45 @@ +package com.supervision.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; + +/** + * 并发锁,目前没有redis,使用这个 + * @TableName lock + */ +@TableName(value ="lock") +@Data +public class Lock implements Serializable { + /** + * + */ + @TableId + private String id; + + /** + * 锁 + */ + private String lockCode; + + /** + * 时间戳 + */ + private Long timestamp; + + /** + * 超时毫秒数 + */ + private Long expireMs; + + /** + * 线程ID,以支持重入 + */ + private String threadId; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/virtual-patient-model/src/main/java/com/supervision/service/LockService.java b/virtual-patient-model/src/main/java/com/supervision/service/LockService.java new file mode 100644 index 00000000..393b4cb5 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/LockService.java @@ -0,0 +1,13 @@ +package com.supervision.service; + +import com.supervision.model.Lock; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author flevance +* @description 针对表【lock(并发锁,目前没有redis,使用这个)】的数据库操作Service +* @createDate 2023-11-01 13:11:34 +*/ +public interface LockService extends IService { + +} diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/LockServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/LockServiceImpl.java new file mode 100644 index 00000000..e58d9810 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/LockServiceImpl.java @@ -0,0 +1,22 @@ +package com.supervision.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.model.Lock; +import com.supervision.service.LockService; +import com.supervision.mapper.LockMapper; +import org.springframework.stereotype.Service; + +/** +* @author flevance +* @description 针对表【lock(并发锁,目前没有redis,使用这个)】的数据库操作Service实现 +* @createDate 2023-11-01 13:11:34 +*/ +@Service +public class LockServiceImpl extends ServiceImpl + implements LockService{ + +} + + + + diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/pojo/vo/RasaTalkVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/rasa/RasaTalkVo.java similarity index 86% rename from virtual-patient-rasa/src/main/java/com/supervision/rasa/pojo/vo/RasaTalkVo.java rename to virtual-patient-model/src/main/java/com/supervision/vo/rasa/RasaTalkVo.java index 0b20ebdc..d4c1cab9 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/pojo/vo/RasaTalkVo.java +++ b/virtual-patient-model/src/main/java/com/supervision/vo/rasa/RasaTalkVo.java @@ -1,4 +1,4 @@ -package com.supervision.rasa.pojo.vo; +package com.supervision.vo.rasa; import lombok.Data; diff --git a/virtual-patient-model/src/main/resources/mapper/DiagnosisQaRecordMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiagnosisQaRecordMapper.xml index b0a02479..4be5869a 100644 --- a/virtual-patient-model/src/main/resources/mapper/DiagnosisQaRecordMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/DiagnosisQaRecordMapper.xml @@ -5,21 +5,24 @@ - - - - - - - - - - - + + + + + + + + + + + + - id,process_id,question,question_answer_id + id + ,question_answer_type + ,process_id,question,question_answer_id question_wav_id,answer,answer_wav_id, create_user_id,create_time,update_user_id, update_time diff --git a/virtual-patient-model/src/main/resources/mapper/LockMapper.xml b/virtual-patient-model/src/main/resources/mapper/LockMapper.xml new file mode 100644 index 00000000..7f5495cf --- /dev/null +++ b/virtual-patient-model/src/main/resources/mapper/LockMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + id,lock_code,timestamp, + expire_ms,thread_id + + diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaFileController.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaFileController.java index d22adec7..cc96563c 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaFileController.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaFileController.java @@ -6,6 +6,10 @@ import com.supervision.rasa.service.RasaFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaTalkController.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaTalkController.java index 4f4f236e..04331728 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaTalkController.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/controller/RasaTalkController.java @@ -1,6 +1,6 @@ package com.supervision.rasa.controller; -import com.supervision.rasa.pojo.vo.RasaTalkVo; +import com.supervision.vo.rasa.RasaTalkVo; import com.supervision.rasa.service.RasaTalkService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaTalkService.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaTalkService.java index 7386e8e2..5fbd7418 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaTalkService.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaTalkService.java @@ -1,6 +1,6 @@ package com.supervision.rasa.service; -import com.supervision.rasa.pojo.vo.RasaTalkVo; +import com.supervision.vo.rasa.RasaTalkVo; import java.util.List; diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaTalkServiceImpl.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaTalkServiceImpl.java index cdcd97e0..dd9bf7b8 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaTalkServiceImpl.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaTalkServiceImpl.java @@ -1,6 +1,5 @@ package com.supervision.rasa.service.impl; -import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; @@ -8,7 +7,7 @@ import com.supervision.exception.BusinessException; import com.supervision.model.RasaModelInfo; import com.supervision.rasa.pojo.dto.RasaReqDTO; import com.supervision.rasa.pojo.dto.RasaResDTO; -import com.supervision.rasa.pojo.vo.RasaTalkVo; +import com.supervision.vo.rasa.RasaTalkVo; import com.supervision.rasa.service.RasaTalkService; import com.supervision.service.RasaModeService; import lombok.RequiredArgsConstructor; @@ -17,7 +16,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.List; -import java.util.function.Predicate; import java.util.stream.Collectors; @Service @Slf4j diff --git a/virtual-patient-rasa/src/main/resources/application.yml b/virtual-patient-rasa/src/main/resources/application.yml index c0774e3a..4cdc72f3 100644 --- a/virtual-patient-rasa/src/main/resources/application.yml +++ b/virtual-patient-rasa/src/main/resources/application.yml @@ -1,7 +1,7 @@ server: port: 8890 servlet: - context-path: / + context-path: /virtual-patient-rasa undertow: # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的 max-http-post-size: -1 diff --git a/virtual-patient-web/pom.xml b/virtual-patient-web/pom.xml index d23ec0a0..67c7f60b 100644 --- a/virtual-patient-web/pom.xml +++ b/virtual-patient-web/pom.xml @@ -57,7 +57,6 @@ provided - diff --git a/virtual-patient-web/src/main/java/com/supervision/VirtualPatientApplication.java b/virtual-patient-web/src/main/java/com/supervision/VirtualPatientApplication.java index 45091892..7a4fcbf3 100644 --- a/virtual-patient-web/src/main/java/com/supervision/VirtualPatientApplication.java +++ b/virtual-patient-web/src/main/java/com/supervision/VirtualPatientApplication.java @@ -7,7 +7,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.web.socket.config.annotation.EnableWebSocket; -@EnableWebSocket @SpringBootApplication @MapperScan(basePackages = {"com.supervision.**.mapper"}) public class VirtualPatientApplication { diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskController.java index 3b3a497d..10d122f3 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/AskController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskController.java @@ -1,17 +1,15 @@ package com.supervision.controller; +import com.supervision.pojo.vo.TalkResultResVO; import com.supervision.service.AskService; -import com.supervision.websocket.cache.WebSocketUserCache; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; import java.io.IOException; -import java.util.List; @Api(tags = "问诊") @RestController @@ -22,17 +20,14 @@ public class AskController { private AskService askService; - @ApiOperation("发送消息到页面") - @GetMapping("/sendMessage") - public void sendMessage(String message, String sessionId) throws IOException { - WebSocketSession session = WebSocketUserCache.getSession(sessionId); - session.sendMessage(new TextMessage(message)); - } @ApiOperation("接收页面的语音消息(这个接口使用京东数字人接口来做)") @PostMapping("/receiveVoiceFile") - public String receiveVoiceFile(@RequestParam("file") MultipartFile file) throws IOException { - return askService.receiveVoiceFile(file); + public TalkResultResVO receiveVoiceFile(@RequestParam("file") MultipartFile file, + @ApiParam("流程ID") String processId, + @ApiParam("数字人房间的数字人ID") String roomKey, + @ApiParam("数字人的TOKEN") String roomToken) throws IOException { + return askService.receiveVoiceFile(file, processId, roomKey, roomToken); } @ApiOperation("回复语音及文字消息") @@ -41,12 +36,6 @@ public class AskController { return askService.replyVoice(); } - @ApiOperation("进行对话") - @GetMapping("conversation") - public List conversation(String question, String sessionId) { - return askService.conversation(question, sessionId); - } - @ApiOperation("查询对话历史") public void queryAskHistory(String processId) { diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java index d180d35a..b3b1c70a 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java @@ -65,7 +65,7 @@ public class TestController { * @param roomId 房间ID */ @GetMapping("shuZiRenSend") - public void shuZiRenSend(String text, String roomId) { + public String shuZiRenSend(String text, String roomId) { HashMap param = new HashMap<>(); long timeStamp = System.currentTimeMillis(); @@ -79,8 +79,7 @@ public class TestController { (String) param.get("text"), (String) param.get("actionId"), (String) param.get("roomId"))); - String s = HttpUtil.get("https://digital-human.jd.com/text_driven", param); - System.out.println(s); + return HttpUtil.get("https://digital-human.jd.com/text_driven", param); } private static String getSign(String timeStamp, String nonce, String text, String actionId, String roomId) { diff --git a/virtual-patient-web/src/main/java/com/supervision/websocket/dto/ActionDTO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ActionDTO.java similarity index 84% rename from virtual-patient-web/src/main/java/com/supervision/websocket/dto/ActionDTO.java rename to virtual-patient-web/src/main/java/com/supervision/pojo/vo/ActionDTO.java index babff18d..f0b2e611 100644 --- a/virtual-patient-web/src/main/java/com/supervision/websocket/dto/ActionDTO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ActionDTO.java @@ -1,4 +1,4 @@ -package com.supervision.websocket.dto; +package com.supervision.pojo.vo; import lombok.Data; diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/TalkResultResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/TalkResultResVO.java new file mode 100644 index 00000000..57a57a79 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/TalkResultResVO.java @@ -0,0 +1,18 @@ +package com.supervision.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class TalkResultResVO { + + @ApiModelProperty("若有动作,这是需要执行的动作内容") + private ActionDTO action; + + /** + * 后端返回给前端时使用,表示该是消息还是action动作,1消息,2动作 + */ + @ApiModelProperty("后端返回给前端时使用,表示该是消息还是action动作,1消息,2动作") + private Integer type; + +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskService.java index 68653521..a09ad61a 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/AskService.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskService.java @@ -1,20 +1,15 @@ package com.supervision.service; -import com.supervision.websocket.dto.SocketMessageDTO; +import com.supervision.pojo.vo.TalkResultResVO; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; -import java.util.List; public interface AskService { - void handlerMessageBySocket(SocketMessageDTO socketMessageDTO) throws IOException; - - String receiveVoiceFile(MultipartFile file) throws IOException; + TalkResultResVO receiveVoiceFile(MultipartFile file, String processId, String roomKey, String roomToken) throws IOException; String replyVoice(); - List conversation(String question, String sessionId); - } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java index 340d60b5..e62ace82 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java @@ -1,104 +1,103 @@ package com.supervision.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; import com.supervision.exception.BusinessException; -import com.supervision.util.AsrUtil; -import com.supervision.util.TtsUtil; -import com.supervision.util.RasaUtil; +import com.supervision.model.DiagnosisQaRecord; +import com.supervision.model.Process; +import com.supervision.pojo.vo.TalkResultResVO; +import com.supervision.service.AskDefaultQuestionAnswerService; +import com.supervision.service.AskDiseaseQuestionAnswerService; +import com.supervision.service.ProcessService; +import com.supervision.util.*; import com.supervision.service.AskService; -import com.supervision.util.UserUtil; -import com.supervision.websocket.cache.WebSocketUserCache; -import com.supervision.websocket.dto.ActionDTO; -import com.supervision.websocket.dto.SocketMessageDTO; +import com.supervision.pojo.vo.ActionDTO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; import java.io.IOException; import java.util.List; +import java.util.Optional; +import java.util.Random; @Slf4j @Service @RequiredArgsConstructor public class AskServiceImpl implements AskService { + private final ProcessService processService; - @Override - public void handlerMessageBySocket(SocketMessageDTO socketMessageDTO) throws IOException { - // 首先获取消息的类型 - String text; - if (0 == socketMessageDTO.getMessageType()) { - // 如果是语音消息 - // 调用百度接口,语音转文字 - text = AsrUtil.asrTransformByBytes(socketMessageDTO.getVoiceMessage()); - } else { - text = socketMessageDTO.getTextMessage(); - } - if (StrUtil.isBlank(text)) { - throw new BusinessException("语音消息不能为空"); - } - // 进行rasa对话 - List rasaResultList = RasaUtil.talkRasa(text, socketMessageDTO.getSocketId()); - log.info("问题:{},rasa回复:{}", text, JSONUtil.toJsonStr(rasaResultList)); - WebSocketSession session = WebSocketUserCache.getSession(socketMessageDTO.getSocketId()); - for (String rasaResult : rasaResultList) { - if (StrUtil.isNotBlank(rasaResult)) { - // 这里校验,rasa回复的结果是不是action - // 这里设置的模板,对于action的动作全部是用---进行标记,详情看生成rasa的yml的代码:RasaServiceImpl.generateDomain - // ---ancillary---xxx - // ---tool---xxx - if (rasaResult.startsWith("---")) { - // ["","ancillary","xxx"] - List actionList = StrUtil.split(rasaResult, "---"); - if (actionList.size() > 2) { - ActionDTO actionDTO = new ActionDTO(); - actionDTO.setActionType(actionList.get(1)); - actionDTO.setActionId(actionList.get(2)); - // 在这里给socket回复,设置为动作 - SocketMessageDTO res = new SocketMessageDTO(); - res.setSocketId(socketMessageDTO.getSocketId()); - res.setUserId(UserUtil.getUser().getId()); - res.setAction(actionDTO); - res.setType(2); - session.sendMessage(new TextMessage(JSONUtil.toJsonStr(res))); - return; - } - } else { - // 走到这里,说明是文字,这个时候文字转语音 - String replyVoiceResVO = TtsUtil.ttsTransform(rasaResult); - // 在这里给socket回复 - SocketMessageDTO res = new SocketMessageDTO(); - res.setSocketId(socketMessageDTO.getSocketId()); - res.setUserId(UserUtil.getUser().getId()); - res.setTextMessage(rasaResult); - res.setVoiceMessage(replyVoiceResVO); - res.setType(1); - session.sendMessage(new TextMessage(JSONUtil.toJsonStr(res))); - return; - } - } - } - // 兜底,如果走到了这里,就直接返回未识别 - SocketMessageDTO res = new SocketMessageDTO(); - res.setSocketId(socketMessageDTO.getSocketId()); - res.setUserId(UserUtil.getUser().getId()); - res.setTextMessage("医生,我没有听懂您说的什么意思"); - res.setType(1); - session.sendMessage(new TextMessage(JSONUtil.toJsonStr(res))); - log.info("兜底话术,需要检查上面是不是出什么问题了"); - } + private final AskDiseaseQuestionAnswerService askDiseaseQuestionAnswerService; + + private final AskDefaultQuestionAnswerService askDefaultQuestionAnswerService; @Override - public String receiveVoiceFile(MultipartFile file) throws IOException { + @Transactional(rollbackFor = Exception.class) + public TalkResultResVO receiveVoiceFile(MultipartFile file, String processId, String roomKey, String roomToken) throws IOException { + // 根据processId找到对应的病人 + Process process = Optional.ofNullable(processService.getById(processId)).orElseThrow(() -> new BusinessException("未找到诊疗进程")); // 获取音频对应的文字 String askQuestion = AsrUtil.asrTransformByBytes(file.getBytes()); // 调用rasa获取文字内容 + String rasaResult = RasaUtil.talkRasa(askQuestion, UserUtil.getUser().getId(), process.getPatientId()); + TalkResultResVO talkResultResVO = new TalkResultResVO(); + // 这里校验,rasa回复的结果是不是action + // 这里设置的模板,对于action的动作全部是用ancillary_ | tool_进行标记,详情看生成rasa的yml的代码:RasaServiceImpl.generateDomain + // ancillary_ | tool_ + if (rasaResult.startsWith("ancillary_") || rasaResult.startsWith("tool_")) { + List actionList = StrUtil.split(rasaResult, '_'); + if (actionList.size() > 1) { + ActionDTO actionDTO = new ActionDTO(); + actionDTO.setActionType(actionList.get(0)); + actionDTO.setActionId(actionList.get(1)); + // 在这里给socket回复,设置为动作 + talkResultResVO.setAction(actionDTO); + talkResultResVO.setType(2); + return talkResultResVO; + } + } else { + // 语音消息,这时调用京东的接口进行播放操作 + // 这里调用京东数字人接口首先根据token获取房间号 + String roomId = HumanUtil.queryRoomId(roomKey, roomToken); + // 区分 + List answerIdList = StrUtil.split(rasaResult, '_'); + String qaId = null; + String qaType = "miss"; + String answer = "您好,我没有听懂您说什么"; + if (answerIdList.size() > 1) { + if (rasaResult.startsWith("default_")) { + qaType = "default"; + List answerList = Optional.ofNullable(askDefaultQuestionAnswerService.getById(answerIdList.get(1)).getAnswer()) + .orElse(CollUtil.newArrayList("您好,我没有听懂您说什么")); + answer = answerList.get(new Random().nextInt(answerList.size())); + qaId = answerIdList.get(1); - throw new BusinessException("暂未实现"); + } else if (rasaResult.startsWith("disease_")) { + qaType = "disease"; + List answerList = Optional.ofNullable(askDiseaseQuestionAnswerService.getById(answerIdList.get(1)).getAnswer()) + .orElse(CollUtil.newArrayList("您好,我没有听懂您说什么")); + answer = answerList.get(new Random().nextInt(answerList.size())); + qaId = answerIdList.get(1); + } + } + // 然后这里进行播放 + // 这里应该从对话中取结果 + HumanUtil.textDriven(rasaResult, roomId); + // 保存记录 + DiagnosisQaRecord record = new DiagnosisQaRecord(); + record.setProcessId(processId); + record.setQuestionAnswerType(qaType); + record.setQuestionAnswerId(qaId); + record.setQuestion(askQuestion); + record.setAnswer(answer); + record.setCreateUserId(UserUtil.getUser().getId()); + record.insert(); + } + talkResultResVO.setType(1); + return talkResultResVO; } @@ -109,8 +108,4 @@ public class AskServiceImpl implements AskService { } - @Override - public List conversation(String question, String sessionId) { - return RasaUtil.talkRasa(question, sessionId); - } } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java index e1595fe5..b4c4126e 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java @@ -93,7 +93,7 @@ public class RasaServiceImpl implements RasaService { nlu.setExamples(defaultQA.getQuestion()); nluList.add(nlu); // 添加到map中,key为意图编码,value为意图ID - intentCodeAndIdMap.put(intentCode, new QuestionAnswerDTO(defaultQA.getQuestion(), defaultQA.getAnswer(), defaultQA.getDescription())); + intentCodeAndIdMap.put(intentCode, new QuestionAnswerDTO(defaultQA.getQuestion(), CollUtil.newArrayList("default_" + defaultQA.getId()), defaultQA.getDescription())); } } // 然后处理该疾病对应的意图 @@ -124,7 +124,7 @@ public class RasaServiceImpl implements RasaService { nlu.setIntent(intentCode); nlu.setExamples(askTemplateQuestion.getQuestion()); nluList.add(nlu); - intentCodeAndIdMap.put(intentCode, new QuestionAnswerDTO(askTemplateQuestion.getQuestion(), askDiseaseQuestionAnswer.getAnswer(), askTemplateQuestion.getDescription())); + intentCodeAndIdMap.put(intentCode, new QuestionAnswerDTO(askTemplateQuestion.getQuestion(), CollUtil.newArrayList("disease_" + askDiseaseQuestionAnswer.getId()), askTemplateQuestion.getDescription())); } } @@ -144,7 +144,7 @@ public class RasaServiceImpl implements RasaService { // answer格式为:---tool---工具ID intentCodeAndIdMap.put(toolIntent, new QuestionAnswerDTO(tool.getCallOutQuestion(), - CollUtil.newArrayList("---tool---" + tool.getId()), "呼出-tool-" + tool.getToolName())); + CollUtil.newArrayList("tool_" + tool.getId()), "tool-" + tool.getToolName())); } // 生成呼出的辅助检查 @@ -162,7 +162,7 @@ public class RasaServiceImpl implements RasaService { // answer格式为:---ancillary---工具ID intentCodeAndIdMap.put(itemIntent, new QuestionAnswerDTO(ancillary.getCallOutQuestion(), - CollUtil.newArrayList("---ancillary---" + ancillary.getId()), "呼出-ancillary-" + ancillary.getItemName())); + CollUtil.newArrayList("ancillary_" + ancillary.getId()), "呼出-ancillary-" + ancillary.getItemName())); } NluYmlTemplate nluYmlTemplate = new NluYmlTemplate(); nluYmlTemplate.setNlu(nluList); diff --git a/virtual-patient-web/src/main/java/com/supervision/util/HumanUtil.java b/virtual-patient-web/src/main/java/com/supervision/util/HumanUtil.java new file mode 100644 index 00000000..a428192b --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/util/HumanUtil.java @@ -0,0 +1,101 @@ +package com.supervision.util; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.crypto.digest.MD5; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.supervision.exception.BusinessException; +import com.supervision.exception.HumanException; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.env.Environment; + +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; +import java.util.UUID; + +@Slf4j +public class HumanUtil { + private static final Environment environment = SpringBeanUtil.getBean(Environment.class); + + private static final String BASE_URL = environment.getProperty("human.base-url"); + + private static final String QUERY_ROOM_ID_URL = BASE_URL + environment.getProperty("human.room-id"); + + private static final String TEXT_DRIVEN_URL = BASE_URL + environment.getProperty("human.text-driven"); + + private static final String QUERY_TOKEN_STATUS = BASE_URL + environment.getProperty("human.talk-status"); + + + public static String queryRoomId(String roomKey, String roomToken) { + Map param = new HashMap<>(); + param.put("key", roomKey); + param.put("token", roomToken); + String res = HttpUtil.get(QUERY_ROOM_ID_URL, param); + HumanRes resDTO = JSONUtil.toBean(res, HumanRes.class); + if (!"200".equals(resDTO.code)) { + throw new BusinessException("获取房间号失败"); + } + // 去过为true,则data是房间号 + return resDTO.data; + } + + /** + * 这里是加锁的,注意,只能对应目前单机的情况,如果多节点,可能存在失效的问题 + * + * @param text 需要发送的内容 + * @param roomId 房间ID + */ + public static void textDriven(String text, String roomId) { + HashMap param = new HashMap<>(); + long timeStamp = System.currentTimeMillis(); + // 要播报的⽂本 + param.put("text", text); + // 当前数字⼈房间id + param.put("roomId", roomId); + // 动作id,默认-1 + param.put("action", "-1"); + // 请求唯⼀值,使⽤uuid即可,每次播报⽂本都要不同,否则视为重复播报,返回失败 + param.put("nonce", UUID.randomUUID().toString()); + // 毫秒 + param.put("timeStamp", String.valueOf(timeStamp)); + param.put("sign", getSign(String.valueOf(timeStamp), + (String) param.get("nonce"), + (String) param.get("text"), + (String) param.get("actionId"), + (String) param.get("roomId"))); + String res = HttpUtil.get(TEXT_DRIVEN_URL, param); + HumanRes resDTO = JSONUtil.toBean(res, HumanRes.class); + if (!"200".equals(resDTO.code)) { + throw HumanException.humanError("播放语音失败"); + } + } + + + + /** + * 获取验签 + * 对timeStamp、nonce、text、rootId、actionId组成的对象的json字符串进⾏MD5计算,结果是16位MD5值 + */ + private static String getSign(String timeStamp, String nonce, String text, String actionId, String roomId) { + Map paramMap = new TreeMap<>(); + paramMap.put("action", actionId); + paramMap.put("nonce", nonce); + paramMap.put("roomId", roomId); + paramMap.put("text", text); + paramMap.put("timeStamp", timeStamp); + String paramJsonString = JSONUtil.toJsonStr(paramMap); + return new MD5().digestHex16(paramJsonString); + } + + @Data + public static class HumanRes { + private String code; + + private String data; + + private String state; + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/util/RasaUtil.java b/virtual-patient-web/src/main/java/com/supervision/util/RasaUtil.java index 0aba82dc..15cce320 100644 --- a/virtual-patient-web/src/main/java/com/supervision/util/RasaUtil.java +++ b/virtual-patient-web/src/main/java/com/supervision/util/RasaUtil.java @@ -1,25 +1,35 @@ package com.supervision.util; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.supervision.pojo.rasa.train.dto.RasaReqDTO; import com.supervision.pojo.rasa.train.dto.RasaResDTO; +import com.supervision.vo.rasa.RasaTalkVo; +import lombok.extern.slf4j.Slf4j; import org.springframework.core.env.Environment; import java.util.List; import java.util.stream.Collectors; +@Slf4j public class RasaUtil { private static final String RASA_URL = SpringBeanUtil.getBean(Environment.class).getProperty("rasa.url"); - public static List talkRasa(String question, String sessionId) { - RasaReqDTO rasaReqDTO = new RasaReqDTO(); - rasaReqDTO.setSender(sessionId); - rasaReqDTO.setMessage(question); - String post = HttpUtil.post(RASA_URL, JSONUtil.toJsonStr(rasaReqDTO)); - List list = JSONUtil.toList(post, RasaResDTO.class); - return list.stream().map(RasaResDTO::getText).collect(Collectors.toList()); + public static String talkRasa(String question, String sessionId, String patientId) { + RasaTalkVo rasaTalkVo = new RasaTalkVo(); + rasaTalkVo.setQuestion(question); + rasaTalkVo.setSessionId(sessionId); + rasaTalkVo.setModelId(patientId); + String post = HttpUtil.post(RASA_URL, JSONUtil.toJsonStr(rasaTalkVo)); + List list = JSONUtil.toList(post, String.class); + log.info("调用rasa对话返回结果:{}",post); + if (CollUtil.isEmpty(list)){ + return "对不起,我没有听懂您说的是什么意思"; + } + return CollUtil.getFirst(list); } diff --git a/virtual-patient-web/src/main/java/com/supervision/websocket/cache/WebSocketUserCache.java b/virtual-patient-web/src/main/java/com/supervision/websocket/cache/WebSocketUserCache.java deleted file mode 100644 index 9d796202..00000000 --- a/virtual-patient-web/src/main/java/com/supervision/websocket/cache/WebSocketUserCache.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.supervision.websocket.cache; - -import cn.hutool.core.util.ObjectUtil; -import com.supervision.exception.BusinessException; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.socket.WebSocketSession; - -import java.util.Collection; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -@Slf4j -public class WebSocketUserCache { - - private static final Map map = new ConcurrentHashMap<>(); - - - public static void login(String id, WebSocketSession socketSession) { - map.put(id, socketSession); - log.info("sessionId:{}注册成功", id); - - } - - public static void logout(String id) { - map.remove(id); - log.info("sessionId:{}注销成功", id); - } - - public static WebSocketSession getSession(String id){ - WebSocketSession webSocketSession = map.get(id); - if (ObjectUtil.isEmpty(webSocketSession)){ - throw new BusinessException("未找到socket链接"); - } - return webSocketSession; - } - -} diff --git a/virtual-patient-web/src/main/java/com/supervision/websocket/config/WebSocketConfig.java b/virtual-patient-web/src/main/java/com/supervision/websocket/config/WebSocketConfig.java deleted file mode 100644 index f923b623..00000000 --- a/virtual-patient-web/src/main/java/com/supervision/websocket/config/WebSocketConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.supervision.websocket.config; - -import com.supervision.websocket.handler.AskWebSocketHandler; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.WebSocketHandler; -import org.springframework.web.socket.config.annotation.WebSocketConfigurer; -import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; - -@Configuration -public class WebSocketConfig implements WebSocketConfigurer { - - @Override - public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - registry.addHandler(askWebSocketHandler(), "/askSocket") - .setAllowedOrigins("*"); - } - - @Bean - public WebSocketHandler askWebSocketHandler() { - return new AskWebSocketHandler(); - } -} diff --git a/virtual-patient-web/src/main/java/com/supervision/websocket/dto/SocketMessageDTO.java b/virtual-patient-web/src/main/java/com/supervision/websocket/dto/SocketMessageDTO.java deleted file mode 100644 index 4146d79e..00000000 --- a/virtual-patient-web/src/main/java/com/supervision/websocket/dto/SocketMessageDTO.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.supervision.websocket.dto; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -@ApiModel -public class SocketMessageDTO { - - @ApiModelProperty("socket链接ID") - private String socketId; - - @ApiModelProperty("当前用户ID") - private String userId; - - @ApiModelProperty("文字消息内容") - private String textMessage; - - @ApiModelProperty("语音消息内容") - private String voiceMessage; - - @ApiModelProperty("若有动作,这是需要执行的动作内容") - private ActionDTO action; - - /** - * 后端返回给前端时使用,表示该是消息还是action动作,1消息,2动作 - */ - @ApiModelProperty("后端返回给前端时使用,表示该是消息还是action动作,1消息,2动作") - private Integer type; - - /** - * 表示是消息还是action动作,0语音,1文字 - */ - @ApiModelProperty("前端到后端使用,表示是语音还是文字,1语音,2文字") - private Integer messageType; -} diff --git a/virtual-patient-web/src/main/java/com/supervision/websocket/handler/AskWebSocketHandler.java b/virtual-patient-web/src/main/java/com/supervision/websocket/handler/AskWebSocketHandler.java deleted file mode 100644 index e906db3e..00000000 --- a/virtual-patient-web/src/main/java/com/supervision/websocket/handler/AskWebSocketHandler.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.supervision.websocket.handler; - -import cn.hutool.json.JSONUtil; -import com.supervision.service.AskService; -import com.supervision.util.SpringBeanUtil; -import com.supervision.util.UserUtil; -import com.supervision.websocket.cache.WebSocketUserCache; -import com.supervision.websocket.dto.SocketMessageDTO; -import lombok.extern.slf4j.Slf4j; -import org.springframework.lang.NonNullApi; -import org.springframework.web.socket.CloseStatus; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; -import org.springframework.web.socket.handler.TextWebSocketHandler; - -import java.io.IOException; - -@Slf4j -public class AskWebSocketHandler extends TextWebSocketHandler { - - @Override - public void afterConnectionEstablished(WebSocketSession session) throws Exception { - // 获取本次 - String id = session.getId(); - // 缓存sessionId - WebSocketUserCache.login(id, session); - // 返回sessionId到前端 - SocketMessageDTO socketMessageDTO = new SocketMessageDTO(); - socketMessageDTO.setSocketId(id); - session.sendMessage(new TextMessage(JSONUtil.toJsonStr(socketMessageDTO))); - } - - @Override - protected void handleTextMessage(WebSocketSession session, TextMessage message) throws IOException { - // 处理接收到的消息 - log.info("收到消息:{}", message.toString()); - try { - // 这里反序列化消息,将消息形成固定的格式 - SocketMessageDTO socketMessageDTO = JSONUtil.toBean(message.getPayload(), SocketMessageDTO.class); - AskService askService = SpringBeanUtil.getBean(AskService.class); - askService.handlerMessageBySocket(socketMessageDTO); - } catch (Exception e) { - log.error("对话出现异常", e); - SocketMessageDTO res = new SocketMessageDTO(); - res.setSocketId(session.getId()); - res.setUserId(UserUtil.getUser().getId()); - res.setTextMessage("出错了"); - res.setType(1); - session.sendMessage(new TextMessage(JSONUtil.toJsonStr(res))); - } - - } - - @Override - public void afterConnectionClosed(WebSocketSession session, CloseStatus status) { - // 连接关闭时的处理逻辑 - String id = session.getId(); - WebSocketUserCache.logout(id); - } -} diff --git a/virtual-patient-web/src/main/resources/application.yml b/virtual-patient-web/src/main/resources/application.yml index 15f554ae..0aabcc72 100644 --- a/virtual-patient-web/src/main/resources/application.yml +++ b/virtual-patient-web/src/main/resources/application.yml @@ -2,7 +2,7 @@ server: port: 8899 servlet: - context-path: / + context-path: /virtual-patient undertow: # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的 max-http-post-size: -1 @@ -62,4 +62,9 @@ paddle-speech: tts: http://192.168.10.137:8090/paddlespeech/tts asr: http://192.168.10.137:8090/paddlespeech/asr rasa: - url: 192.168.10.137:5005/webhooks/rest/webhook \ No newline at end of file + url: http://192.168.10.137:8890/rasa/talkRasa +human: + base-url: https://digital-human.jd.com + room-id: /getRoomId + text-driven: /text_driven + talk-status: /talkStatus \ No newline at end of file From 2425743189d41a3093df7470eacbe5754bf54196 Mon Sep 17 00:00:00 2001 From: liu Date: Wed, 1 Nov 2023 17:00:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=9B=86=E6=88=90=E4=BA=AC=E4=B8=9C?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E4=BA=BA=E5=AF=B9=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rasa.zip | Bin 10024 -> 0 bytes rasa/domain.yml | 163 --------- rasa/nlu.yml | 864 ------------------------------------------------ rasa/rules.yml | 156 --------- 4 files changed, 1183 deletions(-) delete mode 100644 rasa.zip delete mode 100644 rasa/domain.yml delete mode 100644 rasa/nlu.yml delete mode 100644 rasa/rules.yml diff --git a/rasa.zip b/rasa.zip deleted file mode 100644 index bc0142630096483e59e99c5385af872842d9e33f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10024 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 diff --git a/rasa/domain.yml b/rasa/domain.yml deleted file mode 100644 index edb0369b..00000000 --- a/rasa/domain.yml +++ /dev/null @@ -1,163 +0,0 @@ -version: "3.1" - -intents: - - ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698 - - ask_wen_chu_xian_jian_ge_1717735465047568386 - - tool_blood_pressure - - tool_heart_rate - - ask_wen_fa_zuo_pin_lv_1717735465211146241 - - tool_thermometer - - ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 - - ask_wen_fu_yao_shi_1717735465630576641 - - ask_wen_chou_yan_shi_1717735465680908289 - - ask_wen_ri_chang_bian_hua_1717735465387307010 - - ask_wen_bing_shi_1717735465420861442 - - ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345 - - ask_wen_zheng_zhuang_miao_shu_1717735465076928513 - - ancillary_eye_ct - - ancillary_jia_zhuang_xian_chao_sheng - - ask_wen_jia_zu_shi_1717735465328586753 - - ask_wen_chu_xian_duo_jiu_1717735464976265217 - - ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 - - ask_wen_fu_yao_shi_1717735465735434241 - - ancillary_xi_dian_lv - - ask_wen_guo_min_shi_1717735465710268417 - - tool_weight - - ancillary_blood_h-z - - ancillary_xin_dian_tu - - ask_wen_jiu_zhen_shi_1717735465299226626 - - ask_wen_qi_ta_zheng_zhuang_1717735465173397505 - - ask_wen_bu_shu_fu_1717735464913350658 - - ask_wen_lei_si_qing_kuang_1717735465240506370 - - ask_wen_ti_li_1717735465605410818 - - tool_height - - ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 - - ask_wen_fu_xie_1717735465580244993 - - ask_wen_zi_wo_gan_jue_1717735465504747522 - - ask_wen_shou_shang_shi_1717735465450221569 - - ancillary_blood_a-g - - ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 - - ask_wen_diao_tou_fa_1717735465555079170 - - ask_wen_yin_jiu_shi_1717735465655742466 - -responses: - utter_ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698: - - text: "没有" - utter_ask_wen_chu_xian_jian_ge_1717735465047568386: - - text: "基本上天天出现。" - utter_tool_blood_pressure: - - text: "---tool---2" - utter_tool_heart_rate: - - text: "---tool---9" - utter_ask_wen_fa_zuo_pin_lv_1717735465211146241: - - text: "反复发作,基本上天天出现," - utter_tool_thermometer: - - text: "---tool---6" - utter_ask_wen_dui_ri_chang_ying_xiang_1717735465357946881: - - text: "影响到我的工作和生活了。" - utter_ask_wen_fu_yao_shi_1717735465630576641: - - text: "没有" - utter_ask_wen_chou_yan_shi_1717735465680908289: - - text: "没有" - utter_ask_wen_ri_chang_bian_hua_1717735465387307010: - - text: "没有注意到。" - utter_ask_wen_bing_shi_1717735465420861442: - - text: "没有" - utter_ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345: - - text: "没有" - utter_ask_wen_zheng_zhuang_miao_shu_1717735465076928513: - - text: "感觉心跳特别快,喘不上气,活动后更严重。" - utter_ancillary_eye_ct: - - text: "---ancillary---10" - utter_ancillary_jia_zhuang_xian_chao_sheng: - - text: "---ancillary---9" - utter_ask_wen_jia_zu_shi_1717735465328586753: - - text: "没有" - utter_ask_wen_chu_xian_duo_jiu_1717735464976265217: - - text: "最近半年吧" - utter_ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954: - - text: "活动后会加重,双腿还会没劲。" - utter_ask_wen_fu_yao_shi_1717735465735434241: - - text: "之前身体很好,没吃过什么药。" - utter_ancillary_xi_dian_lv: - - text: "---ancillary---4" - utter_ask_wen_guo_min_shi_1717735465710268417: - - text: "没有" - utter_tool_weight: - - text: "---tool---8" - utter_ancillary_blood_h-z: - - text: "---ancillary---1" - utter_ancillary_xin_dian_tu: - - text: "---ancillary---2" - utter_ask_wen_jiu_zhen_shi_1717735465299226626: - - text: "没有" - utter_ask_wen_qi_ta_zheng_zhuang_1717735465173397505: - - text: "觉得手抖、怕热,容易出汗,胃口很好,吃很多还总觉得饿,紧张,特别容易发脾气,还拉肚子,瘦了一些" - utter_ask_wen_bu_shu_fu_1717735464913350658: - - text: "我最近感觉心跳特别快,喘不上气。" - utter_ask_wen_lei_si_qing_kuang_1717735465240506370: - - text: "之前没有。" - utter_ask_wen_ti_li_1717735465605410818: - - text: "体力好像比之前差了一些,最近这些天我经常喘不过气来,并且活动后感觉双腿乏力,感觉到非常虚弱。" - utter_tool_height: - - text: "---tool---7" - utter_ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497: - - text: "夏天很怕热,晚上也会睡不着。" - utter_ask_wen_fu_xie_1717735465580244993: - - text: "是的,我每天大约3次稀便。" - utter_ask_wen_zi_wo_gan_jue_1717735465504747522: - - text: "我不知道" - utter_ask_wen_shou_shang_shi_1717735465450221569: - - text: "没有" - utter_ancillary_blood_a-g: - - text: "---ancillary---3" - utter_ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770: - - text: "比较严重。" - utter_ask_wen_diao_tou_fa_1717735465555079170: - - text: "似乎是比之前掉的多了。" - utter_ask_wen_yin_jiu_shi_1717735465655742466: - - text: "没有" - -actions: - - utter_ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698 - - utter_ask_wen_chu_xian_jian_ge_1717735465047568386 - - utter_tool_blood_pressure - - utter_tool_heart_rate - - utter_ask_wen_fa_zuo_pin_lv_1717735465211146241 - - utter_tool_thermometer - - utter_ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 - - utter_ask_wen_fu_yao_shi_1717735465630576641 - - utter_ask_wen_chou_yan_shi_1717735465680908289 - - utter_ask_wen_ri_chang_bian_hua_1717735465387307010 - - utter_ask_wen_bing_shi_1717735465420861442 - - utter_ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345 - - utter_ask_wen_zheng_zhuang_miao_shu_1717735465076928513 - - utter_ancillary_eye_ct - - utter_ancillary_jia_zhuang_xian_chao_sheng - - utter_ask_wen_jia_zu_shi_1717735465328586753 - - utter_ask_wen_chu_xian_duo_jiu_1717735464976265217 - - utter_ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 - - utter_ask_wen_fu_yao_shi_1717735465735434241 - - utter_ancillary_xi_dian_lv - - utter_ask_wen_guo_min_shi_1717735465710268417 - - utter_tool_weight - - utter_ancillary_blood_h-z - - utter_ancillary_xin_dian_tu - - utter_ask_wen_jiu_zhen_shi_1717735465299226626 - - utter_ask_wen_qi_ta_zheng_zhuang_1717735465173397505 - - utter_ask_wen_bu_shu_fu_1717735464913350658 - - utter_ask_wen_lei_si_qing_kuang_1717735465240506370 - - utter_ask_wen_ti_li_1717735465605410818 - - utter_tool_height - - utter_ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 - - utter_ask_wen_fu_xie_1717735465580244993 - - utter_ask_wen_zi_wo_gan_jue_1717735465504747522 - - utter_ask_wen_shou_shang_shi_1717735465450221569 - - utter_ancillary_blood_a-g - - utter_ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 - - utter_ask_wen_diao_tou_fa_1717735465555079170 - - utter_ask_wen_yin_jiu_shi_1717735465655742466 - -session_config: - session_expiration_time: 60 - carry_over_slots_to_new_session: true diff --git a/rasa/nlu.yml b/rasa/nlu.yml deleted file mode 100644 index ef22342f..00000000 --- a/rasa/nlu.yml +++ /dev/null @@ -1,864 +0,0 @@ -version: "3.1" - -nlu: - - intent: ask_wen_bu_shu_fu_1717735464913350658 - examples: | - - 今天您有什么不舒服?哪里不舒服? - - 今天您感到不适吗? - - 您是否有不舒服的感觉? - - 您今天身体感觉怎么样? - - 今天您是否觉得不对劲? - - 您今天感到不自在吗? - - 您是否体验到身体上的不适? - - 您今天是否感到不适之情? - - 您有没有身体不适的情况? - - 您今天是否有不适感? - - 您今天是否身体不适? - - 您今天是否有不舒服的感觉? - - 今天您有没有身体不适的症状? - - 您今天是否体验到不适之处? - - 您今天是否感到不适或不舒服? - - 今天您是否体验到身体的不适? - - 您今天是否有身体上的不适感? - - 您是否在今天感受到身体不适? - - 您今天是否体验到身体不适的情况? - - 您今天是否感到不自在或不舒适? - - 您今天是否感到身体的不 - - intent: ask_wen_chu_xian_duo_jiu_1717735464976265217 - examples: | - - 您第一次发现这个问题是在什么时候?它是从什么时候开始的? - - 当您首次察觉到这一问题是在什么日期? - - 您是何时开始意识到这个问题的存在? - - 您是在什么时间点首次察觉到这个问题? - - 您是何时首次觉察到这个问题的存在? - - 这个问题是在什么日期首次引起您的关注? - - 您是在什么时间首次察觉到这个问题的存在? - - 您是何时开始感知到这个问题的存在? - - 这个问题是在什么日期首次显现在您的视野中? - - 您是在什么时间点开始注意到这个问题? - - 这个问题何时首次引起您的注意? - - 您是在什么日期首次注意到这个问题? - - 这个问题是在什么时间点开始变得明显? - - 您是何时首次觉察到这个问题? - - 您是在什么日期开始感知到这个问题的存在? - - 这个问题何时首次显现在您的视野中? - - 您是在什么时间点首次发觉这个问题? - - 这个问题是在什么日期首次引起您的注意? - - 您是何时开始察觉到这个问题的存在? - - 您是在什么时间点首次注意到这个问题? - - 这个问题是在什么日期首次被您察 - - intent: ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 - examples: | - - 您有没有注意过什么情况下症状会减轻或加重? - - 您是否留意到在特定情况下症状有所缓解或加重? - - 请问您是否观察到在某些情况下症状减轻或恶化? - - 您是否留心到症状在何种情况下会有所好转或恶化? - - 请问您是否曾留意到症状在某些情况下会减轻或加重? - - 您是否曾经观察到在某些情况下症状有所缓解或加剧? - - 请问您是否留意到在什么情况下症状减轻或恶化? - - 您是否留心到有没有情况会影响症状的轻重? - - 请问您是否观察到在某些特定情况下症状改善或加剧? - - 您是否留意到在何种情况下症状变得更轻或更重? - - 请问您是否曾经观察到在某些情况下症状变得更好或更糟? - - 您是否曾留意到在某些情况下症状会有所减轻或加重? - - 请问您是否留意到在特定情况下症状有所改善或恶化? - - 您是否留心到症状在何种情况下会有所好转或变得更糟? - - 请问您是否观察到在某些情境下症状有所减轻或恶化? - - 您是否留意到有没有特定情况可能会影响症状的严重程度? - - 请问您是否观察到在某些情况下症状减轻或加剧? - - 您是否留心到在什么情况下症状有所改善或加重? - - 请问您是否曾留意到在某些情况下症状减轻或变得更严重? - - 您是否留意到在何种情况下症状会减轻或加重? - - 请问您是否观察到在某些特定情况下症状有所改善或惡化? - - intent: ask_wen_chu_xian_jian_ge_1717735465047568386 - examples: | - - 这些症状多久出现一次? - - 多长时间会出现这些症状一次? - - 请问这些症状以何种频率出现? - - 这些症状每隔多久会出现一次? - - 这些症状出现的时间间隔是多长? - - 请问这些症状的发作频率如何? - - 这些症状每隔多久会再次显现? - - 这些症状出现的周期是多久? - - 请问这些症状多长时间出现一次? - - 这些症状每隔多长时间会再次发生? - - 这些症状的复发间隔是多久? - - 请问这些症状的出现频率如何? - - 这些症状每隔多长时间会再次出现? - - 这些症状的发作频度是多少? - - 请问这些症状多长时间出现一次? - - 这些症状的复发时间间隔是多久? - - 这些症状每隔多久会再次表现出来? - - 请问这些症状的出现频繁程度如何? - - 这些症状每隔多久会再次出现? - - 这些症状的发作周期是多久? - - 请问这些症状多久才会再次出现? - - intent: ask_wen_zheng_zhuang_miao_shu_1717735465076928513 - examples: | - - 您能描述一下这些症状吗? - - 您可以详细描述一下这些症状吗? - - 能否就这些症状进行一番详尽的描述? - - 请您能够对这些症状进行一次详细的描述吗? - - 您是否能够提供有关这些症状的详细信息? - - 可否对这些症状进行一番详细的叙述? - - 请您详细描述一下这些症状。 - - 能否对这些症状做出详尽的说明? - - 请您对这些症状进行详细的描述。 - - 能否提供有关这些症状的详细信息? - - 请您详细叙述一下这些症状。 - - 能否就这些症状提供更详细的信息? - - 请您详细阐述一下这些症状。 - - 能否对这些症状提供更详尽的描述? - - 请您能够提供这些症状的详细信息吗? - - 能否详细描述一下这些症状? - - 请您详细叙述有关这些症状的情况。 - - 能否对这些症状做出更详尽的说明? - - 请您对这些症状提供详细的描述。 - - 能否提供有关这些症状的更多详细信息? - - 请您详细描述一下这些症状的情况。 - - intent: ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 - examples: | - - 这些症状有多严重?很轻微还是比较严重? - - 这些症状的严重程度是多少?是轻微的还是相当严重的? - - 请问这些症状有多严重?它们是轻微的还是相当严重的? - - 这些症状的强烈程度如何?它们是轻微的还是相当严重的? - - 这些症状的程度是不是很重?还是相对较轻? - - 请问这些症状有多严重?它们是很轻微的还是相当严重的? - - 这些症状的强度是怎样的?是轻微的还是相当严重的? - - 这些症状的严重程度是轻微的还是相当显著的? - - 请问这些症状有多重?是轻微的还是比较严重的? - - 这些症状的严重程度是否较高?还是相对较轻? - - 这些症状的严重程度是否很明显?还是相对较轻微? - - 请问这些症状有多严重?它们是轻微的还是相当严重的? - - 这些症状的程度是否很大?还是相对较小? - - 这些症状的严重性如何?是轻微的还是相当严重的? - - 这些症状的强度是多少?是轻微的还是相当严重的? - - 请问这些症状有多严重?它们是轻微的还是相当严重的? - - 这些症状的严重程度是不是很高?还是相对较低? - - 这些症状的程度是多严重?是轻微的还是相当严重的? - - 请问这些症状有多重?它们是轻微的还是相当严重的? - - 这些症状的严重程度是否很严重?还是相对较轻? - - 这些症状的严重性如何?是很轻微的还是相当严重的? - - intent: ask_wen_qi_ta_zheng_zhuang_1717735465173397505 - examples: | - - 当您出现这些症状时是否还伴有其他异常? - - 您在出现这些症状的同时是否还有其他异常情况? - - 当您经历这些症状时,是否还伴随其他不正常情况? - - 请问,当出现这些症状时,是否还有其他不寻常的情况? - - 当您出现这些症状时,是否还出现其他不正常的情况? - - 您是否同时经历其他异常情况,当出现这些症状时? - - 当您有这些症状的时候,是否还伴随其他异常? - - 请问,当您出现这些症状时,是否还有其他异常情况? - - 是否有其他不正常情况伴随着这些症状的出现? - - 当这些症状出现时,是否还伴随其他异常情况? - - 请问,当您出现这些症状时,是否还有其他不寻常的情况? - - 您是否在出现这些症状的同时还经历其他异常情况? - - 当您有这些症状的时候,是否还伴随其他不正常的情况? - - 是否有其他异常情况同时发生,当这些症状出现时? - - 当您经历这些症状时,是否还伴随其他不正常情况? - - 请问,当您出现这些症状时,是否还有其他异常情况? - - 您是否在出现这些症状的同时还有其他不正常情况? - - 当这些症状出现时,是否还伴随其他异常情况? - - 是否有其他不正常情况伴随着这些症状的出现? - - 您是否同时经历其他异常情况,当出现这些症状时? - - 请问,当您出现这些症状时,是否还有其他不寻常的情况? - - intent: ask_wen_fa_zuo_pin_lv_1717735465211146241 - examples: | - - 这些症状是反复发作还是只出现了一次?有多频繁? - - 这些症状是周期性出现的,还是只发生过一次? - - 请问这些症状是不断重复出现的,还是只出现了一次? - - 这些症状是有规律地再次发生,还是只出现了一次? - - 这些症状是经常性出现的,还是只出现了一次? - - 请问这些症状是否反复发作,还是只出现了一次? - - 这些症状是定期再次发生的,还是只出现了一次? - - 请问这些症状是否多次重复发生,还是只发生了一次? - - 这些症状是以某种频率反复发生的,还是只出现了一次? - - 请问这些症状是否定期出现,还是只出现了一次? - - 这些症状是以一定的频率再次发生的,还是只出现了一次? - - 请问这些症状是否频繁出现,还是只发生了一次? - - 这些症状是否有规律地反复出现,还是只出现了一次? - - 请问这些症状是否经常性出现,还是只出现了一次? - - 这些症状是定期反复发生的,还是只出现了一次? - - 请问这些症状是否多次发作,还是只发生了一次? - - 这些症状是否以某种频率再次发生,还是只出现了一次? - - 请问这些症状是否有规律地出现,还是只出现了一次? - - 这些症状是以一定的频率再次发生的,还是只出现了一次? - - 请问这些症状是否频繁出现,还是只发生了一次? - - 这些症状是否以一种周期性的方式再次出现,还是只出现了一次? - - intent: ask_wen_lei_si_qing_kuang_1717735465240506370 - examples: | - - 您以前有过类似情况吗? - - 在过去,您是否曾经经历过类似的情况? - - 您以前是否曾经遇到过相似的情况? - - 在过去,您是否曾经有过相似的经历? - - 您以前是否曾经经历过相似的情况? - - 在过去,您是否曾经有过相似的经历? - - 您以前是否曾经遇到过类似的情况? - - 在以前的经历中,您是否曾经有过相似的情况? - - 您以前是否曾经遇到过与此相似的情况? - - 在过去,您是否曾经经历过与此相似的情况? - - 您以前是否曾经遇到过与此相似的情况? - - 在过去,您是否曾经有过与此相似的经历? - - 您以前是否曾经经历过与此相似的情况? - - 在过去,您是否曾经遇到过类似的情况? - - 您以前是否曾经有过类似的经历? - - 在以前的经历中,您是否曾经遇到过相似的情况? - - 您以前是否曾经有过与此类似的情况? - - 在过去,您是否曾经经历过与此类似的情况? - - 您以前是否曾经遇到过与此类似的情况? - - 在以前的经历中,您是否曾经有过类似的情况? - - 您以前是否曾经有过类似的经历? - - intent: ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 - examples: | - - 这些症状会随着时间、气候或季节等的不同而改变吗? - - 这些症状是否会受时间、气候或季节等因素的影响而变化? - - 请问这些症状是否会随着时间、气候或季节等的变化而改变? - - 这些症状是否在不同的时间、气候或季节下会有所不同? - - 请问这些症状是否受时间、气候或季节等因素的变化而改变? - - 这些症状是否会在不同的时间、气候或季节下表现出不同的特点? - - 请问这些症状是否受时间、气候或季节等因素的差异而改变? - - 这些症状是否会因时间、气候或季节等的变化而有所不同? - - 请问这些症状是否在不同的时间、气候或季节下会发生变化? - - 这些症状是否会根据时间、气候或季节等因素的不同而有所变动? - - 请问这些症状是否受时间、气候或季节等变化的影响而改变? - - 这些症状是否会在不同的时间、气候或季节下表现出变化? - - 请问这些症状是否受时间、气候或季节等变化的差异而改变? - - 这些症状是否会因时间、气候或季节等的不同而发生变化? - - 请问这些症状是否在不同的时间、气候或季节下会有所不同? - - 这些症状是否会随着时间、气候或季节等因素的不同而有所改变? - - 请问这些症状是否受时间、气候或季节等因素的变动而改变? - - 这些症状是否会在不同的时间、气候或季节下有所改变? - - 请问这些症状是否受时间、气候或季节等因素的差异而改变? - - 这些症状是否会因时间、气候或季节等的变化而发生改变? - - 请问这些症状是否在不同的时间、气候或季节下会表现出差异? - - intent: ask_wen_jiu_zhen_shi_1717735465299226626 - examples: | - - 您以前有没有因为这些症状看过其他的医生? - - 您之前是否因这些症状曾就诊于其他医生? - - 以前,您是否因这些症状而咨询过其他医生? - - 您之前有没有因这些症状而就医求诊? - - 以前,您是否曾经因这些症状而看过其他医生? - - 您之前是否因这些症状而咨询了其他医生? - - 以前,您是否曾经因这些症状而就医? - - 您之前有没有因为这些症状而寻求其他医生的帮助? - - 以前,您是否因这些症状而咨询过其他专科医生? - - 您之前是否因这些症状而就诊于其他医疗专家? - - 以前,您是否曾经因这些症状而寻求其他医生的意见? - - 您之前有没有因这些症状而寻求其他医疗专家的帮助? - - 以前,您是否曾经因这些症状而咨询了其他专科医生? - - 您之前是否因这些症状而就医求助? - - 以前,您是否曾经因这些症状而就诊于其他专科医生? - - 您之前有没有因为这些症状而寻求了其他医疗专家的意见? - - 以前,您是否因这些症状而咨询了其他医疗专家? - - 您之前是否因这些症状而就医看诊? - - 以前,您是否曾经因这些症状而咨询其他专业医生? - - 您之前有没有因这些症状而咨询其他医疗专家? - - 以前,您是否曾经因这些症状而就医寻求了其他医生的帮助? - - intent: ask_wen_jia_zu_shi_1717735465328586753 - examples: | - - 您的家人或朋友出现过类似的情况吗? - - 您的家人或朋友是否经历过相似的情况? - - 有没有人您认识的人曾经遇到过类似的情形? - - 您的亲属或朋友中是否有人经历过相同的情况? - - 有没有您身边的人曾经遇到过相似的情况? - - 您的亲戚或朋友中是否有人有过类似的经验? - - 有没有您周围的人曾经经历过相似的情况? - - 您的亲朋好友中是否有人曾经遇到过相同的状况? - - 有没有您认识的人曾经有过类似的经验? - - 您的家庭成员或朋友中是否有人经历过相似的情况? - - 有没有人您认识的人曾经遇到过相类似的情况? - - 您的朋友或家人中是否有人有过类似的经验? - - 有没有您身边的人曾经有过相似的情况? - - 您的朋友或亲戚中是否有人曾经遇到过相同的情况? - - 有没有您周围的人曾经遇到过相似的情形? - - 您的朋友或家人中是否有人曾经有过类似的经验? - - 有没有人您认识的人曾经经历过相似的情况? - - 您的亲戚或朋友中是否有人有过类似的情况? - - 有没有您身边的人曾经遇到过相同的状况? - - 您的亲朋好友中是否有人曾经有过类似的经验? - - 有没有您认识的人曾经有过相似的情形? - - intent: ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 - examples: | - - 这些症状对您的日常生活有什么负面的影响吗? - - 这些症状对您的日常生活有造成什么不便吗? - - 这些症状是否对您的日常生活产生了不利影响? - - 您是否因这些症状在日常生活中遇到了问题? - - 这些症状是否对您的日常生活带来了负面影响? - - 这些症状是否对您的日常生活造成了困扰? - - 您是否因这些症状在日常生活中感到不适? - - 这些症状是否对您的日常生活带来了麻烦? - - 您是否因这些症状在日常生活中受到了限制? - - 这些症状是否对您的日常生活产生了负面的效果? - - 这些症状是否对您的日常生活造成了固定的问题? - - 您是否因这些症状在日常生活中遇到了挑战? - - 这些症状是否对您的日常生活有所损害? - - 这些症状是否对您的日常生活产生了不利的结果? - - 您是否因这些症状在日常生活中遇到了不便? - - 这些症状是否对您的日常生活带来了负面的结果? - - 这些症状是否对您的日常生活产生了障碍? - - 您是否因这些症状在日常生活中受到了制约? - - 这些症状是否对您的日常生活带来了不适? - - 这些症状是否对您的日常生活有所影响? - - 您是否因这些症状在日常生活中感到受限? - - intent: ask_wen_ri_chang_bian_hua_1717735465387307010 - examples: | - - 您是否注意到日常生活中还有什么其他的变化? - - 您是否留意到日常生活中还有其他的变化? - - 您是否察觉到日常生活中还有其他的变化? - - 您是否发现日常生活中还有其他的变化? - - 您是否意识到日常生活中还有其他的变化? - - 您是否觉察到日常生活中还有其他的变化? - - 您是否注意到了日常生活中还有其他的变化? - - 您是否发觉到了日常生活中还有其他的变化? - - 您是否察觉到了日常生活中还有其他的变化? - - 您是否意识到了日常生活中还有其他的变化? - - 您是否觉察到了日常生活中还有其他的变化? - - 您是否留意到了日常生活中还有其他的变化? - - 您是否发现了日常生活中还有其他的变化? - - 您是否察觉到日常生活中还有其他的变化的存在? - - 您是否意识到日常生活中还有其他的变化的存在? - - 您是否觉察到日常生活中还有其他的变化的存在? - - 您是否注意到了日常生活中还有其他的变化的存在? - - 您是否发觉到了日常生活中还有其他的变化的存在? - - 您是否察觉到了日常生活中还有其他的变化的存在? - - 您是否意识到了日常生活中还有其他的变化的存在? - - 您是否觉察到了日常生活中还有其他的变化的存在? - - intent: ask_wen_bing_shi_1717735465420861442 - examples: | - - 您最近生过病吗?什么时候?是什么病? - - 您最近是否患过疾病?是什么时候?是什么疾病? - - 您最近是否生病了?是在什么时候?是什么病? - - 您最近是否曾经生病?是在什么时候?是什么疾病? - - 您最近是否有过疾病?是在什么时候?是什么病症? - - 您最近是否有生病的经历?是在什么时候?是什么疾病? - - 您最近是否有患过病?是在什么时候?是什么疾病? - - 您最近是否有过病症?是在什么时候?是什么疾病? - - 您最近是否有生过病?是在什么时候?是什么疾病? - - 您最近是否有患病?是在什么时候?是什么疾病? - - 您最近是否有生病?是在什么时候?是什么疾病? - - 您最近是否有生过病?是在什么时候?是什么疾病? - - 您最近是否有患过疾病?是在什么时候?是什么病? - - 您最近是否有患病状况?是在什么时候?是什么疾病? - - 您最近是否有生过病症?是在什么时候?是什么疾病? - - 您最近是否有患过病症?是在什么时候?是什么疾病? - - 您最近是否有生过疾病?是在什么时候?是什么病? - - 您最近是否有患过疾病?是在什么时候?是什么病? - - 您最近是否有生过病?是在什么时候?是什么疾病? - - 您最近是否有患病?是在什么时候?是什么病? - - 您最近是否有生病?是在什么时候?是什么病? - - intent: ask_wen_shou_shang_shi_1717735465450221569 - examples: | - - 您最近受过伤吗?什么时候?受过什么伤? - - 您最近是否受伤了?是在什么时候?受伤的部位是什么? - - 您最近是否有受伤的经历?是在什么时候?受伤的类型是什么? - - 您最近是否受过伤?是在什么时候?受伤的部位是什么? - - 您最近是否有受过伤害?是在什么时候?受伤的类型是什么? - - 您最近是否有过受伤的情况?是在什么时候?受伤的部位是什么? - - 您最近是否有患过伤病?是在什么时候?受伤的类型是什么? - - 您最近是否有受过伤?是在什么时候?受伤的部位是什么? - - 您最近是否有受过伤害?是在什么时候?受伤的类型是什么? - - 您最近是否有过受伤的经历?是在什么时候?受伤的部位是什么? - - 您最近是否有患过伤病?是在什么时候?受伤的类型是什么? - - 您最近是否有受伤的情况?是在什么时候?受伤的部位是什么? - - 您最近是否有受过伤害?是在什么时候?受伤的类型是什么? - - 您最近是否有过受伤?是在什么时候?受伤的部位是什么? - - 您最近是否有受过伤害?是在什么时候?受伤的类型是什么? - - 您最近是否有受伤的经历?是在什么时候?受伤的部位是什么? - - 您最近是否有患过伤病?是在什么时候?受伤的类型是什么? - - 您最近是否有受过伤?是在什么时候?受伤的部位是什么? - - 您最近是否有受过伤害?是在什么时候?受伤的类型是什么? - - 您最近是否有过受伤的情况?是在什么时候?受伤的部位是什么? - - 您最近是否有患过伤病?是在什么时候?受伤的类型是什么? - - intent: ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698 - examples: | - - 最近有没有发生什么重大的生活事件导致精神压力增加? - - 最近是否发生了一些重大的生活事件,导致您的精神压力增加了? - - 最近是否有什么重大的生活事件发生,导致您的精神压力增加了? - - 您最近是否经历了一些重大的生活事件,导致您的精神压力增加了? - - 最近是否发生了一些重要的生活事件,使您的精神压力增加了? - - 您最近是否遇到了一些重要的生活事件,导致您的精神压力增加了? - - 最近是否有什么重要的生活事件发生,使您感到精神压力增加了? - - 您最近是否经历了一些重要的生活事件,导致您感到精神压力增加了? - - 最近是否发生了一些重大的生活事件,导致您的心理压力增加了? - - 您最近是否遇到了一些重大的生活事件,导致您的心理压力增加了? - - 最近是否有什么重大的生活事件发生,使您感到心理压力增加了? - - 您最近是否经历了一些重大的生活事件,导致您感到心理压力增加了? - - 最近是否发生了一些重要的生活事件,使您的心理压力增加了? - - 您最近是否遇到了一些重要的生活事件,导致您的心理压力增加了? - - 最近是否有什么重要的生活事件发生,使您感到心理压力增加了? - - 您最近是否经历了一些重要的生活事件,导致您感到心理压力增加了? - - 最近是否发生了一些重大的生活事件,导致您的情绪压力增加了? - - 您最近是否遇到了一些重大的生活事件,导致您的情绪压力增加了? - - 最近是否有什么重大的生活事件发生,使您感到情绪压力增加了? - - 您最近是否经历了一些重大的生活事件,导致您感到情绪压力增加了? - - 最近是否发生了一些重要的生活事件,使您的情绪压力增加了? - - intent: ask_wen_zi_wo_gan_jue_1717735465504747522 - examples: | - - 您认为可能是什么问题? - - 您觉得可能出现了什么问题? - - 您认为可能存在着什么困难? - - 您觉得可能会有哪些难题? - - 您认为可能存在什么障碍? - - 您觉得可能会有什么挑战? - - 您认为可能出现了什么疑问? - - 您觉得可能存在着什么情况? - - 您认为可能会有哪些不确定因素? - - 您觉得可能出现了什么疑惑? - - 您认为可能存在着什么疑虑? - - 您觉得可能会有什么未知因素? - - 您认为可能出现了什么困扰? - - 您觉得可能存在着什么挫折? - - 您认为可能会有哪些瓶颈? - - 您觉得可能出现了什么纷扰? - - 您认为可能存在着什么挣扎? - - 您觉得可能会有哪些未知情况? - - 您认为可能出现了什么疑问? - - 您觉得可能存在着什么挑战? - - 您认为可能会有哪些不明确因素? - - intent: ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345 - examples: | - - 在上述症状发生前你在做什么?吃东西?活动?还是别的? - - 在出现上述症状之前,您在做什么?是在吃东西吗?还是在进行活动?或者其他? - - 在上述症状出现之前,您在做什么?是在进食吗?还是在进行活动?或者其他? - - 在出现上述症状之前,您在做什么?是在吃东西吗?还是在进行运动?或者其他? - - 在上述症状出现之前,您在做什么?是在进食吗?还是在进行运动?或者其他? - - 在出现上述症状之前,您在做什么?是在用餐吗?还是在进行活动?或者其他? - - 在上述症状出现之前,您在做什么?是在用餐吗?还是在进行活动?或者其他? - - 在出现上述症状之前,您在做什么?是在进食吗?还是在进行身体活动?或者其他? - - 在上述症状出现之前,您在做什么?是在进食吗?还是在进行身体活动?或者其他? - - 在出现上述症状之前,您在做什么?是在吃东西吗?还是在进行运动?或者其他? - - 在上述症状出现之前,您在做什么?是在进食吗?还是在进行运动?或者其他? - - 在出现上述症状之前,您在做什么?是在用餐吗?还是在进行运动?或者其他? - - 在上述症状出现之前,您在做什么?是在用餐吗?还是在进行运动?或者其他? - - 在出现上述症状之前,您在做什么?是在进食吗?还是在进行身体活动?或者其他? - - 在上述症状出现之前,您在做什么?是在进食吗?还是在进行身体活动?或者其他? - - 在出现上述症状之前,您在做什么?是在用餐吗?还是在进行身体活动?或者其他? - - 在上述症状出现之前,您在做什么?是在用餐吗?还是在进行身体活动?或者其他? - - 在出现上述症状之前,您在做什么?是在吃东西吗?还是在进行运动?或者其他? - - 在上述症状出现之前,您在做什么?是在进食吗?还是在进行运动?或者其他? - - intent: ask_wen_diao_tou_fa_1717735465555079170 - examples: | - - 有没有掉头发 - - 您是否正在脱发? - - 您是否注意到了头发脱落? - - 您是否发现头发在减少? - - 您的头发有没有减少? - - 您是否有掉发的情况? - - 您是否发现头发在稀疏? - - 您是否察觉到头发变少? - - 您的头发有没有减少的迹象? - - 您是否正在经历脱发问题? - - 您是否注意到头发在减少? - - 您是否有头发脱落的问题? - - 您是否发现头发在减小? - - 您是否有发现自己的头发变少? - - 您的头发是否出现减少的情况? - - 您是否有头发减少的症状? - - 您是否察觉到头发在减少? - - 您的头发是否有减少的迹象? - - 您是否正在经历头发减少? - - 您是否有头发掉落的情况? - - 您是否发现头发在减少? - - intent: ask_wen_fu_xie_1717735465580244993 - examples: | - - 有没有腹泻 - - 您是否有腹泻的情况? - - 您是否出现了腹泻症状? - - 您有没有腹泻的问题? - - 您是否经历了腹泻? - - 您的肚子有没有腹泻? - - 您是否出现了腹泻症状? - - 您是否有腹泻的迹象? - - 您是否正在腹泻? - - 您是否有肚子病了? - - 您是否出现了肚子不适的情况? - - 您的肚子有没有出现腹泻? - - 您是否经历了肚子疼痛和腹泻? - - 您是否有肚子病了? - - 您是否出现了肚子不适的情况? - - 您的肚子有没有腹泻? - - 您是否正在腹泻? - - 您是否有腹泻的迹象? - - 您是否经历了腹泻? - - 您是否出现了腹泻症状? - - 您有没有腹泻的问题? - - intent: ask_wen_ti_li_1717735465605410818 - examples: | - - 体力情况怎么样 - - 你的体力如何? - - 你的身体状况怎么样? - - 你感觉身体好吗? - - 你有没有体力问题? - - 你的健康状态如何? - - 你的体能情况怎样? - - 你感觉体力充沛吗? - - 你的身体感觉怎么样? - - 你是否感到精力充沛? - - 你的体力水平如何? - - 你觉得身体健康吗? - - 你感觉自己有没有足够的体力? - - 你的体能状况如何? - - 你觉得自己有没有足够的精力? - - 你的身体感觉良好吗? - - 你的体力状态如何? - - 你感觉体力是否足够? - - 你的身体情况怎么样? - - 你有没有注意到体力的变化? - - 你的体能是否正常? - - intent: ask_wen_fu_yao_shi_1717735465630576641 - examples: | - - 有没有吃过通便药、感冒药、阿司匹林等药 - - 你有没有尝试过通便药、感冒药、阿司匹林等药物? - - 请问您是否曾经使用过通便药、感冒药、阿司匹林等类型的药品? - - 请问您是否有服用过通便药、感冒药、阿司匹林等药物的经历? - - 您是否有使用过通便药、感冒药、阿司匹林等这些药物的经验? - - 请问您是否尝试过通便药、感冒药、阿司匹林等这些药品? - - 您是否有服用过通便药、感冒药、阿司匹林等此类药物? - - 请问您是否曾尝试过通便药、感冒药、阿司匹林等这些药物? - - 您是否有使用过通便药、感冒药、阿司匹林等此类药品的经验? - - 请问您是否有使用过通便药、感冒药、阿司匹林等药物的记录? - - 您是否曾经尝试过通便药、感冒药、阿司匹林等此类药品? - - 请问您是否有服用过通便药、感冒药、阿司匹林等这些药物的经历? - - 您是否有使用过通便药、感冒药、阿司匹林等药品? - - 请问您是否尝试过通便药、感冒药、阿司匹林等这些药物? - - 您是否有服用过通便药、感冒药、阿司匹林等此类药物? - - 请问您是否曾尝试过通便药、感冒药、阿司匹林等这些药物? - - 您是否有使用过通便药、感冒药、阿司匹林等此类药品的经验? - - 请问您是否有使用过通便药、感冒药、阿司匹林等药物的记录? - - 您是否曾经尝试过通便药、感冒药、阿司匹林等此类药品? - - 请问您是否有服用过通便药、感冒药、阿司匹林等这些药物的经历? - - 您是否有使用过通便药、感冒药、阿司匹林等药品的经验? - - intent: ask_wen_yin_jiu_shi_1717735465655742466 - examples: | - - 有没有喝酒 - - 请问您是否有饮酒的习惯? - - 您是否曾经尝试过饮酒? - - 请问您是否有喝过酒的经历? - - 您是否有饮酒的经验? - - 请问您是否尝试过喝酒? - - 您是否有喝过酒的习惯? - - 请问您是否曾尝试过喝酒? - - 您是否有饮酒的记录? - - 请问您是否有喝过酒的习惯? - - 您是否曾经尝试过喝酒? - - 请问您是否有饮酒的经历? - - 您是否有喝过酒的经验? - - 请问您是否尝试过喝酒这件事? - - 您是否有喝过酒的习惯? - - 请问您是否曾尝试过喝酒? - - 您是否有饮酒的记录? - - 请问您是否有喝过酒的习惯? - - 您是否曾经尝试过喝酒? - - 请问您是否有饮酒的经历? - - 您是否有喝过酒的经验? - - intent: ask_wen_chou_yan_shi_1717735465680908289 - examples: | - - 有没有抽烟 - - 请问您是否有吸烟的习惯? - - 您是否曾经尝试过抽烟? - - 请问您是否有吸过烟的经历? - - 您是否有抽烟的经验? - - 请问您是否尝试过吸烟? - - 您是否有吸烟的习惯? - - 请问您是否曾尝试过吸烟? - - 您是否有抽烟的记录? - - 请问您是否有吸过烟的习惯? - - 您是否曾经尝试过吸烟? - - 请问您是否有抽烟的经历? - - 您是否有抽过烟的经验? - - 请问您是否尝试过抽烟这件事? - - 您是否有吸烟的习惯? - - 请问您是否曾尝试过抽烟? - - 您是否有吸烟的记录? - - 请问您是否有抽过烟的习惯? - - 您是否曾经尝试过吸烟? - - 请问您是否有吸烟的经历? - - 您是否有抽烟的经验? - - intent: ask_wen_guo_min_shi_1717735465710268417 - examples: | - - 有没有过敏 - - 请问您是否有过敏反应? - - 您是否有过过敏的经历? - - 请问您是否对某些物质过敏? - - 您是否曾经出现过过敏症状? - - 请问您是否对任何东西有过敏反应? - - 您是否有过过敏的记录? - - 请问您是否对某种食物或者物质有过敏? - - 您是否曾经遇到过过敏的情况? - - 请问您是否对某种药物有过敏反应? - - 您是否有过过敏的经验? - - 请问您是否有任何过敏症状? - - 您是否曾经出现过过敏的情况? - - 请问您是否对花粉或者尘螨有过敏? - - 您是否有过过敏的历史? - - 请问您是否对某种环境因素过敏? - - 您是否曾经遭遇过过敏反应? - - 请问您是否对特定气候条件有过敏反应? - - 您是否有过过敏的症状? - - 请问您是否对某种动物有过敏? - - 您是否曾经出现过过敏的症状? - - intent: ask_wen_fu_yao_shi_1717735465735434241 - examples: | - - 还吃过什么药 - - 请问您还使用过其他药物吗? - - 您还服用了哪些药物? - - 请问您还有没有使用其他药品? - - 您还尝试过其他药物吗? - - 请问您还有没有尝试其他药物? - - 您还服用了别的药吗? - - 请问您还吃过其他的药物吗? - - 您还使用了其他类型的药品吗? - - 请问您还有没有使用过其他的药物? - - 您还尝试过其他类型的药物吗? - - 请问您还吃过别的药吗? - - 您还使用了其他药品吗? - - 请问您还有没有尝试其他药品? - - 您还服用了其他的药物吗? - - 请问您还有没有使用过别的药物? - - 您还尝试过其他的药品吗? - - 请问您还有没有吃过其他的药? - - 您还使用了其他类型的药吗? - - 请问您还有没有尝试别的药物? - - 您还服用了其他的药品吗? - - intent: tool_blood_pressure - examples: | - - 让我们来测量一下血压。 - - 让我们进行一次血压测量。 - - 让我们来检查一下血压。 - - 让我们进行一次血压检查。 - - 让我们来测试一下血压。 - - 让我们进行一次血压测试。 - - 让我们来观察一下血压。 - - 让我们进行一次血压观察。 - - 让我们来监测一下血压。 - - 让我们进行一次血压监测。 - - 让我们来评估一下血压。 - - 让我们进行一次血压评估。 - - 让我们来测算一下血压。 - - 让我们进行一次血压测算。 - - 让我们来记录一下血压。 - - 让我们进行一次血压记录。 - - 让我们来调查一下血压。 - - 让我们进行一次血压调查。 - - 让我们来测验一下血压。 - - 让我们进行一次血压测验。 - - intent: tool_thermometer - examples: | - - 进行一次体温测量。 - - 测量一下体温。 - - 检测一下体温。 - - 进行一次体温检测。 - - 测测体温。 - - 进行一次体温观察。 - - 观察一下体温。 - - 进行一次体温监测。 - - 监测一下体温。 - - 评估一下体温。 - - 进行一次体温评估。 - - 测测看体温。 - - 进行一次体温测试。 - - 测试一下体温。 - - 记录一下体温。 - - 进行一次体温记录。 - - 检查一下体温。 - - 进行一次体温调查。 - - 调查一下体温。 - - 量一下体温。 - - intent: tool_height - examples: | - - 进行一次身高测量。 - - 测量一下身高。 - - 检测一下身高。 - - 进行一次身高检测。 - - 测测身高。 - - 进行一次身高观察。 - - 观察一下身高。 - - 进行一次身高监测。 - - 监测一下身高。 - - 评估一下身高。 - - 进行一次身高评估。 - - 测测看身高。 - - 进行一次身高测试。 - - 测试一下身高。 - - 记录一下身高。 - - 进行一次身高记录。 - - 检查一下身高。 - - 进行一次身高调查。 - - 调查一下身高。 - - 量一下身高。 - - intent: tool_weight - examples: | - - 进行一次体重测量。 - - 测量一下体重。 - - 检测一下体重。 - - 进行一次体重检测。 - - 称一下体重。 - - 进行一次体重观察。 - - 观察一下体重。 - - 进行一次体重监测。 - - 监测一下体重。 - - 评估一下体重。 - - 进行一次体重评估。 - - 测测看体重。 - - 进行一次体重测试。 - - 测试一下体重。 - - 记录一下体重。 - - 进行一次体重记录。 - - 检查一下体重。 - - 进行一次体重调查。 - - 量一下体重。 - - 获取一下体重数据。 - - intent: tool_heart_rate - examples: | - - 进行一次心率测量。 - - 测量一下心率。 - - 检测一下心率。 - - 进行一次心率检测。 - - 测测心率。 - - 进行一次心率观察。 - - 观察一下心率。 - - 进行一次心率监测。 - - 监测一下心率。 - - 评估一下心率。 - - 进行一次心率评估。 - - 测测看心率。 - - 进行一次心率测试。 - - 测试一下心率。 - - 记录一下心率。 - - 进行一次心率记录。 - - 检查一下心率。 - - 进行一次心率调查。 - - 调查一下心率。 - - 量一下心率。 - - intent: ancillary_blood_h-z - examples: | - - 需要进行一次血液检查。 - - 需要进行血液检验。 - - 需要完成一次血液检查。 - - 需要进行一次血液分析。 - - 需要进行一次血液化验。 - - 需要做一个血液检查。 - - 需要进行一次血液检测。 - - 需要进行血液测试。 - - 需要进行血液筛查。 - - 需要进行一次血液分析检查。 - - 需要做一个血液化验。 - - 需要进行一次全血细胞计数。 - - 需要进行一次血液常规检查。 - - 需要进行一次血液病理学检查。 - - 需要进行一次血清学检查。 - - 需要做一个血液生化指标检查。 - - 需要进行一次凝血功能检查。 - - 需要进行一次血常规检查。 - - 需要进行一次血液糖化血红蛋白检查。 - - 需要进行一次血液电解质检查。 - - intent: ancillary_eye_ct - examples: | - - 需要进行一次眼眶CT检查。 - - 需要进行一次眼眶CT扫描。 - - 需要做一次眼眶CT影像检查。 - - 需要进行一次眼眶计算机断层扫描。 - - 需要进行一次眼眶CT成像检查。 - - 需要进行一次眼眶CT图像检查。 - - 需要进行一次眼眶CT影像扫描。 - - 需要进行一次眼眶CT成像扫描。 - - 需要进行一次眼眶计算机断层影像检查。 - - 需要进行一次眼眶计算机断层图像检查。 - - 需要进行一次眼眶CT切片扫描。 - - 需要进行一次眼眶计算机断层成像检查。 - - 需要进行一次眼眶计算机断层影像扫描。 - - 需要进行一次眼眶CT图像扫描。 - - 需要进行一次眼眶计算机断层影响成像检查。 - - 需要进行一次眼眶CT断层成像扫描。 - - 需要进行一次眼眶计算机断层图像扫描。 - - 需要进行一次眼眶CT扫描检查。 - - 需要进行一次眼眶计算机断层影像图检查。 - - 需要进行一次眼眶计算机断层成像图像扫描。 - - intent: ancillary_xin_dian_tu - examples: | - - 需要进行一次心电图检查。 - - 需要进行心电图测试。 - - 需要做一次心脏电图检查。 - - 需要进行一次心脏电图监测。 - - 需要进行一次心电图记录。 - - 需要进行一次心电图测量。 - - 需要进行心电图扫描。 - - 需要进行一次心脏电图测验。 - - 需要进行一次心律监测。 - - 需要完成一次心电图录制。 - - 需要进行一次心电图示波监测。 - - 需要做一个心电图检查。 - - 需要进行一次心脏电图记录。 - - 需要进行一次心电活动监测。 - - 需要进行一次心脏电图测量。 - - 需要进行心脏电图扫描。 - - 需要进行一次心脏电图图像检查。 - - 需要进行一次心电图示波图监测。 - - 需要进行一次心律失常监测。 - - 需要进行一次心脏电图示波记录。 - - intent: ancillary_blood_a-g - examples: | - - 需要进行一次血液检查。 - - 需要进行血液检验。 - - 需要完成一次血液检查。 - - 需要进行一次血液分析。 - - 需要进行一次血液化验。 - - 需要做一个血液检查。 - - 需要进行一次血液检测。 - - 需要进行血液测试。 - - 需要进行血液筛查。 - - 需要进行一次血液分析检查。 - - 需要做一个血液化验。 - - 需要进行一次全血细胞计数。 - - 需要进行一次血液常规检查。 - - 需要进行一次血液病理学检查。 - - 需要进行一次血清学检查。 - - 需要做一个血液生化指标检查。 - - 需要进行一次凝血功能检查。 - - 需要进行一次血常规检查。 - - 需要进行一次血液糖化血红蛋白检查。 - - 需要进行一次血液电解质检查。 - - intent: ancillary_xi_dian_lv - examples: | - - 需要进行吸碘率检查。 - - 需要进行碘摄取率检查。 - - 需要进行碘吸收率检查。 - - 需要进行碘摄入率检查。 - - 需要完成吸碘率检查。 - - 需要进行碘吸收能力检查。 - - 需要进行碘摄取能力检查。 - - 需要进行甲状腺碘摄取率检查。 - - 需要进行碘吸收效能检查。 - - 需要进行甲状腺碘吸收率检查。 - - 需要进行吸碘率测量。 - - 需要进行碘吸收效率检查。 - - 需要进行甲状腺碘吸附率检查。 - - 需要进行碘吸附能力检查。 - - 需要进行甲状腺碘吸取率检查。 - - 需要进行碘吸取能力检查。 - - 需要进行碘的吸收率检查。 - - 需要进行碘吸引率检查。 - - 需要进行碘摄取能力检查。 - - 需要进行碘的吸附率检查。 - - intent: ancillary_jia_zhuang_xian_chao_sheng - examples: | - - 现在需要进行一次甲状腺超声检查。 - - 现在需要做一次甲状腺超声检查。 - - 现在需要进行甲状腺超声检查。 - - 现在需要进行一次甲状腺超声检查。 - - 现在需要完成一次甲状腺超声检查。 - - 现在需要进行一次甲状腺超声波检查。 - - 现在需要进行甲状腺超声波检查。 - - 现在需要做一次甲状腺超声波检查。 - - 现在需要进行一次甲状腺超声像检查。 - - 现在需要进行甲状腺超声像检查。 - - 现在需要做一次甲状腺超声像检查。 - - 现在需要进行一次甲状腺超声影像检查。 - - 现在需要进行甲状腺超声影像检查。 - - 现在需要做一次甲状腺超声影像检查。 - - 现在需要进行一次甲状腺超声图检查。 - - 现在需要进行甲状腺超声图检查。 - - 现在需要做一次甲状腺超声图检查。 - - 现在需要进行一次甲状腺超声诊断。 - - 现在需要进行甲状腺超声诊断。 - - 现在需要做一次甲状腺超声诊断。 diff --git a/rasa/rules.yml b/rasa/rules.yml deleted file mode 100644 index 340f3203..00000000 --- a/rasa/rules.yml +++ /dev/null @@ -1,156 +0,0 @@ -version: "3.1" - -rules: - - - rule: 问重大生活事件 - steps: - - intent: ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698 - - action: utter_ask_wen_zhong_da_sheng_huo_shi_jian_1717735465479581698 - - rule: 问出现间隔 - steps: - - intent: ask_wen_chu_xian_jian_ge_1717735465047568386 - - action: utter_ask_wen_chu_xian_jian_ge_1717735465047568386 - - rule: 呼出-tool-水银血压计 - steps: - - intent: tool_blood_pressure - - action: utter_tool_blood_pressure - - rule: 呼出-tool-心率 - steps: - - intent: tool_heart_rate - - action: utter_tool_heart_rate - - rule: 问发作频率 - steps: - - intent: ask_wen_fa_zuo_pin_lv_1717735465211146241 - - action: utter_ask_wen_fa_zuo_pin_lv_1717735465211146241 - - rule: 呼出-tool-体温计 - steps: - - intent: tool_thermometer - - action: utter_tool_thermometer - - rule: 问对日常影响 - steps: - - intent: ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 - - action: utter_ask_wen_dui_ri_chang_ying_xiang_1717735465357946881 - - rule: 问服药史 - steps: - - intent: ask_wen_fu_yao_shi_1717735465630576641 - - action: utter_ask_wen_fu_yao_shi_1717735465630576641 - - rule: 问抽烟史 - steps: - - intent: ask_wen_chou_yan_shi_1717735465680908289 - - action: utter_ask_wen_chou_yan_shi_1717735465680908289 - - rule: 问日常变化 - steps: - - intent: ask_wen_ri_chang_bian_hua_1717735465387307010 - - action: utter_ask_wen_ri_chang_bian_hua_1717735465387307010 - - rule: 问病史 - steps: - - intent: ask_wen_bing_shi_1717735465420861442 - - action: utter_ask_wen_bing_shi_1717735465420861442 - - rule: 问发病之前的动作 - steps: - - intent: ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345 - - action: utter_ask_wen_fa_bing_zhi_qian_de_dong_zuo_1717735465529913345 - - rule: 问症状描述 - steps: - - intent: ask_wen_zheng_zhuang_miao_shu_1717735465076928513 - - action: utter_ask_wen_zheng_zhuang_miao_shu_1717735465076928513 - - rule: 呼出-ancillary-眼眶CT - steps: - - intent: ancillary_eye_ct - - action: utter_ancillary_eye_ct - - rule: 呼出-ancillary-甲状腺超声 - steps: - - intent: ancillary_jia_zhuang_xian_chao_sheng - - action: utter_ancillary_jia_zhuang_xian_chao_sheng - - rule: 问家族史 - steps: - - intent: ask_wen_jia_zu_shi_1717735465328586753 - - action: utter_ask_wen_jia_zu_shi_1717735465328586753 - - rule: 问出现多久 - steps: - - intent: ask_wen_chu_xian_duo_jiu_1717735464976265217 - - action: utter_ask_wen_chu_xian_duo_jiu_1717735464976265217 - - rule: 问减轻或加重情况 - steps: - - intent: ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 - - action: utter_ask_wen_jian_qing_huo_jia_zhong_qing_kuang_1717735465014013954 - - rule: 问服药史 - steps: - - intent: ask_wen_fu_yao_shi_1717735465735434241 - - action: utter_ask_wen_fu_yao_shi_1717735465735434241 - - rule: 呼出-ancillary-吸碘率 - steps: - - intent: ancillary_xi_dian_lv - - action: utter_ancillary_xi_dian_lv - - rule: 问过敏史 - steps: - - intent: ask_wen_guo_min_shi_1717735465710268417 - - action: utter_ask_wen_guo_min_shi_1717735465710268417 - - rule: 呼出-tool-体重 - steps: - - intent: tool_weight - - action: utter_tool_weight - - rule: 呼出-ancillary-Blood H-Z - steps: - - intent: ancillary_blood_h-z - - action: utter_ancillary_blood_h-z - - rule: 呼出-ancillary-心电图 - steps: - - intent: ancillary_xin_dian_tu - - action: utter_ancillary_xin_dian_tu - - rule: 问就诊史 - steps: - - intent: ask_wen_jiu_zhen_shi_1717735465299226626 - - action: utter_ask_wen_jiu_zhen_shi_1717735465299226626 - - rule: 问其他症状 - steps: - - intent: ask_wen_qi_ta_zheng_zhuang_1717735465173397505 - - action: utter_ask_wen_qi_ta_zheng_zhuang_1717735465173397505 - - rule: 问不舒服 - steps: - - intent: ask_wen_bu_shu_fu_1717735464913350658 - - action: utter_ask_wen_bu_shu_fu_1717735464913350658 - - rule: 问类似情况 - steps: - - intent: ask_wen_lei_si_qing_kuang_1717735465240506370 - - action: utter_ask_wen_lei_si_qing_kuang_1717735465240506370 - - rule: 问体力 - steps: - - intent: ask_wen_ti_li_1717735465605410818 - - action: utter_ask_wen_ti_li_1717735465605410818 - - rule: 呼出-tool-身高 - steps: - - intent: tool_height - - action: utter_tool_height - - rule: 问症状改变情况 - steps: - - intent: ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 - - action: utter_ask_wen_zheng_zhuang_gai_bian_qing_kuang_1717735465269866497 - - rule: 问腹泻 - steps: - - intent: ask_wen_fu_xie_1717735465580244993 - - action: utter_ask_wen_fu_xie_1717735465580244993 - - rule: 问自我感觉 - steps: - - intent: ask_wen_zi_wo_gan_jue_1717735465504747522 - - action: utter_ask_wen_zi_wo_gan_jue_1717735465504747522 - - rule: 问受伤史 - steps: - - intent: ask_wen_shou_shang_shi_1717735465450221569 - - action: utter_ask_wen_shou_shang_shi_1717735465450221569 - - rule: 呼出-ancillary-Blood A-G - steps: - - intent: ancillary_blood_a-g - - action: utter_ancillary_blood_a-g - - rule: 问症状严重程度 - steps: - - intent: ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 - - action: utter_ask_wen_zheng_zhuang_yan_zhong_cheng_du_1717735465135648770 - - rule: 问掉头发 - steps: - - intent: ask_wen_diao_tou_fa_1717735465555079170 - - action: utter_ask_wen_diao_tou_fa_1717735465555079170 - - rule: 问饮酒史 - steps: - - intent: ask_wen_yin_jiu_shi_1717735465655742466 - - action: utter_ask_wen_yin_jiu_shi_1717735465655742466