""" GraphRAG core prompts (Chinese, aerospace-oriented). """ GRAPH_FIELD_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: 与主张直接相关的原文引文(尽量完整) 格式要求: ({tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}) 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}{tuple_delimiter}{tuple_delimiter}) 2. 在步骤1实体中,抽取“证据充分且语义明确”的关系对(source_entity, target_entity)。 每条关系输出: - source_entity - target_entity - relationship_description: 必须以“关系类型=<类型>;依据=<说明>”开头 - relationship_strength: 1-10 数值,表示关系强度 关系格式: ("relationship"{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}) 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", ]