案例十一:基于大模型进行报告审核

案例概述

本案例根据《勘察报告》与《岩土参数汇总表》,由大模型对照报告 3.2 节地基土描述与参数汇总表,审查 4.4 节「地基土层主要岩土设计参数值表」及 5.2 节「地基土层桩基设计参数」的取值是否合理,并输出审查报告。

你将学到

PipeLine 中连接「Word 转 Markdown、章节节选、大模型推理」等模块,在本地生成报告审查结论。

  • DocxToMarkdown 将 Word 文档转为 Markdown,result_key_name 供下游占位符引用。

  • MarkdownSectionFilterinclude_number_prefixes 按章节号节选报告内容。

  • MergeResultModels 合并报告节选与参数汇总表,PromptTemplate 组装审查提示词。

  • LLMNode 调用大模型生成审查结论,TextWriter 输出 .md 文件。

实现思路

  1. 创建 DocxToMarkdown,分别将《勘察报告》与《岩土参数汇总表》转为 Markdown。

  2. MarkdownSectionFilter 从勘察报告中节选 3.2、4.4、5.2 节。

  3. MergeResultModels 合并报告节选与参数汇总表两个 ResultModelPromptTemplate 填入 {survey_sections}{param_reference}

  4. LLMNode 对照 3.2 节描述与参数汇总表,审查 4.4、5.2 节设计参数合理性。

  5. TextWriter 将审查报告写入 workspace,return_results_config 暴露输出文件。

关键代码

本例关键在于 Word 转 Markdown、章节节选与大模型审查链路,对应代码如下。

report_sections = MarkdownSectionFilter("ReportSectionPick")
report_sections.include_number_prefixes = ["3.2", "4.4", "5.2"]
report_sections.filtered_markdown_key = "survey_sections"

merge_context = MergeResultModels("MergeReviewContext")
merge_context.add_dynamic_ports_in("InputSurveyModel")
merge_context.add_dynamic_ports_in("InputParamModel")

prompt = PromptTemplate("ReviewPrompt")
prompt.template = (
    "请审查第 4.4 节与第 5.2 节设计参数...\n\n"
    "{param_reference}\n\n{survey_sections}"
)

llm = LLMNode("ParamReviewLLM")
llm.model = "qwen3.5-plus"

pipeline.add_links(
    doc_survey_md.OutputMarkdown >> report_sections.InputMarkdown
    | report_sections.OutputResultModel >> merge_context.InputSurveyModel
    | doc_params_md.OutputResultModel >> merge_context.InputParamModel
    | merge_context.OutputResultModel >> prompt.InputValues
    | prompt.OutputPrompt >> llm.InputPrompt
    | llm.OutputReply >> write_report.InputText
)
pipeline.run()

更进一步

完整代码请查看以下链接:

surveyReportReviewPipeline.py