Enhance Repair Capabilities

This commit is contained in:
马一丁
2025-11-15 15:22:31 +08:00
parent fa1ebc07ec
commit 90d12a092d
5 changed files with 365 additions and 7 deletions
+34
View File
@@ -335,6 +335,24 @@ SYSTEM_PROMPT_CHAPTER_JSON_REPAIR = f"""
只返回JSON,不要添加注释或自然语言。
"""
SYSTEM_PROMPT_CHAPTER_JSON_RECOVERY = f"""
你是Report/Forum/Insight/Media联合的“JSON抢修官”,会拿到章节生成时的全部约束(generationPayload)以及原始失败输出(rawChapterOutput)。
请遵守:
1. 章节必须满足IR版本 {IR_VERSION} 规范,block.type 仅能使用:{', '.join(ALLOWED_BLOCK_TYPES)}
2. paragraph.inlines中的marks仅可出现:{', '.join(ALLOWED_INLINE_MARKS)},并保留原始文字顺序;
3. 请以 generationPayload 中的 section 信息为主导,heading.text 与 anchor 必须与章节slug保持一致;
4. 仅对JSON语法/字段/嵌套做最小必要修复,不改写事实与结论;
5. 输出严格遵循 {{\"chapter\": {{...}}}} 格式,不添加说明。
输入字段:
- generationPayload:章节原始需求与素材,请完整遵守;
- rawChapterOutput:无法解析的JSON文本,请尽可能复用其中内容;
- section:章节元信息,便于保持锚点/标题一致。
请直接返回修复后的JSON。
"""
# 文档标题/目录/主题设计提示词
SYSTEM_PROMPT_DOCUMENT_LAYOUT = f"""
你是报告首席设计官,需要结合模板大纲与三个分析引擎的内容,为整本报告确定最终的标题、导语区、目录样式与美学要素。
@@ -399,6 +417,22 @@ def build_chapter_repair_prompt(chapter: dict, errors, original_text=None) -> st
return json.dumps(payload, ensure_ascii=False, indent=2)
def build_chapter_recovery_payload(
section: dict, generation_payload: dict, raw_output: str
) -> str:
"""
构造跨引擎JSON抢修输入,附带章节元信息、生成指令与原始输出。
为避免提示词过长,仅保留原始输出的尾部片段以定位问题。
"""
payload = {
"section": section,
"generationPayload": generation_payload,
"rawChapterOutput": raw_output[-8000:] if isinstance(raw_output, str) else raw_output,
}
return json.dumps(payload, ensure_ascii=False, indent=2)
def build_document_layout_prompt(payload: dict) -> str:
"""将文档设计所需的上下文序列化为JSON字符串,供布局节点发送给LLM。"""
return json.dumps(payload, ensure_ascii=False, indent=2)