Files

306 lines
9.2 KiB
Python
Raw Permalink Normal View History

2026-04-13 11:34:23 +08:00
"""
GraphRAG core prompts (Chinese, aerospace-oriented).
"""
GRAPH_FIELD_SEP = "<SEP>"
PROMPTS = {}
PROMPTS[
"claim_extraction"
] = """-任务定位-
你是航天知识情报分析助手负责从文本中抽取实体相关的主张/断言claim
-目标-
给定输入文本实体约束和主张说明抽取满足条件的实体及其对应主张结果必须可溯源
-执行步骤-
1. 先识别满足实体约束的命名实体实体约束可能是实体名称列表也可能是实体类型列表
2. 对步骤1中的每个实体抽取其作为主语的主张每条主张需输出
- Subject: 主张主体实体名大写必须来自步骤1
- Object: 客体实体名大写未知时使用 **NONE**
- Claim Type: 主张类型大写应可复用
- Claim Status: **TRUE****FALSE** **SUSPECTED**
- Claim Description: 说明主张的依据逻辑和关键证据
- Claim Date: 起止时间ISO-8601未知时为 **NONE**
- Claim Source Text: 与主张直接相关的原文引文尽量完整
格式要求
(<subject_entity>{tuple_delimiter}<object_entity>{tuple_delimiter}<claim_type>{tuple_delimiter}<claim_status>{tuple_delimiter}<claim_start_date>{tuple_delimiter}<claim_end_date>{tuple_delimiter}<claim_description>{tuple_delimiter}<claim_source>)
3. 使用 **{record_delimiter}** 连接所有记录
4. 结束时输出 {completion_delimiter}
-约束-
- 仅基于输入文本不得编造
- 航天语境优先如航天器推进系统姿态控制任务阶段地面系统试验事件故障模式等
-输入-
Entity specification: {entity_specs}
Claim description: {claim_description}
Text: {input_text}
Output: """
PROMPTS[
"community_report"
] = """你是航天领域知识图谱分析助手负责为一个社区community生成结构化研判报告。
# 目标
根据给定的实体关系和可选主张输出可用于技术评审与任务决策的社区报告
# 报告结构
必须返回 JSON 字符串结构如下
{
"title": <标题>,
"summary": <执行摘要>,
"rating": <0-10 浮点评分>,
"rating_explanation": <评分说明>,
"findings": [
{
"summary": <要点小结>,
"explanation": <详细说明>
}
]
}
# 字段要求
- title: 简洁且具体尽量包含代表性实体
- summary: 说明社区整体结构核心实体关键关系与主要风险/价值
- rating: 社区影响度/风险度评分0-10
- rating_explanation: 单句说明评分依据
- findings: 5-10 条关键发现覆盖技术链路任务影响可靠性风险协同关系等
# 领域要求(航天)
优先关注以下维度
- 任务阶段论证研制总装测试发射入轨在轨运行回收/退役
- 系统层级航天器有效载荷推进系统姿态控制测控通信地面系统
- 关键指标推力比冲功率带宽精度寿命可靠性故障率
- 风险与依赖单点故障接口依赖时序耦合供应链与试验验证缺口
# 证据约束
- 仅使用输入中可证据化信息
- 无证据内容不得写入
- 若信息不足应明确指出不确定性与缺失点
# 输入
Text:
```
{input_text}
```
Output:
"""
PROMPTS[
"entity_extraction"
] = """-任务目标-
给定文本与实体类型列表识别所有相关实体并抽取实体间明确存在的关系
-实体类型约束-
- entity_type 必须来自给定集合[{entity_types}]
- 若无法确定使用最接近类型不可臆造新类型
-关系类型约束-
关系描述必须以关系类型=<类型>依据=<说明>开头
关系类型从以下集合中选择
[组成, 隶属, 控制, 被控制, 供能, 支撑, 测量, 感知, 执行, 通信, 影响, 制约, 因果, 时序前后, 协同, 风险关联, 其他]
-执行步骤-
1. 抽取实体每个实体输出
- entity_name: 实体名保留原文专有名词必要时标准化
- 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
- target_entity
- relationship_description: 必须以关系类型=<类型>依据=<说明>开头
- relationship_strength: 1-10 数值表示关系强度
关系格式
("relationship"{tuple_delimiter}<source_entity>{tuple_delimiter}<target_entity>{tuple_delimiter}<relationship_description>{tuple_delimiter}<relationship_strength>)
3. 结果使用 **{record_delimiter}** 拼接
4. 结束时输出 {completion_delimiter}
-质量规则-
- 只抽取文本中可直接支持的实体和关系
- 不输出模糊猜测或无依据关系
- 对航天语义优先航天器分系统任务阶段参数指标故障模式试验事件
-输入-
Entity_types: {entity_types}
Text: {input_text}
Output:
"""
PROMPTS[
"summarize_entity_descriptions"
] = """你是航天知识库整理助手。
给定一个或两个实体名称以及若干描述片段请合并为一段一致完整可复用的摘要
要求
- 覆盖所有有效信息
- 若描述冲突给出最一致最保守的综合结论
- 使用第三人称
- 保留实体名避免指代不清
- 优先保留任务阶段技术指标系统依赖和风险信息
#######
-输入数据-
Entities: {entity_name}
Description List: {description_list}
#######
Output:
"""
PROMPTS[
"entiti_continue_extraction"
] = """上一轮可能遗漏了实体或关系。请仅补充遗漏项,严格沿用既定输出格式,不要重复已输出记录:"""
PROMPTS[
"entiti_if_loop_extraction"
] = """请判断是否仍有遗漏实体或关系。仅回答 YES 或 NO。"""
PROMPTS["DEFAULT_ENTITY_TYPES"] = [
"航天器",
"任务",
"任务阶段",
"有效载荷",
"推进系统",
"姿态控制系统",
"测控通信系统",
"电源系统",
"热控系统",
"结构机构",
"传感器",
"执行机构",
"地面系统",
"组织机构",
"试验事件",
"故障模式",
"参数指标",
"轨道",
"地点",
"时间",
]
PROMPTS["DEFAULT_TUPLE_DELIMITER"] = "<|>"
PROMPTS["DEFAULT_RECORD_DELIMITER"] = "##"
PROMPTS["DEFAULT_COMPLETION_DELIMITER"] = "<|COMPLETE|>"
PROMPTS[
"local_rag_response"
] = """---角色---
你是航天领域图谱问答助手擅长基于局部子图进行多跳推理
---任务---
根据输入的数据表实体关系证据片段回答用户问题
---回答要求---
1. 先给结论再给推理链路
2. 推理链路至少包含
- 关键实体
- 关键关系
- 中间推断
- 最终结论
3. 若证据不足明确说明证据不足以得出结论
4. 严禁编造
5. 使用中文专业且简洁
---目标长度与格式---
{response_type}
---输入数据表---
{context_data}
---输出格式建议---
- 结论
- 推理链路
- 证据与不确定性
"""
PROMPTS[
"global_map_rag_points"
] = """---角色---
你是航天知识全局研判助手负责从社区级信息中提炼关键观点
---任务---
根据输入数据表输出一组可用于后续全局汇总的关键点
---输出要求---
- 必须输出 JSON
{
"points": [
{"description": "观点描述", "score": 0-100整数}
]
}
- description: 观点需可证据化优先覆盖跨系统影响任务阶段耦合技术风险和性能趋势
- score: 对回答用户问题的重要性分值
- 若无法回答输出 1 score=0 且明确说明信息不足
- 仅使用输入证据不得编造
---输入数据表---
{context_data}
"""
PROMPTS[
"global_reduce_rag_response"
] = """---角色---
你是航天领域总师级分析助手负责融合多位分析员报告并给出全局结论
---任务---
根据按重要性降序排列的分析员报告输出面向决策的综合回答
---要求---
1. 先给总体结论再给分项分析趋势共性风险关键差异建议动作
2. 报告融合时去重去噪保留高证据密度信息
3. 必须指出不确定性与信息缺口
4. 仅基于输入报告不得编造
5. 使用中文风格专业严谨
---目标长度与格式---
{response_type}
---分析员报告---
{report_data}
"""
PROMPTS[
"naive_rag_response"
] = """你是航天知识问答助手。
下面是可用知识
{content_data}
---
请基于上述知识回答用户问题要求
- 回答准确简洁专业
- 若信息不足明确说明缺失点
- 不得编造
---目标长度与格式---
{response_type}
"""
PROMPTS["fail_response"] = "抱歉,当前无法基于现有信息回答该问题。"
PROMPTS["process_tickers"] = ["-", "\\", "|", "/"]
PROMPTS["default_text_separator"] = [
"\n\n",
"\r\n\r\n",
"\n",
"\r\n",
"",
"",
".",
"",
"!",
"",
"?",
" ",
"\t",
"\u3000",
"\u200b",
]