上传法律文件 → 智能分类 → 自动抽取规则 → 法规印证 → 一键生成可部署的 AI Skill
从混合法律文档中提取结构化、可溯源、防幻觉的审查规则,并打包为可直接加载的法务 AI 平台 Skill。
在线体验 | Render 免费实例首次访问可能需等待几十秒唤醒
| 模块 | 功能 | 状态 |
|---|---|---|
| 智能文档分类 | LLM 优先的两阶段分类:7 种文档体裁 + 5 级权威层级 + 特征标签 | v3.1 稳定 |
| 规则抽取引擎 | 五条并行管道,从合同/法规/裁判文书中抽取结构化规则 | v2.0 稳定 |
| 防幻觉体系 | 摘录锚定 + 语义忠实度 + 数值忠实度 + 语态校验 + 可执行性闸门 | v2.0 稳定 |
| 合规知识库 | 法规入库 → 云嵌入 + 混合检索(FTS5 + 向量 + RRF)→ 规则⇄法规印证 | v3.2 新增 |
| 文件智能归档 | 上传文件自动识别类型,整理到结构化目录 | v3.0 稳定 |
| Skill 生成器 | 将抽取的规则组装为完整的法务 AI Skill ZIP 包 | v3.0 稳定 |
┌─────────────────────────────────────────────────────────────────────┐
│ Frontend (React 18 + Vite) │
│ Dashboard · 任务工作台 · 规则库 · 法规知识库 · 归档 · 抽取方案 │
│ src/api/ 统一 API 层 │
└─────────────────────────────┬───────────────────────────────────────┘
│ HTTP / SSE
┌─────────────────────────────▼───────────────────────────────────────┐
│ Backend (FastAPI + asyncio) │
│ │
│ routes/ batch · archive · compliance · folder · rule · config │
│ │ │
│ ▼ │
│ orchestrator/ ── run_batch 主流程(v3.3 拆分为 12 个阶段模块) │
│ parsing → pipeline_runner → finalize(质量闸门) → merge → │
│ exports → persist │
│ │ │
│ ├─ parsers/ DOCX / DOC / PDF(OCR) / Excel / TXT │
│ ├─ pipelines/ P1 正文 · P2 批注 · P3 修订 · P4 红线 · │
│ │ P5 案例 · direct 直通 │
│ ├─ compliance/ 知识库入库 · 嵌入检索 · 规则印证 │
│ └─ skill_builder 规则 → 六维度 → 场景拆分 → ZIP │
│ │
│ llm.py(主/备路由·限速·退避) · storage.py(SQLite WAL) · state.py │
└─────────────────────────────────────────────────────────────────────┘
上传即分类,无需手动选择来源类别:
拖入文件 → 关键词预筛(0ms) → LLM 精确分类(默认) → 自动映射管道路由
系统输出三个维度:文档体裁(法律法规 / 监管司法文件 / 裁判文书 / 合同文本 / 企业内部文件 / 已有规则库 / 专业参考资料)、权威层级(L1 国家立法 → L5 实践参考,决定冲突时的优先级)、特征标签(is_redline / is_case / is_template / has_comments / has_revisions / is_scanned 等,驱动管道路由)。
解析 → 五管道并行抽取 → 去重 → 置信度评分 → 质量闸门 → 合并入库 → 多格式导出
五条抽取管道
| 管道 | 用途 |
|---|---|
| P1 正文抽取 | 从合同/法规正文中逐段提取规则 |
| P2 批注抽取 | 从 Word 批注中提取审查意见 |
| P3 修订对比 | 从修订标记中推断规则变更 |
| P4 谈判红线 | 从红线清单中提取底线(三阶降级梯) |
| P5 案例反推 | 从裁判文书中反推事前审查规则 |
| direct 直通 | 已有 CSV/Excel 规则表 1:1 转换 |
防幻觉与质量保障(核心亮点)
- 原文锚定:每条规则必须给出可在原文定位的摘录,分 exact / fuzzy / unanchored 三档溯源
- 语义忠实度:关键法律术语与主体名词回溯原文,偏离率超标即降级
- 数值忠实度门:金额/比例/期限等数字逐一与原文核对
- 语态校验:软语态原文("可以/建议")不得写成强义务("必须")
- 可执行性闸门:流程类/方法论/边界说明自动分流,主表只留可文本审查的规则
- 五重门置信度:自评分 + 一致性采样 + 结构校验 + 冲突检测 + 忠实度加权
- 五级来源优先级去重:法规 > 公司红线 > 内部制度 > 标准条款库 > 历史合同
- M1 入库:法规文件夹批量上传(保留目录结构、自适应分批、断点续传)
- M2 检索:云嵌入 + 混合检索(SQLite FTS5 全文 + 向量相似度 + RRF 融合)
- M3 印证:抽取出的规则逐条与法规库比对,输出支持/冲突/未覆盖判定与引用依据
拖拽上传混合文件 → 规则匹配分类(零 API)→ 可选 LLM 二次分类 → 预览调整 → 确认归档到结构化目录(法律法规 / 合同文本 / 裁判文书 / 内部制度 / 已有规则 / 行业资料),并生成 _归档清单.json 索引。
将批次规则打包为符合法务 AI 平台规范的 Skill(Markdown + CSV):六维度分组(主体资格 / 付款条件 / 违约责任 / 知识产权 / 保密 / 争议解决)→ 按主体立场拆分 → 模板填充 → ZIP 下载,可直接部署到 Claude 等平台。
直接访问 rules.448898.xyz(Render 免费实例,冷启动需几十秒)。
git clone https://github.com/SenryLee/rule-harness.git
cd rule-harness
pip install -e ".[dev]" # 后端依赖
cd frontend && npm install && cd ..
./start.sh # 后端 :8765 + 前端 :5199首次运行自动生成 data/config.yaml,在「系统设置 → 模型配置」填入 API Key 即可;也可通过环境变量 DASHSCOPE_API_KEY 注入(前端永不接触明文 Key)。
docker build -t rule-harness .
docker run -p 8765:8765 -e PORT=8765 rule-harness仓库包含 render.yaml,fork 后在 Render Dashboard 选择 Blueprint 即可(push 到 main 自动部署)。
| 提供方 | Provider 值 | 备注 |
|---|---|---|
| DeepSeek | deepseek |
默认推荐,性价比高 |
| 通义千问 (DashScope) | openai |
兼容 OpenAI 接口 |
| 小米 MiMo | mimo |
自动关闭 thinking,稳定返回 JSON |
| OpenAI | openai |
GPT-4o 等 |
LLM 路由器内建:主/备双路由自动切换、RPM/TPM 限速、429 全局暂停 + Retry-After 解析、指数退避 + 抖动。
.
├── backend/
│ ├── app.py # FastAPI 入口(lifespan 初始化 / CORS / 静态托管)
│ ├── orchestrator/ # 批次编排(v3.3 按执行阶段拆分)
│ │ ├── run.py # run_batch 主流程 + 批次摘要
│ │ ├── progress.py # BatchProgress / BatchResult + 管道判定
│ │ ├── parsing.py # 文件 → ParsedDocument
│ │ ├── pipeline_runner.py # 管道并行执行
│ │ ├── finalize.py # 质量闸门(忠实度/短要求增补/处置统计)
│ │ ├── merge_stage.py · exports_stage.py · persist_stage.py
│ │ └── scope.py · overrides.py · serializers.py · constants.py
│ ├── parsers/ # 文件解析(v3.3 按格式拆分)
│ │ ├── models.py # ContentBlock / ParsedDocument / RuleCandidate
│ │ ├── docx_parser.py · doc_parser.py · pdf_parser.py
│ │ └── excel_parser.py · txt_parser.py · common.py
│ ├── pipelines/ # P1-P5 + direct 六条抽取管道
│ ├── compliance/ # 合规知识库(入库/嵌入/检索/印证)
│ ├── routes/ # API 路由(batch/archive/compliance/...)
│ ├── prompts/ # 抽取与校验提示词(单一事实源)
│ ├── llm.py # LLM 路由器
│ ├── classifier.py # 两阶段文档分类
│ ├── dedupe.py · confidence.py · fidelity.py · merger.py
│ ├── anchor.py · semantic_fidelity.py · voice_check.py
│ ├── operability_gate.py · normative_gate.py · genericize.py
│ ├── skill_builder.py # Skill ZIP 组装
│ ├── storage.py # SQLite(WAL)持久层
│ └── tests/ # 34 个测试文件(含回归样本)
├── frontend/src/
│ ├── api/ # API 层(v3.3 按域拆分:core/batches/compliance/...)
│ ├── pages/ # Dashboard / TaskNew / TaskDetail / KnowledgeBase / ...
│ ├── components/ # Sidebar / CommandPalette / ComplianceVerifyPanel
│ └── context/AppContext.tsx
├── docs/ # 设计文档 / Dify 接入 / 技术亮点
├── profiles/ # 行业预设(金融 / 医药 / IT / 建工 / ...)
├── samples/ # 演示样本
├── .github/workflows/ci.yml # CI:pytest + tsc + vite build
├── Dockerfile · render.yaml · start.sh
└── pyproject.toml
| 方法 | 路径 | 说明 |
|---|---|---|
POST |
/api/batches |
创建批次,上传文件并启动抽取 |
GET |
/api/batches/{id}/progress/stream |
SSE 实时进度推送 |
GET |
/api/batches/{id}/rules |
规则列表(分页/多维过滤) |
GET |
/api/batches/{id}/exports/main-csv |
下载主 CSV(另有含定位版/自定义字段版) |
POST |
/api/batches/{id}/generate-skill |
生成 Skill ZIP |
POST |
/api/compliance/upload |
法规知识库入库 |
POST |
/api/compliance/verify |
规则 ⇄ 法规印证 |
POST |
/api/archive/classify |
文件归档预分类 |
POST |
/api/folders/{id}/merge |
跨任务规则合并去重 |
完整接口见 backend/routes/。
pytest -q # 后端测试(backend/tests,34 个文件)
cd frontend && npx tsc --noEmit # 前端类型检查
npm run build # 生产构建CI(GitHub Actions)在每次 push/PR 自动执行以上全部检查。
| 版本 | 主要变更 |
|---|---|
| v3.3.0 | 架构治理:orchestrator/parsers/api.ts 拆分为阶段/域模块;路由阻塞操作全面 async 化(asyncio.to_thread);lifespan 迁移;持久化 fail-fast;CI 上线;删除 3,500 行遗留死代码 |
| v3.2.0 | 合规知识库(入库/混合检索/规则印证);Skill 一键生成回归任务详情页;分阶段加权进度条;抽取并发提升约 2× |
| v3.1.0 | LLM 优先文档分类(7 体裁 + 5 层级 + 特征标签),取代手动来源选择 |
| v3.0.0 | 文件智能归档、Skill ZIP 生成器(六维度 + 场景拆分) |
| v2.0.0 | 防幻觉改造(摘录锚定/语义忠实度/通用化重写)、路由重构、文档画像、任务模式 |
| v1.1 | 忠实度门、语态校验、占位规则分流、范围匹配 |
| v1.0 | 五管道抽取、去重、置信度评分、合并入库、多格式导出 |
MIT