更新词库,添加同义词和描述,删除冗余条目,优化意图识别逻辑,调整向量检索参数.

This commit is contained in:
2025-06-06 13:54:01 +08:00
parent d4d891e5bb
commit bdb190d9a1
12 changed files with 90 additions and 86 deletions
+52 -38
View File
@@ -12,8 +12,8 @@ extract_nouns_prompt="""
请根据用户问题自动识别核心关键词,并按照以下规则输出:
1. 只输出最终关键词列表,不要解释说明
2. 关键词提取范围包括但不限于以下内容:
- 软件相关:功能模块/操作步骤/报错提示/扩展名后缀名
- 造价专业:费用类型/计算标准/行业规范
- 软件相关:软件名称/功能模块/操作步骤/报错提示/扩展名后缀名
- 造价专业:费用类型/计算标准/行业规范/文件
- 电力工程:项目类型/设备型号/工程阶段
3. 自动展开缩写(如将'导excel'转为'导入Excel'
4. 严格基于用户问题提取关键词,不要输出与用户问题无关的关键词
@@ -75,29 +75,45 @@ classification_prompt="""
query_rewrite_prompt = """
你是一名电力造价专业问答优化工程师,负责通过多维度信息整合重构用户问题以提升知识库检索准确率。请严格遵循以下流程处理:
# 电力造价专业问答优化工程师
# 任务处理框架
## 第一阶段:输入分析
你是一名电力造价专业问答优化工程师,负责通过多维度信息整合重构用户问题以提升知识库检索准确率。
## 核心任务
将用户的原始问题结合专业术语库进行规范化重构,提高知识库检索的准确性和专业性。
## 处理流程
### 第一阶段:输入解析
1. 解析基础信息
- 原始问题(需保留核心语义){query}
- 关键词集合:{keywords}
## 第二阶段:语义匹配验证
2. 执行关键词校验
- 建立意图关联矩阵,验证关键词与原始问题的语义一致性
- 若存在≥1个有效关联词 → 进入重构流程
- 若无有效关联 → 直接输出原始问题
### 第二阶段:匹配分析
**匹配规则:**
1. 检查原始问题中是否包含关键词集合中的`name`字段或`synonymous`字段中的任何词汇
2. 统计匹配的术语数量
3. 判断执行路径:
- 匹配术语 ≥ 1个 → 执行重构流程
- 匹配术语 = 0个 → 直接输出原始问题
## 第三阶段:专业重构
3. 术语规范化处理
a. 实施术语映射:将口语表达替换为知识库标准术语,优先保留原问题中的术语
b. 执行结构优化:
- 采用【术语标记】规范标注关键概念
- 构建主谓宾明确的问题句式
- 保持原问题时态与语态特征, 保留5W2H问题特征
- 执行同义词替换:将synonymous中的同义词替换为对应name字段的标准术语
### 第三阶段:问题重构
**重构原则(按优先级排序):**
1. **语义保真**:严格保持原问题的核心意图和诉求
2. **术语规范**
- 将匹配到的同义词替换为对应的标准术语(name字段)
- 对在关键词中的标准术语使用【】进行标记
- 保留在原问题中未在关键词库中的专业术语、限定词和修饰词
3. **结构优化**
- 保持原问题的语态特征5W2H
- 保持主谓宾结构清晰
- 保留时间、版本等限定条件
**术语处理规则:**
- 优先级1:保留原问题中的专业术语、限定词和修饰词(即使不在关键词库中)
- 优先级2:将同义词替换为标准术语并用【】标记
- 优先级3:对原问题中已存在的标准术语添加【】标记
# 输出规范
{output_format}
@@ -116,22 +132,20 @@ query_rewrite_prompt = """
输出:
{{"rewrite":"程序界面文字显示过小如何处理?"}}
# 质量约束条款
1. 语义内容保真原则
- 禁止修改原问题核心诉求(如转换主语/变更操作对象)
- 保留原始问题的限定条件(包括:软件名称等)
▶ 案例3(部分匹配,但保留修饰限定词)
输入:
原始问题:"配网软件D3能导出清单的计算公式吗?
关键词:【'配网工程计价通D3软件', '计算式'
输出(保留限定修饰词"清单")
{{"rewrite":"【配网工程计价通D3软件】能导出清单的【计算式】吗?"}}
2. 术语使用规范
- 仅使用检索返回的关键词进行术语替换
- 新增术语必须来自关键词集合
3. 结构优化标准
- 必须包含≥1个【标注术语】
- 禁止添加解释性语句
4. 异常处理机制
- 当关键词与问题无明显关联时,触发直通输出规则
- 出现术语冲突时优先保留原始表述
## 质量检查清单
执行前请确认:
- [ ] 是否保持了原问题的核心诉求?
- [ ] 是否正确执行了同义词替换?
- [ ] 是否保留了原问题中的专业术语和限定条件?
- [ ] 是否正确使用了【】标记?
- [ ] 重构后的问题是否自然流畅?
"""
slot_filling_prompt = """
@@ -154,15 +168,15 @@ slot_filling_prompt = """
4. 只输出符合格式的JSON数据,不要有任何额外的解释
【示例】
用户问题: "我的西藏Z1软件安装后闪退,提示缺少组件,怎么解决?"
用户问题: "我的西藏Z1软件,新建工程报错:找不到许可证,怎么解决?"
分类: 软件问题/故障排查
输出:
{{
"software_name": "西藏Z1软件",
"function_name": "软件安装",
"error_message": "闪退,提示缺少组件",
"software_name": "西藏电力工程计价通Z1软件",
"function_name": "新建工程",
"error_message": "报错:找不到许可证",
"software_version": null,
"os_version": null,
"reproduction_steps": "软件安装后"
"reproduction_steps": "新建工程"
}}
"""