Name Last Update
..
README.md Loading commit data...

文档解析工具 - 待处理文档目录

详细文档: 文档解析系统架构


📁 目录说明

此文件夹用于存放需要解析的保险产品文档,解析脚本将自动读取并生成配置。

docs/to-parse/
├── preprocessed/           # 豆包预处理过的 MD 文件(快速通道)
├── raw/                    # 原始 PDF/DOCX 文件(保留原格式)
├── 产品说明书.pdf          # 根目录文档(兼容)
└── archived/               # 已处理文档归档(按日期)

🚀 使用方法

方案选择

方案 适用场景 速度 准确率 人工干预
豆包预处理 少量文档、复杂格式 ⚡ 快 ✅ 高 需要手动转换
直接解析 大量文档、标准格式 🐢 慢 ⚠️ 中 完全自动
混合方案 批量+特殊文档 🚀 中 ✅ 高 灵活选择

1. 添加文档

方案 A:豆包预处理(推荐用于少量文档)

适用场景:1-5 个文档,或包含扫描件、复杂格式

步骤

  1. 上传到豆包

    将 PDF/图片上传到豆包 AI
    
  2. 使用提示词转换

    请将这份保险产品文档转换为 Markdown 格式,要求:
    1. 保留原文档的表格结构
    2. 保留产品名称、缴费年期、年龄范围等关键信息
    3. 使用 Markdown 表格展示费率信息
    4. 输出纯 Markdown 文本,不要添加额外解释
    
  3. 下载并放置

    # 下载豆包生成的 MD 文件,放到 preprocessed 目录
    docs/to-parse/preprocessed/产品说明书.md
    
  4. 执行解析

    pnpm parse:docs -- --file="产品说明书.md"
    

优势

  • ⚡ 解析速度提升 3-5 倍
  • ✅ 准确率更高,尤其适合复杂格式
  • 🔄 支持扫描件 OCR

方案 B:直接解析(推荐用于批量文档)

适用场景:10+ 个标准格式文档

步骤

将 PDF/Word 文档复制到 raw/ 目录:

docs/to-parse/raw/产品说明书.pdf

然后执行解析命令。


2. 执行解析

2. 执行解析

# 查看待处理的文档列表
pnpm parse:docs -- --list

# 查看配置状态
pnpm parse:docs -- --status

# 解析所有文档(dry-run 模式,仅生成待审核文件)
pnpm parse:docs

# 解析指定文档
pnpm parse:docs -- --file="产品说明书.pdf"

# 应用审核通过的配置
pnpm parse:docs -- --apply=计划书模版4

# 预览应用配置(不实际修改)
pnpm parse:docs -- --apply=计划书模版4 --dry-run

3. 查看结果

待审核文件(按原始文档名分目录):

docs/parse-audit/pending/<原始文档名>/

原始文档归档

docs/to-parse/archived/YYYY-MM-DD/

🔗 功能链路

                    ┌─────────────────────────────────┐
                    │       文档来源选择               │
                    └─────────────────────────────────┘
                                 │
            ┌────────────────────┴────────────────────┐
            ▼                                         ▼
    ┌───────────────┐                         ┌───────────────┐
    │  豆包预处理    │                         │  原始文档      │
    │  (手动)       │                         │  (PDF/DOCX)  │
    └───────────────┘                         └───────────────┘
            │                                         │
            ▼                                         ▼
    ┌───────────────┐                         ┌───────────────┐
    │ preprocessed/ │                         │    raw/       │
    │  *.md         │                         │  *.pdf/*.docx │
    └───────────────┘                         └───────────────┘
            │                                         │
            └────────────────────┬────────────────────┘
                                 ▼
                    ┌─────────────────────────────────┐
                    │    统一解析入口 (parse:docs)      │
                    │    • 自动检测来源                │
                    │    • 预处理文档跳过 markitdown   │
                    │    • 原始文档使用 markitdown     │
                    └─────────────────────────────────┘
                                 │
                                 ▼
                    ┌─────────────────────────────────┐
                    │    多产品检测与分割              │
                    │  (product-splitter.js)          │
                    └─────────────────────────────────┘
                                 │
                                 ▼
                    ┌─────────────────────────────────┐
                    │    智能字段提取                  │
                    │ (smart-field-extractor.js)      │
                    └─────────────────────────────────┘
                                 │
                                 ▼
                    ┌─────────────────────────────────┐
                    │   生成配置代码与审核文件         │
                    └─────────────────────────────────┘
                                 │
                                 ▼
                    ┌─────────────────────────────────┐
                    │      人工审核确认                │
                    │   (pending → approved)           │
                    └─────────────────────────────────┘
                                 │
                                 ▼
                    ┌─────────────────────────────────┐
                    │    应用到 plan-templates.js      │
                    └─────────────────────────────────┘

🧋 核心能力

能力 说明 状态
多格式解析 支持 PDF、DOCX、TXT、MD
多产品识别 自动识别并分割多产品文档
智能字段提取 8 种匹配模式提取配置字段
人工审核流程 生成人类可读的审核文件
配置自动应用 支持一键应用审核通过配置
AI 增强解析 支持接入 AI 服务 🚧 待启用

📋 智能提取的字段

字段 提取方式 默认值
product_name 标题正则匹配 文件名
product_type 关键词内容推断 savings
currency 货币符号统计 USD
payment_periods 智能列表提取 ['整付', '3年', '5年']
age_range 范围值提取 {min: 0, max: 75}
insurance_period 直接匹配 '终身'
withdrawal_modes 列表提取(储蓄类) ['年龄指定金额', '最高固定金额']
withdrawal_periods 列表提取(储蓄类) ['1年', '3年', '5年', '10年']

📋 支持的文档格式

格式 扩展名 转换方式
PDF .pdf markitdown CLI 或 pdf-parse
Word .docx mammoth 库
Word(旧版) .doc ❌ 不支持,需转换为 .docx
文本 .txt, .md 直接读取

🧪 测试样本

用于回归测试的样本文档建议放在此目录,命名规则建议包含产品名与类型:

docs/to-parse/
├── fixtures-life-insurance-sample.pdf
├── fixtures-critical-illness-sample.docx
└── fixtures-savings-multiproduct.pdf   # 多产品文档测试

📊 审计日志

每次解析都会记录审计日志,便于回溯与排查:

docs/parsed-backup/parse-audit.jsonl      # 解析审计日志
docs/parsed-backup/backup-log.jsonl       # 配置变更日志

🔧 配置 AI 服务(可选)

当前使用基于规则的提取方式,如需启用 AI 增强解析:

# 1. 安装依赖
pnpm add openai anthropic

# 2. 配置 .env
AI_SERVICE_TYPE=openai
OPENAI_API_KEY=sk-xxx
OPENAI_MODEL=gpt-4-turbo

# 3. 检查状态
pnpm parse:docs -- --status

⚠️ 注意事项

  1. 文档命名:建议使用有意义的文件名,方便识别产品
  2. 预处理目录
    • preprocessed/ - 放置豆包转换的 MD 文件
    • raw/ - 放置原始 PDF/DOCX 文件
    • 根目录 - 兼容旧版本,可直接放置文档
  3. 手动审核:生成后请重点核对产品名称、币种、缴费年期、年龄范围
  4. 版本控制:生成的配置会自动备份到 docs/parsed-backup/
  5. 二次解析:需要重新解析时,从 archived/ 目录移回文档即可
  6. 多产品文档:一个文档包含多个产品时,会为每个产品生成独立的审核文件
  7. MD 文件优化:预处理的 MD 文件会跳过 markitdown,解析速度更快

📚 相关文档