# OCR-LM-AttachmentClassifier **Repository Path**: da-ji/ocr-lm-attachment-classifier ## Basic Information - **Project Name**: OCR-LM-AttachmentClassifier - **Description**: 实现OCR+大模型的多轮判断附件类型以及跨页合并附件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-08 - **Last Updated**: 2026-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OCR + LLM Attachment Classifier 这是按照 `技术方案.md` 落地的 Python 项目骨架和核心实现。它把乱序附件统一拆成 `PageUnit`,调用在线 PaddleOCR,结合可配置规则和 LangChain 大模型判断附件类型,再做跨页合并、排序和复核。 ## 快速开始 ```bash python -m venv .venv source .venv/bin/activate pip install -e ".[dev]" cp .env.example .env uvicorn attachment_classifier.api.main:app --reload ``` CLI 调用: ```bash attachment-classifier classify ./some.pdf ./id-card.jpg --output data/outputs/result.json ``` ## 主要模块 - `preprocessing`: PDF、图片、Excel、Word 的统一拆解。 - `ocr`: 百度 PaddleOCR 在线 API 适配层。 - `rules`: YAML 可配置规则引擎,负责确定性初判和字段抽取。 - `llm`: LangChain 多轮判断适配,输出结构化 JSON。 - `grouping`: 候选池、跨页关系图、排序和人工复核标记。 - `vector`: Chroma 页面向量索引边界。 - `db`: MySQL 表模型和初始化。 - `queue`: Redis Queue 异步任务入口。 - `api`: FastAPI 上传与任务接口。 ## 注意 百度 OCR 和大模型厂商的在线 API 字段可能因购买的具体产品而不同,`BaiduPaddleOCRClient` 和 `LangChainDocumentReasoner` 已集中封装,实际对接时通常只需要调整这两个类的请求/响应映射。 # 核心代码 - src/attachment_classifier/pipeline.py:端到端流水线 - src/attachment_classifier/preprocessing/loader.py:PDF/图片/Excel/Word 拆解 为 PageUnit - src/attachment_classifier/ocr/baidu_paddle.py:百度 PaddleOCR 在线 API 适配 - src/attachment_classifier/rules/engine.py:YAML 可配置规则引擎 - src/attachment_classifier/llm/reasoner.py:LangChain 大模型多轮判断 - src/attachment_classifier/grouping/graph.py:跨页关系图、合并、排序、复核标 记 - src/attachment_classifier/api/main.py:FastAPI 上传分类接口 - configs/rules.yaml:合同、发票、身份证、社保卡、招投标初始规则 - docker-compose.yml:MySQL、Redis、Chroma 配置入口在 .env.example,后续把你的百度 OCR endpoint/token 和大模型 API key/ base_url 填进去即可。API 可用 POST /classify 上传文件,CLI 可用: attachment-classifier classify ./附件1.pdf ./附件2.jpg --output data/outputs/result.json