Files
2025-03-31 17:28:23 +08:00

133 lines
9.9 KiB
Python

PROMPTS = {}
PROMPTS["DEFAULT_ENTITY_TYPES"] = ["软件名称", "功能名称", "使用场景", "功能入口", "操作步骤", "操作影响"]
PROMPTS["DEFAULT_RELATIONSHIP_TYPES"] = ["包含", "配置", "应用于", "引用", "影响"]
PROMPTS["entity_extraction"] = """
-目标-
给定可能与此活动相关的文本文档和实体类型列表,从文本中识别出这些类型的所有实体以及所识别实体之间的所有关系。
-步骤-
1.识别所有实体。对于每个已识别的实体,提取以下信息:
-entity_name:实体的名称,使用与输入文本相同的语言。
-entity_type:以下类型之一:〔{entity_type}〕
-entity_description:对实体属性和活动的全面描述
将每个实体格式化为("entity"{tuple_delimiter}<entity_name>{tuple_delimiter}<entity_type>{tuple_delimiter}<entity_description>
2.从步骤1中识别的实体中,识别彼此*明显相关*的所有对(source_entity、target_entity)。
对于每对相关实体,提取以下信息:
-source_entity:源实体的名称,如步骤1中所标识的
-target_entity:目标实体的名称,如步骤1中所标识的
-relationship_description:解释为什么你认为源实体和目标实体是相互关联的
-relationship_strength:一个数字分数,表示源实体和目标实体之间关系的强度
-relationship_keywords:一个或多个高级关键字,总结关系的总体性质,侧重于概念或主题,而不是具体细节
将每个关系格式化为("relationship"{tuple_delimiter}<source_entity>{tuple_delimiter}<target_entity>{tuple_delimiter}<relationship_description>{tuple_delimiter}<relationship_keywords>{tuple_delimiter}<relationship_strength>)
3.识别概括整篇文章主要概念、主题或主题的高级关键字。这些应该捕捉到文件中存在的总体想法。
将内容级关键字格式化为("content_keywords"{tuple_delimiter}<high_level_keywords>)
4.返回中文输出,作为步骤1和2中识别的所有实体和关系的单个列表。使用**{record_delimiter}**作为列表分隔符。
5.完成后,输出 {completion_delimiter}
6.在输出的结果中,不能加载任何多余的字符,请严格按照给定的规范和实例的输出格式来进行输出。
-示例-
示例 1:
实体类型列表: ["软件名称", "功能名称", "使用场景", "功能入口", "操作步骤"]
关系类型列表: ["包含", "配置", "应用于", "引用", "影响"]
文本内容:
(储能C1)按项目划分分页输出
# (储能C1)按项目划分分页输出
## 使用场景
表三需要按项目划分分页显示,如何调整?
## 功能入口
【报表输出】界面——“批量设置”——“设置报表参数”
![功能入口](https://172.20.0.145/files/0bf8512b-17a0-486f-9a5c-d8ef0ed29a45/image-preview)
## 操作步骤
**设置表三按项目划分分页显示:**
在“设置报表参数”窗口,点开“按项目划分分页输出”名称前面“\+”,可单独针对建筑/安装/余物清理表三分别进行设置勾选“按项目划分分页输出”,点击确定即可。
![picture](https://172.20.0.145/files/fe488f93-9a7b-47d1-b536-6102e2ee72bf/image-preview)
![分页显示效果](https://172.20.0.145/files/8702d44b-b8f8-4d19-8db9-5487e1fb8e72/image-preview)
## 操作影响
输出:
("entity"{tuple_delimiter}"储能C1"{tuple_delimiter}"软件名称"{tuple_delimiter}"用于工程计价和报表管理的软件,支持按项目划分分页输出功能。"){record_delimiter}
("entity"{tuple_delimiter}"按项目划分分页输出"{tuple_delimiter}"功能名称"{tuple_delimiter}"针对表三报表按建筑/安装/余物清理等项目类型进行分页显示的配置功能。"){record_delimiter}
("entity"{tuple_delimiter}"表三需要按项目划分分页显示,如何调整?"{tuple_delimiter}"使用场景"{tuple_delimiter}"用户需要调整表三报表的显示方式,使其按不同项目类型分页展示。"){record_delimiter}
("entity"{tuple_delimiter}"【报表输出】界面——“批量设置”——“设置报表参数”"{tuple_delimiter}"功能入口"{tuple_delimiter}"通过报表输出界面的批量设置菜单进入分页配置功能的路径。"){record_delimiter}
("entity"{tuple_delimiter}"在“设置报表参数”窗口勾选对应表三的分页选项"{tuple_delimiter}"操作步骤"{tuple_delimiter}"通过展开设置项并勾选特定表三的分页输出复选框完成配置。"){record_delimiter}
("relationship"{tuple_delimiter}"按项目划分分页输出"{tuple_delimiter}"储能C1"{tuple_delimiter}"该功能属于储能C1软件的核心报表管理功能。"{tuple_delimiter}"功能归属, 软件功能"{tuple_delimiter}0.95){record_delimiter}
("relationship"{tuple_delimiter}"功能入口"{tuple_delimiter}"操作步骤"{tuple_delimiter}"功能入口是执行操作步骤的前置路径条件。"{tuple_delimiter}"操作流程, 功能调用"{tuple_delimiter}0.85){record_delimiter}
("content_keywords"{tuple_delimiter}"工程报表管理, 分页配置, 项目划分"){completion_delimiter}
实例 2:
实体类型列表: ["软件名称", "功能名称", "使用场景", "功能入口", "操作步骤"]
关系类型列表: ["包含", "配置", "应用于", "引用", "影响"]
文本内容:
(技改检修工程计价通T1软件) (T1)批量设置小数位数
# (技改检修工程计价通T1软件) (T1)批量设置小数位数
## 使用场景
单个工程中需要批量设置报表小数位数或者编制说明需要设置小数位数,可以使用该功能。
## 功能入口
【报表输出】界面——工具栏“批量设置小数位数”
## 操作步骤
**批量设置小数位数:**
【报表输出】界面——工具栏“批量设置小数位数”——弹出窗口中勾选上需要批量设置的报表,下拉选择设置的小数位数——点击“确定”按钮。
![批量设置小数位数](https://172.20.0.145/files/b83dac30-ad89-4cde-9b06-b52bec8d1b53/image-preview)
## 操作影响
1、设置后影响对应的报表小数位数显示。
2、设置“汇总表(表一)”小数位数可以影响编制说明中的小数位数显示(编制说明中工程费用小数位数与总表/表一相同)。
输出:
("entity"{tuple_delimiter}"技改检修工程计价通T1软件"{tuple_delimiter}"软件名称"{tuple_delimiter}"专注于技改检修工程计价的软件,支持批量设置小数位数功能。"){record_delimiter}
("entity"{tuple_delimiter}"批量设置小数位数"{tuple_delimiter}"功能名称"{tuple_delimiter}"统一设置单个工程中多个报表或编制说明的小数位数显示格式。"){record_delimiter}
("entity"{tuple_delimiter}"单个工程中需要批量设置报表小数位数或编制说明小数位数"{tuple_delimiter}"使用场景"{tuple_delimiter}"用户需要统一工程内不同报表或文档的小数精度显示需求。"){record_delimiter}
("entity"{tuple_delimiter}"【报表输出】界面——工具栏“批量设置小数位数”"{tuple_delimiter}"功能入口"{tuple_delimiter}"通过报表输出界面工具栏直接启动小数位数批量配置功能的入口。"){record_delimiter}
("entity"{tuple_delimiter}"勾选目标报表并选择小数位数后确认"{tuple_delimiter}"操作步骤"{tuple_delimiter}"在批量设置窗口选择需配置的报表列表并指定小数位数完成设置。"){record_delimiter}
("relationship"{tuple_delimiter}"批量设置小数位数"{tuple_delimiter}"技改检修工程计价通T1软件"{tuple_delimiter}"该功能是T1软件用于工程计价格式标准化的重要工具。"{tuple_delimiter}"功能实现, 数据格式"{tuple_delimiter}0.90){record_delimiter}
("relationship"{tuple_delimiter}"使用场景"{tuple_delimiter}"功能名称"{tuple_delimiter}"使用场景直接驱动该功能的开发需求。"{tuple_delimiter}"需求映射, 功能设计"{tuple_delimiter}0.88){record_delimiter}
("content_keywords"{tuple_delimiter}"数值格式标准化, 批量配置, 工程计价"){completion_delimiter}
"""
# 回答生成的提示模板
RESPONSE_TEMPLATE = """
- Role: 知识图谱应用专家和交互设计顾问
- Background: 用户需要将提问和知识图谱检索到的知识传递给大模型,大模型需按照特定规范输出回答内容。这种需求常见于复杂系统操作指导场景,用户希望通过清晰的结构化回答,快速准确地找到操作路径和方法。
- Profile: 你是一位精通知识图谱应用的专家,对复杂系统操作流程有着深入的理解和丰富的实践经验,擅长将知识图谱中的信息转化为简洁明了的操作指导。
- Skills: 你具备知识图谱分析能力、交互设计能力、自然语言处理能力以及逻辑推理能力,能够精准地提取关键信息并按照规范进行输出。
- Goals: 根据用户提问和知识图谱检索到的内容,按照规范输出功能入口、操作步骤和操作影响(如果有的话)。
- Constrains: 输出内容必须严格遵循给定的规范,确保信息的准确性和完整性。
- OutputFormat: 按照以下结构输出:
1. 功能入口:节点名称、节点类型、节点到根节点的路径。
2. 操作步骤:根据问题和知识图谱内容给出的操作指导。
3. 操作影响:节点的属性(如果有的话)。
- 例子:
用户提问:如何更新土质比例?
知识图谱检索到的内容:节点名称:更新土质;节点类型:按钮;节点到根节点的路径:【工程信息】界面——“线路参数”页签;节点属性:软件将土质比例更新到土方资源中。
输出内容:
功能入口:【工程信息】界面——“线路参数”页签——“更新土质”按钮。
操作步骤:在【工程信息】界面——“线路参数”页签中右边,设置好土质比例;点击工具栏“更新土质”按钮。
操作影响:软件将土质比例更新到土方资源中。
请根据以下信息回答用户的问题。
### 用户意图分析
{intent_info}
### 相关信息:
{context}
### 用户问题:
{query}
"""