Skip to content

SenryLee/rule-harness

Repository files navigation

version python react fastapi CI license

Rule Harness — 法律规则梳理平台

上传法律文件 → 智能分类 → 自动抽取规则 → 法规印证 → 一键生成可部署的 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 │
└─────────────────────────────────────────────────────────────────────┘

功能模块

1. 智能文档分类

上传即分类,无需手动选择来源类别:

拖入文件 → 关键词预筛(0ms) → LLM 精确分类(默认) → 自动映射管道路由

系统输出三个维度:文档体裁(法律法规 / 监管司法文件 / 裁判文书 / 合同文本 / 企业内部文件 / 已有规则库 / 专业参考资料)、权威层级(L1 国家立法 → L5 实践参考,决定冲突时的优先级)、特征标签is_redline / is_case / is_template / has_comments / has_revisions / is_scanned 等,驱动管道路由)。

2. 规则抽取引擎

解析 → 五管道并行抽取 → 去重 → 置信度评分 → 质量闸门 → 合并入库 → 多格式导出

五条抽取管道

管道 用途
P1 正文抽取 从合同/法规正文中逐段提取规则
P2 批注抽取 从 Word 批注中提取审查意见
P3 修订对比 从修订标记中推断规则变更
P4 谈判红线 从红线清单中提取底线(三阶降级梯)
P5 案例反推 从裁判文书中反推事前审查规则
direct 直通 已有 CSV/Excel 规则表 1:1 转换

防幻觉与质量保障(核心亮点)

  • 原文锚定:每条规则必须给出可在原文定位的摘录,分 exact / fuzzy / unanchored 三档溯源
  • 语义忠实度:关键法律术语与主体名词回溯原文,偏离率超标即降级
  • 数值忠实度门:金额/比例/期限等数字逐一与原文核对
  • 语态校验:软语态原文("可以/建议")不得写成强义务("必须")
  • 可执行性闸门:流程类/方法论/边界说明自动分流,主表只留可文本审查的规则
  • 五重门置信度:自评分 + 一致性采样 + 结构校验 + 冲突检测 + 忠实度加权
  • 五级来源优先级去重:法规 > 公司红线 > 内部制度 > 标准条款库 > 历史合同

3. 合规知识库与规则印证

  • M1 入库:法规文件夹批量上传(保留目录结构、自适应分批、断点续传)
  • M2 检索:云嵌入 + 混合检索(SQLite FTS5 全文 + 向量相似度 + RRF 融合)
  • M3 印证:抽取出的规则逐条与法规库比对,输出支持/冲突/未覆盖判定与引用依据

4. 文件智能归档

拖拽上传混合文件 → 规则匹配分类(零 API)→ 可选 LLM 二次分类 → 预览调整 → 确认归档到结构化目录(法律法规 / 合同文本 / 裁判文书 / 内部制度 / 已有规则 / 行业资料),并生成 _归档清单.json 索引。

5. Skill 生成器

将批次规则打包为符合法务 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

docker build -t rule-harness .
docker run -p 8765:8765 -e PORT=8765 rule-harness

Render 一键部署

仓库包含 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

API 概览

方法 路径 说明
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 五管道抽取、去重、置信度评分、合并入库、多格式导出

License

MIT

About

AI 驱动的法律合同规则提取工具 — 从异构法律文档中自动抽取结构化审查规则

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages