本科毕业设计工程实现,面向合同、金融风控材料、工程管养规范等复杂非结构化文档,提供上传、预处理、OCR、版面理解、语义抽取、合规审查、人工纠错和多格式导出能力。
- 自适应预处理:基于 OpenCV 完成灰度化、去噪、对比度增强和轻量倾斜校正。
- OCR 与版面分析:优先调用 PaddleOCR,PDF 解析失败时回退到 PyMuPDF 文本块提取。
- 视觉要素检测:检测疑似公章、表格/技术参数区、强制性条款区域,并保留坐标用于溯源。
- 语义抽取与合规审查:可在分析前选择 DeepSeek、Qwen、OpenAI 兼容模型,或不使用大模型仅运行规则抽取。
- 动态字段抽取:不固定“甲方、乙方、金额”,而是面向法律、金融、管养规范等文档动态识别关键信息。
- 人机协同纠错:前端支持字段编辑、原图 Bounding Box 高亮、点击框跳转原始文本、原始文本手动编辑。
- 效能评估:内置版面检测、字段抽取、JSON 合规率、Prompt 消融实验等图表化评估页面。
- 多格式导出:支持 JSON、Word、PDF。
doc-parser-system/
main.py # FastAPI 入口与接口定义
core/config.py # 配置、路径、环境变量
models/schemas.py # 任务、版面块、动态字段、风险等数据模型
services/
document_service.py # 上传保存、PDF/文本/图片渲染
preprocess_service.py # 图像增强和倾斜校正
ocr_service.py # PaddleOCR 与 PDF 文本回退
layout_service.py # 视觉要素和版式块检测
llm_service.py # 多模型调用、动态字段抽取与规则降级
compliance_service.py # 合规规则审查
export_service.py # JSON/Word/PDF 导出
pipeline.py # 端到端解析流水线
job_store.py # 任务进度与结果持久化
frontend/ # Vue 3 + Element Plus 工作台
storage/ # 上传、预览、结果、导出文件
后端:
.\venv\Scripts\python.exe -m uvicorn main:app --host 127.0.0.1 --port 8000前端:
cd frontend
npm run dev -- --host 127.0.0.1 --port 5173访问 http://127.0.0.1:5173。
复制 .env.example 中的变量到系统环境变量。使用 DeepSeek 时至少配置:
$env:DEEPSEEK_API_KEY="你的 Key"未配置 Key 时系统会自动使用规则抽取模式,仍可完成演示。
也可以配置 QWEN_API_KEY 或 OPENAI_COMPATIBLE_API_KEY、OPENAI_COMPATIBLE_BASE_URL,前端会展示对应模型选项。
POST /api/documents:批量上传文档并创建后台解析任务。GET /api/jobs/{job_id}:查询任务进度和解析结果。GET /api/jobs/{job_id}/events:SSE 实时推送任务状态。PATCH /api/jobs/{job_id}/corrections:保存人工校验后的结构化结果。GET /api/jobs/{job_id}/export/{format}:导出json、docx或pdf。GET /api/model-options:获取可选大模型策略。GET /api/evaluation/summary:获取效能评估图表数据。