处理多轮问答 :param user_input: :return:
(self, user_input)
| 76 | return self.processors[scene_name] |
| 77 | |
| 78 | def process_multi_question(self, user_input): |
| 79 | """ |
| 80 | 处理多轮问答 |
| 81 | :param user_input: |
| 82 | :return: |
| 83 | """ |
| 84 | |
| 85 | # 检查当前输入是否与上一次的意图场景相关 |
| 86 | if self.is_related_to_last_intent(user_input): |
| 87 | pass |
| 88 | else: |
| 89 | # 不相关时,重新识别意图 |
| 90 | self.recognize_intent(user_input) |
| 91 | logging.info('current_purpose: %s', self.current_purpose) |
| 92 | |
| 93 | if self.current_purpose in self.scene_templates: |
| 94 | # 根据场景模板调用相应场景的处理逻辑 |
| 95 | scene_info = self.scene_templates[self.current_purpose] |
| 96 | parameters = scene_info.get("parameters", []) |
| 97 | |
| 98 | self.get_processor_for_scene(self.current_purpose) |
| 99 | # 调用抽象类process方法 |
| 100 | return self.processors[self.current_purpose].process(user_input, None) |
| 101 | return '未命中场景' |
| 102 | |
| 103 | |
| 104 |
no test coverage detected