130 lines
4.7 KiB
Python
130 lines
4.7 KiB
Python
#!/usr/bin/env python
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
File: PromptTemplates.py
|
||
Author: oyyz
|
||
Date: 2025-05-13
|
||
Description: 提示词模板
|
||
"""
|
||
|
||
extract_nouns_prompt="""
|
||
【智能关键词提取助手】
|
||
请根据用户问题自动识别核心关键词,并按照以下规则输出:
|
||
1. 只输出最终关键词列表,不要解释说明
|
||
2. 关键词提取范围包括但不限于以下内容:
|
||
- 软件相关:功能模块/操作步骤/报错提示/扩展名后缀名
|
||
- 造价专业:费用类型/计算标准/行业规范
|
||
- 电力工程:项目类型/设备型号/工程阶段
|
||
3. 自动展开缩写(如将'导excel'转为'Excel导入')
|
||
4. 严格基于用户问题提取关键词,不要输出与用户问题无关的关键词
|
||
|
||
三、输出格式:
|
||
{output_format}
|
||
|
||
四、用户问题:
|
||
{content}
|
||
|
||
"""
|
||
|
||
classification_info="""【垂直领域分类】:
|
||
1. 软件问题 -- 指涉及软件使用、功能询问、软件故障排查等方面的提问或请求。
|
||
2. 业务问题 -- 指涉及电力造价领域专业知识、造价费用计算等电力造价业务知识
|
||
3. 安装下载注册 -- 指涉及软件(或插件)安装下载、注册、激活等操作类问题。
|
||
4. 其他 -- 指与软件或电力造价专业无关的日常对话、问候、感慨、情绪表达等。
|
||
|
||
【软件问题包括以下两类】:
|
||
1. 软件功能:询问软件功能的使用、操作、位置等
|
||
2. 故障排查:软件运行异常、软件报错、软件显示错误等
|
||
|
||
【业务问题包括以下两类】:
|
||
1. 专业咨询:涉及电力造价规范、工程计价规则问题、行业标准解读等
|
||
2. 数据问题:涉及电力造价费用、造价指标等
|
||
|
||
【安装下载注册包括以下三类】:
|
||
1. 后缀名查询:询问有关软件后缀名、工程文件扩展名等问题,例如:BDY3是什么文件?、用什么软件打开.BDY3文件?
|
||
2. 软件锁类:询问软件锁信息、锁注册号查询、许可证查询、锁激活问题等软件锁相关问题
|
||
3. 安装下载类:安装下载咨询、组件(插件)选择、环境配置等
|
||
4. 问题排查类:软件安装下载失败、报错,系统兼容性问题等
|
||
|
||
【其他】:
|
||
1. 其他"""
|
||
|
||
classification_prompt="""
|
||
用户正在使用电力造价软件或想询问电力造价领域相关知识,你需要根据用户的输入内容,将其归类为以下垂直领域之一:
|
||
{classification_info}
|
||
|
||
【用户输入】:
|
||
{user_input}
|
||
|
||
【输出格式要求】:
|
||
{output_format}
|
||
|
||
【示例】
|
||
用户输入1: 技改T1怎样新建工程
|
||
输出1:
|
||
{
|
||
"vertical_classification":"软件咨询",
|
||
"sub_classification":"软件功能"
|
||
}
|
||
"""
|
||
|
||
query_rewrite_prompt = """
|
||
|
||
你是一名电力造价专业问答优化工程师,负责通过多维度信息整合重构用户问题以提升知识库检索准确率。请严格遵循以下流程处理:
|
||
|
||
# 任务处理框架
|
||
## 第一阶段:输入分析
|
||
1. 解析基础信息
|
||
- 原始问题(需保留核心语义):{query}
|
||
- 关键词集合:{keywords}
|
||
|
||
## 第二阶段:语义匹配验证
|
||
2. 执行关键词校验
|
||
- 建立意图关联矩阵,验证关键词与原始问题的语义一致性
|
||
- 若存在≥1个有效关联词 → 进入重构流程
|
||
- 若无有效关联 → 直接输出原始问题
|
||
|
||
## 第三阶段:专业重构
|
||
3. 术语规范化处理
|
||
a. 实施术语映射:将口语表达替换为知识库标准术语
|
||
b. 执行结构优化:
|
||
- 采用【术语标记】规范标注关键概念
|
||
- 构建主谓宾明确的问题句式
|
||
- 保持原问题时态与语态特征
|
||
|
||
# 输出规范
|
||
{output_format}
|
||
|
||
# 示范案例库
|
||
▶ 案例1(有效匹配)
|
||
输入:
|
||
原始问题:怎么把旧版西藏定额工程转到Z1新版
|
||
关键词:【'老版本定额升级', '批量设置定额', '西藏造价软件Z1'】
|
||
输出:
|
||
{{"rewrite":"【西藏造价软件Z1】如何执行【老版本定额升级】操作?"}}
|
||
|
||
▶ 案例2(无效匹配)
|
||
输入:
|
||
原始问题:程序界面文字显示过小如何处理?
|
||
关键词:【'定额升级', '工程批量导入'】
|
||
输出:
|
||
{{"rewrite":"程序界面文字显示过小如何处理?"}}
|
||
|
||
# 质量约束条款
|
||
1. 语义内容保真原则
|
||
- 禁止修改原问题核心诉求(如转换主语/变更操作对象)
|
||
- 保留原始问题的限定条件
|
||
|
||
2. 术语使用规范
|
||
- 仅使用检索返回的关键词进行术语替换
|
||
- 新增术语必须来自关键词集合
|
||
|
||
3. 结构优化标准
|
||
- 问题长度控制在20字内
|
||
- 必须包含≥1个【标注术语】
|
||
- 禁止添加解释性语句
|
||
|
||
4. 异常处理机制
|
||
- 当关键词与问题无明显关联时,触发直通输出规则
|
||
- 出现术语冲突时优先保留原始表述
|
||
""" |