168 lines
6.2 KiB
Python
168 lines
6.2 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. 严格基于用户问题提取关键词,不要输出与用户问题无关的关键词
|
||
5. 不要擅自揣摩、猜测、推断关键词,不要修改关键的信息(如:粘贴excel->导入excel)
|
||
|
||
三、输出格式:
|
||
{output_format}
|
||
|
||
四、用户问题:
|
||
{content}
|
||
|
||
"""
|
||
|
||
classification_info="""【垂直领域分类】:
|
||
1. 软件问题 -- 指涉及软件使用、功能询问、软件故障排查等方面的提问或请求。
|
||
2. 业务问题 -- 指涉及电力造价领域专业知识、造价费用计算等电力造价业务知识
|
||
3. 安装下载注册 -- 指涉及软件(或插件)安装下载、注册、激活等操作类问题。
|
||
4. 其他 -- 指与软件或电力造价专业无关的日常对话、问候、感慨、情绪表达等。
|
||
|
||
【软件问题包括以下两类】:
|
||
1. 软件功能:询问软件功能的使用、操作、位置等
|
||
2. 故障排查:软件运行异常、软件报错、软件显示错误等
|
||
|
||
【业务问题包括以下两类】:
|
||
1. 专业咨询:涉及电力造价规范、工程计价规则问题、行业标准解读等
|
||
2. 数据问题:涉及电力造价费用、造价指标的计算或构成等
|
||
|
||
【安装下载注册包括以下三类】:
|
||
1. 后缀名咨询:所有涉及文件扩展名的使用场景、软件关联等问题,包括但不限于:询问文件是否由特定软件打开、扩展名与软件的匹配关系、扩展名含义及关联等
|
||
示例:
|
||
"这个文件用配网软件能打开吗?(隐含扩展名关联)",
|
||
".bphq18 是什么类型的文件?",
|
||
"用哪个软件打开.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. 执行结构优化:
|
||
- 采用【术语标记】规范标注关键概念
|
||
- 构建主谓宾明确的问题句式
|
||
- 保持原问题时态与语态特征, 保留5W2H问题特征
|
||
- 执行同义词替换:将synonymous中的同义词替换为对应name字段的标准术语
|
||
|
||
# 输出规范
|
||
{output_format}
|
||
|
||
# 示范案例库
|
||
▶ 案例1(有效匹配)
|
||
输入:
|
||
原始问题:怎么把旧版西藏定额工程转到Z1新版
|
||
关键词:【'老版本定额升级', '批量设置定额', '西藏造价软件Z1'】
|
||
输出:
|
||
{{"rewrite":"【西藏造价软件Z1】如何执行【老版本定额升级】操作?"}}
|
||
|
||
▶ 案例2(无效匹配)
|
||
输入:
|
||
原始问题:程序界面文字显示过小如何处理?
|
||
关键词:【'定额升级', '工程批量导入'】
|
||
输出:
|
||
{{"rewrite":"程序界面文字显示过小如何处理?"}}
|
||
|
||
# 质量约束条款
|
||
1. 语义内容保真原则
|
||
- 禁止修改原问题核心诉求(如转换主语/变更操作对象)
|
||
- 保留原始问题的限定条件(包括:软件名称等)
|
||
|
||
2. 术语使用规范
|
||
- 仅使用检索返回的关键词进行术语替换
|
||
- 新增术语必须来自关键词集合
|
||
|
||
3. 结构优化标准
|
||
- 必须包含≥1个【标注术语】
|
||
- 禁止添加解释性语句
|
||
|
||
4. 异常处理机制
|
||
- 当关键词与问题无明显关联时,触发直通输出规则
|
||
- 出现术语冲突时优先保留原始表述
|
||
"""
|
||
|
||
slot_filling_prompt = """
|
||
你是一个专业的电力造价领域问题槽位填充助手。你需要从用户问题中提取关键信息,并填充到对应的数据结构中。
|
||
|
||
【用户问题】
|
||
{query}
|
||
|
||
【问题分类】
|
||
垂直领域分类: {vertical_classification}
|
||
子分类: {sub_classification}
|
||
|
||
【输出格式】
|
||
{output_format}
|
||
|
||
【任务要求】
|
||
1. 仔细分析用户问题,从中提取所有可能的槽位信息
|
||
2. 对于必填槽位,必须尽力从问题中提取,如果确实无法提取则留空
|
||
3. 对于选填槽位,如果能从问题中提取则填写,否则留空
|
||
4. 只输出符合格式的JSON数据,不要有任何额外的解释
|
||
|
||
【示例】
|
||
用户问题: "我的西藏Z1软件安装后闪退,提示缺少组件,怎么解决?"
|
||
分类: 软件问题/故障排查
|
||
输出:
|
||
{{
|
||
"software_name": "西藏Z1软件",
|
||
"function_name": "软件安装",
|
||
"error_message": "闪退,提示缺少组件",
|
||
"software_version": null,
|
||
"os_version": null,
|
||
"reproduction_steps": "软件安装后"
|
||
}}
|
||
""" |