从0到1实现大模型智能材料审核平台

从0到1实现大模型智能材料审核平台(Vue + Django + RAG)

一、项目背景

在土地征收等政务业务中,往往需要审核大量材料,例如:

  • 国民经济规划文件
  • 征地预公告
  • 土地调查确认表
  • 勘测定界表

这些材料通常以 PDF 或扫描件图片 的形式提交,审核人员需要逐页查看内容,并检查关键字段是否符合规范,例如:

  • 权属村名称是否一致
  • 土地面积是否匹配
  • 公告时间是否符合流程
  • 是否存在公章、二维码等视觉元素

传统人工审核方式存在几个问题:

  1. 效率低:单份材料审核时间长
  2. 一致性差:不同审核人员判断标准可能不同
  3. 数据难沉淀:历史审核经验无法结构化利用

因此,我设计并实现了一套 基于大模型的智能材料审核平台,实现从文件上传到结构化审核结果输出的自动化流程。

系统目标包括:

  • 自动解析 PDF / 图片材料
  • 提取关键字段信息
  • 结合历史规则进行智能审核
  • 输出结构化审核结果

二、系统整体架构

整个系统采用 前后端分离 + AI服务模块化设计,核心技术架构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Vue3 + Pinia

│ HTTP API

Django + DRF

├── OCR 文档解析
├── RAG 语义检索
├── LLM 推理
└── 审核规则处理

├── MySQL(业务数据)
├── FAISS(向量数据库)
└── Neo4j(知识图谱)

核心技术栈:

  • 前端:Vue3 + Pinia
  • 后端:Django + DRF
  • 数据库:MySQL
  • 向量检索:FAISS
  • 图数据库:Neo4j
  • 模型能力
    • OCR:PaddleOCR
    • LLM:Qwen2.5-VL

三、系统核心流程

整个智能审核流程可以分为 五个阶段

1
2
3
4
5
6
7
8
9
文件上传

OCR文本识别

语义处理(RAG)

大模型推理

结构化审核结果

1 文件上传

用户通过前端上传:

  • PDF文件
  • 图片文件

后端进行统一存储,并记录文件元数据。


2 OCR 文档解析

由于很多材料是扫描件,因此需要先进行 OCR 识别。

使用 PaddleOCR 对 PDF 页面进行识别:

1
result = ocr.ocr(image_path)

得到的文本会进行:

  • 去噪
  • 合并段落
  • 表格文本整理

最终得到可用于后续分析的文本数据。


四、RAG:构建知识增强审核能力

在实际测试中,如果直接将 OCR 文本发送给大模型,会出现两个问题:

  1. 上下文过长,token消耗高
  2. 模型容易产生幻觉

因此系统引入 RAG(Retrieval Augmented Generation) 机制。

RAG流程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
OCR文本

文本分块(chunk)

向量化

FAISS存储

语义检索

拼接上下文

LLM推理

文本分块

将长文档拆分为多个语义块:

1
2
chunk_size = 500
chunk_overlap = 50

这样可以保证:

  • 语义完整
  • 向量检索更精准

向量数据库构建

使用 FAISS 构建向量索引:

1
2
3
4
import faiss

index = faiss.IndexFlatL2(dim)
index.add(vectors)

当需要审核某个字段时,可以先通过语义检索找到相关文本,再交给 LLM 进行判断。

这样可以显著减少:

  • token消耗
  • 模型幻觉问题

五、大模型审核逻辑

系统将 OCR 文本、业务规则和检索结果整合为 Prompt 输入。

示例 Prompt:

1
2
3
4
5
6
7
8
9
10
你是一名土地征收材料审核专家,请根据以下内容判断:

1. 村名是否一致
2. 土地面积是否匹配
3. 公告时间是否合法

材料内容:
{context}

请输出JSON格式结果。

模型返回结果示例:

1
2
3
4
5
{
"village_name": "一致",
"land_area": "存在差异",
"announcement_time": "符合要求"
}

系统随后对结果进行结构化解析,并保存到数据库。


六、知识图谱构建

为了沉淀材料之间的关系,系统引入 Neo4j 图数据库

构建关系结构:

1
2
3
4
5
6
Project

├── Document
│ │
│ ├── Field
│ └── AuditResult

示例 Cypher:

1
2
3
CREATE (p:Project {name:"征收项目"})
CREATE (d:Document {type:"预公告"})
CREATE (p)-[:HAS_DOCUMENT]->(d)

这样可以实现:

  • 项目 → 文件 → 字段 → 审核结果 的关系查询
  • 不同材料之间的字段一致性分析

同时也方便前端进行 图结构展示


七、系统接口设计

后端使用 Django + DRF 构建 RESTful API。

不同材料类型采用 模块化接口设计

1
2
3
4
/api/guomin/
/api/yugonggao/
/api/hongxian/
/api/diaocha/

每种材料有独立处理逻辑,但共享:

  • OCR模块
  • LLM服务
  • 向量检索模块

这种设计方式使系统具有良好的 扩展性


八、系统效果

在实际测试中,系统达到了以下效果:

  • 审核识别准确率:约70%
  • 平均响应时间:约5秒

在大量材料审核场景下,可以显著减少人工审核压力。


九、项目总结

通过这个项目,我完整实践了一套 大模型工程落地流程

  • OCR 文档解析
  • RAG 知识增强
  • LLM 推理
  • 知识图谱构建

相比单纯调用 LLM API,这种 工程化 AI 系统设计 更能解决真实业务问题。

未来还可以进一步优化:

  • 引入 Agent workflow
  • 构建 审核规则学习机制
  • 提升 多模态识别能力

从0到1实现大模型智能材料审核平台
https://bayeeaa.github.io/2026/03/05/从0到1实现大模型智能材料审核平台/
Author
Ye
Posted on
March 5, 2026
Licensed under