优化意图识别模块,新增文档相关性判断功能,更新DifyQueryRetrieval类以支持多线程检索,增强数据模型,改进日志记录,调整Excel数据验证逻辑,更新多个提示词模板以提升用户体验。
This commit is contained in:
@@ -49,7 +49,7 @@ classification_info="""【垂直领域分类】:
|
||||
"用哪个软件打开.BDY3文件?",
|
||||
"BDD3是什么"
|
||||
2. 软件锁类:询问软件锁信息、锁注册号查询、许可证查询、锁激活问题等软件锁相关问题
|
||||
3. 安装下载类:安装下载咨询、组件(插件)选择、环境配置等
|
||||
3. 安装下载类:安装下载咨询、组件(插件)选择、环境配置、安装包下载、政策文件(规范文件)下载等
|
||||
4. 问题排查类:软件安装下载失败、报错,系统兼容性问题等
|
||||
|
||||
【其他】:
|
||||
@@ -203,4 +203,165 @@ slot_filling_prompt = """
|
||||
"os_version": null,
|
||||
"reproduction_steps": "新建工程"
|
||||
}}
|
||||
"""
|
||||
|
||||
# 意图优化环节提示词模板
|
||||
step_back_prompt = """
|
||||
# 后退提示生成器
|
||||
|
||||
你是一个专业的电力造价领域问题抽象专家。你的任务是根据用户的具体问题,提出一个更抽象、更高层次的问题,帮助系统更好地理解用户的意图。
|
||||
|
||||
## 任务说明
|
||||
1. 分析用户的原始问题,理解其核心意图和需求
|
||||
2. 考虑历史对话和会话背景,理解用户当前问题的上下文
|
||||
3. 生成一个更抽象、更高层次的问题,称为"后退问题"
|
||||
4. 后退问题应该:
|
||||
- 更加通用和抽象
|
||||
- 涵盖原始问题的核心主题
|
||||
- 去除过于具体的限制条件(如时间、地点、特定版本等)
|
||||
- 保持在同一领域和主题范围内
|
||||
- 考虑历史对话中的相关信息
|
||||
|
||||
## 输入
|
||||
用户原始问题: {query}
|
||||
历史对话记录: {chat_history}
|
||||
会话背景: {conversation_context}
|
||||
|
||||
## 输出格式
|
||||
{output_format}
|
||||
|
||||
## 示例
|
||||
原始问题: "配网D3软件2023版本如何在Windows 11系统上导入单位工程量清单?"
|
||||
后退问题: "配网D3软件如何导入工程量清单?"
|
||||
|
||||
原始问题: "技改T1软件中的某个设备更换后,如何在系统中更新对应的定额?"
|
||||
后退问题: "技改T1软件中如何更新设备对应的定额?"
|
||||
"""
|
||||
|
||||
follow_up_questions_prompt = """
|
||||
# 后续问题生成器
|
||||
|
||||
你是一个专业的电力造价领域对话理解专家。你的任务是根据历史对话和当前问题,生成一个完整的独立问题,确保即使没有历史上下文也能理解。
|
||||
|
||||
## 任务说明
|
||||
1. 分析历史对话记录和当前用户问题
|
||||
2. 识别当前问题中可能引用了历史对话的部分(如代词、省略内容等)
|
||||
3. 生成一个完整的独立问题,该问题应该:
|
||||
- 包含历史对话中的关键上下文
|
||||
- 明确指代所有代词和省略内容
|
||||
- 保持原问题的核心意图不变
|
||||
- 即使没有历史对话也能被理解
|
||||
|
||||
## 输入
|
||||
历史对话记录: {chat_history}
|
||||
当前用户问题: {query}
|
||||
会话背景: {conversation_context}
|
||||
|
||||
## 输出格式
|
||||
{output_format}
|
||||
|
||||
## 示例
|
||||
历史对话:
|
||||
用户: "我在使用配网D3软件"
|
||||
助手: "好的,请问您遇到什么问题?"
|
||||
当前问题: "怎么导入清单?"
|
||||
生成的独立问题: "在配网D3软件中,怎么导入清单?"
|
||||
|
||||
历史对话:
|
||||
用户: "技改T1软件中的设备更换功能在哪里?"
|
||||
助手: "设备更换功能在'工程管理'菜单下的'设备管理'子菜单中。"
|
||||
当前问题: "更新后如何保存?"
|
||||
生成的独立问题: "在技改T1软件中使用设备更换功能后,如何保存更新的设备信息?"
|
||||
"""
|
||||
|
||||
hyde_prompt = """
|
||||
# 假设性文档生成器
|
||||
|
||||
你是一个专业的电力造价领域知识专家。你的任务是根据用户的问题和历史对话,生成一个假设性的回答,该回答可能包含的信息和模式将有助于在知识库中检索相关文档。
|
||||
|
||||
## 任务说明
|
||||
1. 分析用户的问题,理解其核心意图和需求
|
||||
2. 考虑历史对话和会话背景,理解用户当前问题的上下文
|
||||
3. 生成一个假设性的回答,该回答应该:
|
||||
- 尽可能准确地回答用户问题
|
||||
- 包含可能与问题相关的专业术语和概念
|
||||
- 包含可能在知识库文档中出现的模式和结构
|
||||
- 考虑历史对话中的相关信息
|
||||
- 即使你不确定答案的准确性,也要提供一个合理的假设
|
||||
|
||||
## 输入
|
||||
用户问题: {query}
|
||||
历史对话记录: {chat_history}
|
||||
会话背景: {conversation_context}
|
||||
|
||||
## 输出格式
|
||||
{output_format}
|
||||
|
||||
## 示例
|
||||
用户问题: "配网D3软件如何导入Excel清单?"
|
||||
假设性回答: "在配网D3软件中导入Excel清单的步骤如下:
|
||||
1. 打开配网D3软件,进入工程管理模块
|
||||
2. 点击菜单栏中的'导入/导出'选项
|
||||
3. 选择'导入Excel清单'功能
|
||||
4. 在弹出的对话框中选择已准备好的Excel文件
|
||||
5. 确认导入格式和映射关系
|
||||
6. 点击'确定'完成导入
|
||||
注意:导入的Excel文件需要符合特定的格式要求,建议先在软件中导出一个样例文件作为模板。"
|
||||
"""
|
||||
|
||||
multi_questions_prompt = """
|
||||
# 多角度问题生成器
|
||||
|
||||
你是一个专业的电力造价领域问题分解专家。你的任务是根据用户的原始问题和历史对话,从不同角度生成多个子问题,以帮助系统更全面地理解和回答用户的需求。
|
||||
|
||||
## 任务说明
|
||||
1. 分析用户的原始问题,理解其核心意图和需求
|
||||
2. 考虑历史对话和会话背景,理解用户当前问题的上下文
|
||||
3. 从不同角度生成2-4个子问题,这些子问题应该:
|
||||
- 分别关注原始问题的不同方面或组成部分
|
||||
- 更加具体和直接
|
||||
- 共同覆盖原始问题的完整意图
|
||||
- 考虑历史对话中的相关信息
|
||||
- 每个子问题都应该是自包含的,可以独立回答
|
||||
|
||||
## 输入
|
||||
用户原始问题: {query}
|
||||
历史对话记录: {chat_history}
|
||||
会话背景: {conversation_context}
|
||||
|
||||
## 输出格式
|
||||
{output_format}
|
||||
|
||||
## 示例
|
||||
原始问题: "配网D3软件中如何处理定额调整和工程量清单导入?"
|
||||
子问题:
|
||||
1. "配网D3软件中如何进行定额调整?"
|
||||
2. "配网D3软件中如何导入工程量清单?"
|
||||
3. "定额调整后,是否会影响已导入的工程量清单?"
|
||||
按格式输出:
|
||||
{{
|
||||
"original_query":"配网D3软件中如何处理定额调整和工程量清单导入?"
|
||||
"sub_questions": [
|
||||
"配网D3软件中如何进行定额调整?",
|
||||
"配网D3软件中如何导入工程量清单?",
|
||||
"定额调整后,是否会影响已导入的工程量清单?"
|
||||
]
|
||||
}}
|
||||
|
||||
原始问题: "技改T1软件和配网D3软件的区别是什么?"
|
||||
子问题:
|
||||
1. "技改T1软件的主要功能和适用范围是什么?"
|
||||
2. "配网D3软件的主要功能和适用范围是什么?"
|
||||
3. "技改T1软件和配网D3软件在使用场景上有什么不同?"
|
||||
4. "如何选择使用技改T1软件还是配网D3软件?"
|
||||
按格式输出:
|
||||
{{
|
||||
"original_query":"技改T1软件和配网D3软件的区别是什么?"
|
||||
"sub_questions": [
|
||||
"技改T1软件的主要功能和适用范围是什么?",
|
||||
"配网D3软件的主要功能和适用范围是什么?",
|
||||
"技改T1软件和配网D3软件在使用场景上有什么不同?",
|
||||
"如何选择使用技改T1软件还是配网D3软件?"
|
||||
]
|
||||
}}
|
||||
"""
|
||||
Reference in New Issue
Block a user