Enhance Repair Capabilities
This commit is contained in:
@@ -9,6 +9,7 @@ from .prompts import (
|
||||
SYSTEM_PROMPT_HTML_GENERATION,
|
||||
SYSTEM_PROMPT_CHAPTER_JSON,
|
||||
SYSTEM_PROMPT_CHAPTER_JSON_REPAIR,
|
||||
SYSTEM_PROMPT_CHAPTER_JSON_RECOVERY,
|
||||
SYSTEM_PROMPT_DOCUMENT_LAYOUT,
|
||||
SYSTEM_PROMPT_WORD_BUDGET,
|
||||
output_schema_template_selection,
|
||||
@@ -16,6 +17,7 @@ from .prompts import (
|
||||
chapter_generation_input_schema,
|
||||
build_chapter_user_prompt,
|
||||
build_chapter_repair_prompt,
|
||||
build_chapter_recovery_payload,
|
||||
build_document_layout_prompt,
|
||||
build_word_budget_prompt,
|
||||
)
|
||||
@@ -27,11 +29,13 @@ __all__ = [
|
||||
"SYSTEM_PROMPT_CHAPTER_JSON_REPAIR",
|
||||
"SYSTEM_PROMPT_DOCUMENT_LAYOUT",
|
||||
"SYSTEM_PROMPT_WORD_BUDGET",
|
||||
"SYSTEM_PROMPT_CHAPTER_JSON_RECOVERY",
|
||||
"output_schema_template_selection",
|
||||
"input_schema_html_generation",
|
||||
"chapter_generation_input_schema",
|
||||
"build_chapter_user_prompt",
|
||||
"build_chapter_repair_prompt",
|
||||
"build_chapter_recovery_payload",
|
||||
"build_document_layout_prompt",
|
||||
"build_word_budget_prompt",
|
||||
]
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user