chore: initial commit — leaudit-platform project skeleton
17-table PostgreSQL schema with full Chinese column comments, FastAPI project structure (admin/common/modules), DSL rule files, and schema migration scripts.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# 借款合同(反例:利率超法定上限)
|
||||
|
||||
**合同编号**:JK2024-BAD-001
|
||||
|
||||
## 第一条 借贷双方
|
||||
|
||||
**借款人**:张三
|
||||
身份证号:110101197001011234
|
||||
|
||||
**出借人**:李四
|
||||
身份证号:310102198505051234
|
||||
|
||||
## 第二条 借款金额
|
||||
|
||||
借款本金:人民币 500,000.00 元
|
||||
大写:伍拾万元整
|
||||
|
||||
借款日期:2024 年 6 月 1 日
|
||||
还款日期:2025 年 6 月 1 日
|
||||
|
||||
## 第三条 利率(违法条款)
|
||||
|
||||
**年利率:25%(0.25)**
|
||||
|
||||
本利率远超法定上限(LPR × 4 倍约 13.8%),属于高利贷。
|
||||
根据最高人民法院 2020 年修正司法解释,超出部分法院不予保护。
|
||||
|
||||
## 第四条 担保
|
||||
|
||||
担保人:王五,身份证:440103199212121234,担保金额:500,000 元。
|
||||
|
||||
## 第五条 违约责任(违法条款)
|
||||
|
||||
借款人违约的,**未付利息自动计入本金继续计息(利滚利)**。
|
||||
逾期每日按 0.5% 计算违约金,上不封顶。
|
||||
|
||||
## 第六条 借款用途
|
||||
|
||||
借款用于借款人个人短期资金周转。
|
||||
|
||||
---
|
||||
|
||||
借款人签字:张三 日期:2024-06-01
|
||||
出借人签字:李四 日期:2024-06-01
|
||||
|
||||
(本合同有两处违法:1) 利率超过 LPR×4 上限;2) 利滚利条款。
|
||||
用于测试 JK-002 和 JK-005 的 fail 路径)
|
||||
@@ -0,0 +1,93 @@
|
||||
# 借款合同 — 多担保人场景
|
||||
|
||||
**合同编号**:JK2024-MG-001
|
||||
|
||||
## 第一条 借贷双方
|
||||
|
||||
**借款人**:某某贸易有限公司(法定代表人:张三)
|
||||
统一信用代码:91310000MA1K3H5K8L
|
||||
身份证号(法定代表人):110101197001011234
|
||||
|
||||
**出借人**:李四
|
||||
身份证号:310102198505051234
|
||||
|
||||
## 第二条 借款金额
|
||||
|
||||
借款本金:人民币 5,000,000.00 元
|
||||
大写:伍佰万元整
|
||||
|
||||
借款日期:2024 年 4 月 1 日
|
||||
还款日期:2026 年 4 月 1 日
|
||||
借款期限:2 年
|
||||
|
||||
## 第三条 利率
|
||||
|
||||
年利率:12%(未超过 LPR × 4 倍上限 13.8%)
|
||||
|
||||
## 第四条 还款方式
|
||||
|
||||
分期还款,每季度末偿还本金 625,000.00 元和当期利息。
|
||||
|
||||
## 第五条 担保条款(5 位担保人)
|
||||
|
||||
### 担保人 1:王五
|
||||
- 身份证:440103199212121234
|
||||
- 住所:广州市越秀区
|
||||
- 担保金额:人民币 1,500,000.00 元
|
||||
- 担保方式:连带责任保证
|
||||
|
||||
### 担保人 2:赵六
|
||||
- 身份证:330102198811111234
|
||||
- 住所:杭州市上城区
|
||||
- 担保金额:人民币 1,200,000.00 元
|
||||
- 担保方式:连带责任保证
|
||||
|
||||
### 担保人 3:孙七
|
||||
- 身份证:510104199405051234
|
||||
- 住所:成都市武侯区
|
||||
- 担保金额:人民币 1,000,000.00 元
|
||||
- 担保方式:连带责任保证
|
||||
|
||||
### 担保人 4:周八
|
||||
- 身份证:320102199007071234
|
||||
- 住所:南京市玄武区
|
||||
- 担保金额:人民币 800,000.00 元
|
||||
- 担保方式:一般保证
|
||||
|
||||
### 担保人 5:吴九
|
||||
- 身份证:370102198503031234
|
||||
- 住所:济南市历下区
|
||||
- 担保金额:人民币 700,000.00 元
|
||||
- 担保方式:一般保证
|
||||
|
||||
**担保总额**:人民币 5,200,000.00 元,超出借款本金 200,000.00 元(覆盖充足)。
|
||||
|
||||
## 第六条 违约责任
|
||||
|
||||
借款人逾期还款的,按每日 0.03% 支付违约金。违约金总额不超过借款本金的 20%。
|
||||
严禁任何形式的利滚利、复利、砍头息。
|
||||
|
||||
## 第七条 借款用途
|
||||
|
||||
借款用于借款人经营的某某贸易有限公司对外采购业务资金周转。
|
||||
|
||||
## 第八条 争议解决
|
||||
|
||||
提交上海仲裁委员会仲裁。
|
||||
|
||||
---
|
||||
|
||||
**签订日期**:2024 年 4 月 1 日
|
||||
|
||||
借款人(签字盖章):某某贸易有限公司
|
||||
[盖章: 某某贸易有限公司合同专用章]
|
||||
法定代表人签字:[签名: 张三]
|
||||
|
||||
出借人(签字):[签名: 李四]
|
||||
[盖章: 李四个人签章]
|
||||
|
||||
担保人 1 签字:[签名: 王五] 担保人 2 签字:[签名: 赵六]
|
||||
担保人 3 签字:[签名: 孙七] 担保人 4 签字:[签名: 周八]
|
||||
担保人 5 签字:[签名: 吴九]
|
||||
|
||||
(本样本用于测试 JK-003 / JK-004 的 multi_entity 遍历和聚合能力)
|
||||
@@ -0,0 +1,97 @@
|
||||
# 借款合同
|
||||
|
||||
**合同编号**:JK2024-000456
|
||||
|
||||
## 第一条 借贷双方
|
||||
|
||||
**借款人**:张三
|
||||
身份证号:110101197001011234
|
||||
住所:北京市东城区东华门大街 1 号
|
||||
|
||||
**出借人**:李四
|
||||
身份证号:310102198505051234
|
||||
住所:上海市黄浦区南京东路 100 号
|
||||
|
||||
## 第二条 借款用途
|
||||
|
||||
借款用于借款人经营的某某贸易有限公司日常经营周转,严禁用于赌博、非法经营或其他违法活动。
|
||||
|
||||
## 第三条 借款金额及期限
|
||||
|
||||
**借款本金**:人民币 1,000,000.00 元
|
||||
**大写**:壹佰万元整
|
||||
|
||||
**借款日期**:2024 年 4 月 1 日
|
||||
**还款日期**:2025 年 4 月 1 日
|
||||
**借款期限**:1 年
|
||||
|
||||
## 第四条 利率
|
||||
|
||||
年利率:10%(0.10)
|
||||
|
||||
本利率未超过合同签订时一年期 LPR 的四倍,符合《最高人民法院关于审理民间借贷
|
||||
案件适用法律若干问题的规定》(2020 修正)第 25 条之规定。
|
||||
|
||||
## 第五条 还款方式
|
||||
|
||||
一次性还本付息。借款人应在还款日当天向出借人支付本金和利息共计 1,100,000.00 元。
|
||||
|
||||
## 第六条 担保条款
|
||||
|
||||
本借款由以下三位担保人提供连带责任保证:
|
||||
|
||||
**担保人一**:
|
||||
- 姓名:王五
|
||||
- 身份证号:440103199212121234
|
||||
- 住所:广州市越秀区北京路 50 号
|
||||
- 担保金额:人民币 500,000.00 元
|
||||
- 担保方式:连带责任保证
|
||||
- 担保期限:自借款日起至 2027 年 4 月 1 日
|
||||
|
||||
**担保人二**:
|
||||
- 姓名:赵六
|
||||
- 身份证号:330102198811111234
|
||||
- 住所:杭州市上城区解放路 30 号
|
||||
- 担保金额:人民币 500,000.00 元
|
||||
- 担保方式:连带责任保证
|
||||
- 担保期限:自借款日起至 2027 年 4 月 1 日
|
||||
|
||||
**担保人三**:
|
||||
- 姓名:孙七
|
||||
- 身份证号:510104199405051234
|
||||
- 住所:成都市武侯区人民南路 80 号
|
||||
- 担保金额:人民币 300,000.00 元
|
||||
- 担保方式:一般保证
|
||||
- 担保期限:自借款日起至 2027 年 4 月 1 日
|
||||
|
||||
**担保总额**:人民币 1,300,000.00 元(覆盖借款本金)
|
||||
|
||||
## 第七条 违约责任
|
||||
|
||||
借款人逾期还款的,按每日 0.05% 向出借人支付违约金。
|
||||
**违约金金额**:最高不超过人民币 200,000.00 元(借款本金的 20%)。
|
||||
严禁利滚利和复利计算,利息不计入本金。
|
||||
|
||||
## 第八条 争议解决
|
||||
|
||||
本合同纠纷由双方协商解决。协商不成的,提交北京仲裁委员会仲裁。
|
||||
|
||||
## 第九条 其他
|
||||
|
||||
本合同一式六份,借贷双方及三位担保人各执一份,经各方签字生效。
|
||||
|
||||
**签订日期**:2024 年 4 月 1 日
|
||||
|
||||
---
|
||||
|
||||
借款人(签字):[签名: 张三] 日期:2024-04-01
|
||||
|
||||
出借人(签字):[签名: 李四] 日期:2024-04-01
|
||||
|
||||
担保人一(签字):[签名: 王五] 日期:2024-04-01
|
||||
|
||||
担保人二(签字):[签名: 赵六] 日期:2024-04-01
|
||||
|
||||
担保人三(签字):[签名: 孙七] 日期:2024-04-01
|
||||
|
||||
[盖章: 借款人张三] [盖章: 出借人李四]
|
||||
@@ -0,0 +1,322 @@
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# 借款合同 · 回归测试用例
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# 配套文件:contract_loan.yaml
|
||||
# 重点展示:multi_entity / derived fields / external 数据源 mock
|
||||
|
||||
target: contract_loan.yaml
|
||||
|
||||
# 外部数据源的 mock 值(替代真实 API 调用)
|
||||
external_mocks:
|
||||
lpr_lookup:
|
||||
"1y": 0.0345 # 当前 1 年 LPR = 3.45%
|
||||
# 推导:LPR_4x = 0.0345 * 4 = 0.138
|
||||
|
||||
fixtures:
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-001 · 借款主体合法性
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-001:
|
||||
- name: 已执行-借贷双方合法
|
||||
phase: executed
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
借款人身份证: "110101197001011234"
|
||||
出借人姓名: 李四
|
||||
出借人身份证: "310102198505051234"
|
||||
expected: pass
|
||||
|
||||
- name: 已执行-借款人身份证校验失败
|
||||
phase: executed
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
借款人身份证: "110101197001011230" # 末位错
|
||||
出借人姓名: 李四
|
||||
出借人身份证: "310102198505051234"
|
||||
expected: fail
|
||||
|
||||
- name: 草稿-只有姓名
|
||||
phase: draft
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
出借人姓名: 李四
|
||||
expected: pass # 草稿阶段身份证待补
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-002 · 利率不超过 LPR × 4(核心规则)
|
||||
# 依赖 external.lpr_lookup mock:LPR_4x = 0.138
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-002:
|
||||
- name: 年利率 10% 合规
|
||||
phase: executed
|
||||
extract:
|
||||
年利率: 0.10
|
||||
# derived.LPR_4x = 0.138(mock 值)
|
||||
expected: pass
|
||||
|
||||
- name: 年利率 20% 超限
|
||||
phase: executed
|
||||
extract:
|
||||
年利率: 0.20
|
||||
expected: fail
|
||||
|
||||
- name: 年利率正好等于 LPR×4(边界)
|
||||
phase: executed
|
||||
extract:
|
||||
年利率: 0.138
|
||||
expected: fail # money.lt 严格小于
|
||||
|
||||
- name: 年利率 0.137 边界内
|
||||
phase: executed
|
||||
extract:
|
||||
年利率: 0.137
|
||||
expected: pass
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-003 · 所有担保人身份合法(multi-entity 核心测试)
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-003:
|
||||
- name: 三担保人全合法
|
||||
phase: executed
|
||||
extract:
|
||||
担保人:
|
||||
- {姓名: 张三, 身份证号: "110101197001011234", 担保金额: 500000, 担保方式: 连带责任保证}
|
||||
- {姓名: 李四, 身份证号: "310102198505051234", 担保金额: 800000, 担保方式: 连带责任保证}
|
||||
- {姓名: 王五, 身份证号: "440103199212121234", 担保金额: 300000, 担保方式: 一般保证}
|
||||
expected: pass
|
||||
|
||||
- name: 第二个担保人身份证校验失败
|
||||
phase: executed
|
||||
extract:
|
||||
担保人:
|
||||
- {姓名: 张三, 身份证号: "110101197001011234", 担保金额: 500000, 担保方式: 连带责任保证}
|
||||
- {姓名: 李四, 身份证号: "310102198505051230", 担保金额: 800000, 担保方式: 连带责任保证} # 末位错
|
||||
- {姓名: 王五, 身份证号: "440103199212121234", 担保金额: 300000, 担保方式: 一般保证}
|
||||
expected: fail # [*] 遍历,任一失败整体 fail
|
||||
|
||||
- name: 第一个担保人姓名缺失
|
||||
phase: executed
|
||||
extract:
|
||||
担保人:
|
||||
- {姓名: null, 身份证号: "110101197001011234", 担保金额: 500000, 担保方式: 连带责任保证}
|
||||
- {姓名: 李四, 身份证号: "310102198505051234", 担保金额: 800000, 担保方式: 连带责任保证}
|
||||
expected: fail
|
||||
|
||||
- name: 无担保人(规则跳过)
|
||||
phase: executed
|
||||
extract:
|
||||
担保人: []
|
||||
expected: skipped # activate_if 条件不满足
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-004 · 担保总额覆盖借款本金(sum_ge 聚合)
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-004:
|
||||
- name: 担保覆盖
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 1500000
|
||||
担保人:
|
||||
- {姓名: 张三, 担保金额: 500000, 担保方式: 连带责任保证}
|
||||
- {姓名: 李四, 担保金额: 800000, 担保方式: 连带责任保证}
|
||||
- {姓名: 王五, 担保金额: 300000, 担保方式: 一般保证}
|
||||
# derived.担保总额 = 1600000 >= 借款本金 1500000
|
||||
expected: pass
|
||||
|
||||
- name: 担保不足
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 2000000
|
||||
担保人:
|
||||
- {姓名: 张三, 担保金额: 500000, 担保方式: 连带责任保证}
|
||||
- {姓名: 李四, 担保金额: 800000, 担保方式: 连带责任保证}
|
||||
# derived.担保总额 = 1300000 < 借款本金 2000000
|
||||
expected: fail
|
||||
|
||||
- name: 担保恰好等于本金
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 1000000
|
||||
担保人:
|
||||
- {姓名: 张三, 担保金额: 1000000, 担保方式: 连带责任保证}
|
||||
expected: pass
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-005 · 禁止利滚利
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-005:
|
||||
- name: 正常违约条款
|
||||
phase: executed
|
||||
extract:
|
||||
违约责任: 借款人逾期还款的,按每日 0.05% 支付违约金,违约金不超过借款本金 30%
|
||||
借款用途: 企业日常经营周转
|
||||
expected: pass
|
||||
|
||||
- name: 出现利滚利字样
|
||||
phase: executed
|
||||
extract:
|
||||
违约责任: 借款人违约的,利息计入本金后继续计息,利滚利
|
||||
借款用途: 企业日常经营周转
|
||||
expected: fail
|
||||
|
||||
- name: 借款用途违法
|
||||
phase: executed
|
||||
extract:
|
||||
违约责任: 正常违约金条款
|
||||
借款用途: 用于赌博和非法经营活动
|
||||
expected: fail
|
||||
|
||||
- name: 出现砍头息
|
||||
phase: executed
|
||||
extract:
|
||||
违约责任: 出借人有权预扣利息,砍头息为借款的 10%
|
||||
借款用途: 经营周转
|
||||
expected: fail
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-006 · 违约金不超过 30%(ratio_within)
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-006:
|
||||
- name: 违约金 20%(合规)
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 1000000
|
||||
违约金金额: 200000
|
||||
# derived.违约金比例 = 0.20
|
||||
expected: pass
|
||||
|
||||
- name: 违约金 35%(超限)
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 1000000
|
||||
违约金金额: 350000
|
||||
expected: fail
|
||||
|
||||
- name: 违约金 30%(边界,恰好到上限)
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 1000000
|
||||
违约金金额: 300000
|
||||
expected: pass # ratio_within max=0.30 是闭区间
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-007 · 借款本金大小写一致性
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-007:
|
||||
- name: 大小写一致
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 1000000
|
||||
借款本金大写: 壹佰万元整
|
||||
expected: pass
|
||||
|
||||
- name: 大小写不一致
|
||||
phase: executed
|
||||
extract:
|
||||
借款本金: 1000000
|
||||
借款本金大写: 壹拾万元整 # 差一位
|
||||
expected: fail
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-008 · 借款期限合理性(带 depends_on)
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-008:
|
||||
- name: 正常期限
|
||||
phase: executed
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
借款人身份证: "110101197001011234"
|
||||
出借人姓名: 李四
|
||||
出借人身份证: "310102198505051234"
|
||||
借款日期: "2024-01-01"
|
||||
还款日期: "2025-01-01"
|
||||
签订日期: "2024-01-01"
|
||||
expected: pass
|
||||
|
||||
- name: 借款日期晚于还款日期
|
||||
phase: executed
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
借款人身份证: "110101197001011234"
|
||||
出借人姓名: 李四
|
||||
出借人身份证: "310102198505051234"
|
||||
借款日期: "2024-06-01"
|
||||
还款日期: "2024-01-01" # ← 颠倒
|
||||
签订日期: "2024-01-01"
|
||||
expected: fail
|
||||
|
||||
- name: 依赖规则失败时本规则被跳过
|
||||
phase: executed
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
借款人身份证: "110101197001011230" # JK-001 会失败
|
||||
出借人姓名: 李四
|
||||
出借人身份证: "310102198505051234"
|
||||
借款日期: "2024-01-01"
|
||||
还款日期: "2025-01-01"
|
||||
expected: skipped_dependency # JK-001 失败 → 本规则跳过
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-SEAL-001 · 双方签章
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-SEAL-001:
|
||||
- name: 双方签章齐全
|
||||
phase: executed
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
出借人姓名: 李四
|
||||
visual_manifest:
|
||||
seals:
|
||||
- id: 借款人签章
|
||||
detection_score: 0.94
|
||||
ocr_text: 张三
|
||||
- id: 出借人签章
|
||||
detection_score: 0.92
|
||||
ocr_text: 李四
|
||||
expected: pass
|
||||
|
||||
- name: 缺出借人签章
|
||||
phase: executed
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
出借人姓名: 李四
|
||||
visual_manifest:
|
||||
seals:
|
||||
- id: 借款人签章
|
||||
detection_score: 0.94
|
||||
ocr_text: 张三
|
||||
expected: fail
|
||||
|
||||
- name: 草稿阶段无签章(规则跳过)
|
||||
phase: draft
|
||||
extract:
|
||||
借款人姓名: 张三
|
||||
出借人姓名: 李四
|
||||
visual_manifest:
|
||||
seals: []
|
||||
expected: skipped_phase
|
||||
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
# JK-GROUP-INTEREST · 利率合规总判定(规则组)
|
||||
# ═════════════════════════════════════════════════════════════
|
||||
JK-GROUP-INTEREST:
|
||||
- name: 全部子规则通过
|
||||
phase: executed
|
||||
extract:
|
||||
年利率: 0.10
|
||||
违约责任: 正常违约金条款
|
||||
借款用途: 经营周转
|
||||
借款本金: 1000000
|
||||
违约金金额: 200000
|
||||
expected: pass
|
||||
|
||||
- name: 子规则 JK-002 失败导致组失败
|
||||
phase: executed
|
||||
extract:
|
||||
年利率: 0.25 # 超限
|
||||
违约责任: 正常违约金条款
|
||||
借款用途: 经营周转
|
||||
借款本金: 1000000
|
||||
违约金金额: 200000
|
||||
expected: fail
|
||||
@@ -0,0 +1,493 @@
|
||||
metadata:
|
||||
type_id: contract.loan.general
|
||||
name: 借款合同
|
||||
version: '1.0'
|
||||
last_updated: '2026-04-11'
|
||||
parent: contract
|
||||
inherits_from:
|
||||
- base.common
|
||||
- base.party_info
|
||||
classification_keywords:
|
||||
- 借款
|
||||
- 借贷
|
||||
- 民间借贷
|
||||
tags:
|
||||
- compliance
|
||||
- high_priority
|
||||
- prc_civil_code
|
||||
- usury_check
|
||||
applies_to_jurisdictions:
|
||||
- prc
|
||||
references_laws:
|
||||
- 《民法典》第 667-680 条(借款合同章)
|
||||
- 《最高人民法院关于审理民间借贷案件适用法律若干问题的规定》(2020 修正)
|
||||
- 《民法典》第 387-462 条(担保物权)
|
||||
description: '适用于民间借贷 / 企业间借款 / 自然人借款等场景。
|
||||
|
||||
覆盖民法典第 667-680 条(借款合同章)和最高法民间借贷司法解释。
|
||||
|
||||
评查重点:利率合法性、担保完备性、禁止利滚利。
|
||||
|
||||
'
|
||||
confidence_profile:
|
||||
allow_weight_override: false
|
||||
field_confidence_defaults:
|
||||
借款本金: 0.95
|
||||
年利率: 0.95
|
||||
extract:
|
||||
- group: 当事人
|
||||
fields:
|
||||
- name: 借款人姓名
|
||||
type: verbatim
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 借款人身份证
|
||||
type: chinese-id
|
||||
required_from: executed
|
||||
deep_retry: false
|
||||
- name: 借款人地址
|
||||
type: verbatim
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 出借人姓名
|
||||
type: verbatim
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 出借人身份证
|
||||
type: chinese-id
|
||||
required_from: executed
|
||||
deep_retry: false
|
||||
- group: 合同信息
|
||||
fields:
|
||||
- name: 合同编号
|
||||
type: verbatim
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 签订日期
|
||||
type: date
|
||||
required_from: executed
|
||||
deep_retry: false
|
||||
- name: 借款日期
|
||||
type: date
|
||||
required_from: executed
|
||||
deep_retry: false
|
||||
- name: 还款日期
|
||||
type: date
|
||||
required_from: executed
|
||||
deep_retry: false
|
||||
- group: 借款条款
|
||||
fields:
|
||||
- name: 借款本金
|
||||
type: money
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 借款本金大写
|
||||
type: verbatim
|
||||
required_from: executed
|
||||
deep_retry: false
|
||||
- name: 借款用途
|
||||
type: string
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 年利率
|
||||
type: money
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 还款方式
|
||||
type: enum
|
||||
required_from: draft
|
||||
allowed:
|
||||
- 一次性还本付息
|
||||
- 分期还款
|
||||
- 先息后本
|
||||
deep_retry: false
|
||||
- name: 违约金金额
|
||||
type: money
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 违约责任
|
||||
type: string
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 争议解决
|
||||
type: string
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- group: 'Multi-entity: 担保人(核心特性展示)'
|
||||
fields:
|
||||
- name: 担保人
|
||||
type: multi_entity
|
||||
required_from: draft
|
||||
fields:
|
||||
- name: 姓名
|
||||
type: verbatim
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 身份证号
|
||||
type: chinese-id
|
||||
required_from: executed
|
||||
deep_retry: false
|
||||
- name: 地址
|
||||
type: verbatim
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 担保金额
|
||||
type: money
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
- name: 担保方式
|
||||
type: enum
|
||||
required_from: draft
|
||||
allowed:
|
||||
- 一般保证
|
||||
- 连带责任保证
|
||||
deep_retry: false
|
||||
- name: 担保期限
|
||||
type: date
|
||||
required_from: draft
|
||||
deep_retry: false
|
||||
deep_retry: false
|
||||
derived_fields:
|
||||
- name: 借款总天数
|
||||
type: integer
|
||||
compute: (还款日期 - 借款日期).days
|
||||
depends_on:
|
||||
- 借款日期
|
||||
- 还款日期
|
||||
- name: 违约金比例
|
||||
type: money
|
||||
compute: 违约金金额 / 借款本金
|
||||
depends_on:
|
||||
- 违约金金额
|
||||
- 借款本金
|
||||
- name: 担保总额
|
||||
type: money
|
||||
compute: sum(担保人[*].担保金额)
|
||||
depends_on:
|
||||
- 担保人
|
||||
- name: 担保人数量
|
||||
type: integer
|
||||
compute: count(担保人)
|
||||
depends_on:
|
||||
- 担保人
|
||||
- name: LPR_4x
|
||||
type: money
|
||||
compute: external.lpr_lookup(tenor='1y') * 4
|
||||
depends_on: []
|
||||
visual_elements:
|
||||
seals:
|
||||
- id: 借款人签章
|
||||
name: 借款人签章
|
||||
required: true
|
||||
required_from: executed
|
||||
expected_text_match:
|
||||
field: 借款人姓名
|
||||
- id: 出借人签章
|
||||
name: 出借人签章
|
||||
required: true
|
||||
required_from: executed
|
||||
expected_text_match:
|
||||
field: 出借人姓名
|
||||
signatures:
|
||||
- id: 借款人签名
|
||||
name: 借款人手写签名
|
||||
required: true
|
||||
required_from: executed
|
||||
expected_text_match:
|
||||
field: 借款人姓名
|
||||
- id: 出借人签名
|
||||
name: 出借人手写签名
|
||||
required: true
|
||||
required_from: executed
|
||||
expected_text_match:
|
||||
field: 出借人姓名
|
||||
rules:
|
||||
- group: 合同主体
|
||||
rules:
|
||||
- rule_id: JK-001
|
||||
name: 借款主体合法性
|
||||
risk: high
|
||||
score: 10
|
||||
stages:
|
||||
- id: '1'
|
||||
check: required
|
||||
fields:
|
||||
- 借款人姓名
|
||||
- 出借人姓名
|
||||
logic: and
|
||||
- id: '2'
|
||||
check: format
|
||||
field: 借款人身份证
|
||||
format: chinese_id
|
||||
- id: '3'
|
||||
check: format
|
||||
field: 出借人身份证
|
||||
format: chinese_id
|
||||
logic: 1 AND 2 AND 3
|
||||
messages:
|
||||
pass: 借贷双方身份合法
|
||||
fail: 借贷双方身份信息不完整或身份证校验失败
|
||||
references_laws:
|
||||
- 《民法典》第 667 条
|
||||
type: deterministic
|
||||
- group: 利率合规
|
||||
rules:
|
||||
- rule_id: JK-002
|
||||
name: 利率不超过法定上限(LPR × 4 倍)
|
||||
risk: high
|
||||
score: 20
|
||||
depends_on:
|
||||
- when: derived.LPR_4x != null
|
||||
stages:
|
||||
- id: '1'
|
||||
check: required
|
||||
field: 年利率
|
||||
- id: '2'
|
||||
check: compare
|
||||
left: 年利率
|
||||
op: <
|
||||
right_field: derived.LPR_4x
|
||||
logic: 1 AND 2
|
||||
messages:
|
||||
pass: 年利率 {{年利率}} 未超过 LPR 4 倍({{derived.LPR_4x}})
|
||||
fail: 年利率 {{年利率}} 超过法定上限 LPR 4 倍({{derived.LPR_4x}})
|
||||
references_laws:
|
||||
- 《最高人民法院关于审理民间借贷案件适用法律若干问题的规定》(2020 修正)第 25 条
|
||||
- 《民法典》第 680 条(禁止高利放贷)
|
||||
remediation:
|
||||
suggestions:
|
||||
- 本合同年利率 {{年利率}},超过当前 LPR 4 倍上限 {{derived.LPR_4x}}
|
||||
- 按 2020 修正司法解释,超出部分法院不予保护
|
||||
- 请降低利率至 LPR 4 倍以内
|
||||
actions:
|
||||
- type: edit_field
|
||||
label: 降低年利率
|
||||
field: 年利率
|
||||
prompt: 请输入合法年利率(不超过 {{derived.LPR_4x}})
|
||||
- type: escalate
|
||||
label: 疑似高利贷,上报合规组
|
||||
role: 合规专员
|
||||
type: deterministic
|
||||
- rule_id: JK-GROUP-INTEREST
|
||||
name: 利率合规总判定
|
||||
risk: high
|
||||
score: 30
|
||||
logic: JK-002 AND JK-005 AND JK-006
|
||||
messages:
|
||||
pass: 利率与违约条款全部合规
|
||||
fail: 利率或违约条款有瑕疵,存在合规风险
|
||||
type: rule_group
|
||||
rules:
|
||||
- JK-002
|
||||
- JK-005
|
||||
- JK-006
|
||||
- group: 担保条款
|
||||
rules:
|
||||
- rule_id: JK-003
|
||||
name: 担保人身份合法性
|
||||
risk: high
|
||||
score: 15
|
||||
activate_if: derived.担保人数量 > 0
|
||||
stages:
|
||||
- id: '1'
|
||||
type: multi_entity.count_ge
|
||||
field: 担保人
|
||||
value: 1
|
||||
- id: '2'
|
||||
check: format
|
||||
field: 担保人[*].身份证号
|
||||
format: chinese_id
|
||||
- id: '3'
|
||||
check: required
|
||||
field: 担保人[*].姓名
|
||||
logic: 1 AND 2 AND 3
|
||||
messages:
|
||||
pass: 所有 {{derived.担保人数量}} 位担保人身份合法
|
||||
fail: 至少一位担保人身份信息缺失或身份证校验失败
|
||||
remediation:
|
||||
suggestions:
|
||||
- 共 {{derived.担保人数量}} 位担保人,至少一位的身份证校验失败
|
||||
- 请逐个核对每位担保人的身份证号
|
||||
actions:
|
||||
- type: recheck_field
|
||||
label: 重新核对所有担保人身份证
|
||||
field: 担保人[*].身份证号
|
||||
type: deterministic
|
||||
- rule_id: JK-004
|
||||
name: 担保总额覆盖借款本金
|
||||
risk: high
|
||||
score: 15
|
||||
activate_if: derived.担保人数量 > 0
|
||||
stages:
|
||||
- id: '1'
|
||||
check: compare
|
||||
left: derived.担保总额
|
||||
op: '>='
|
||||
right_field: 借款本金
|
||||
logic: '1'
|
||||
messages:
|
||||
pass: 担保总额 {{derived.担保总额}} 覆盖借款本金 {{借款本金}}
|
||||
fail: 担保总额 {{derived.担保总额}} 不足以覆盖借款本金 {{借款本金}}
|
||||
remediation:
|
||||
suggestions:
|
||||
- 当前 {{derived.担保人数量}} 位担保人担保总额 {{derived.担保总额}}
|
||||
- 借款本金 {{借款本金}},担保不足
|
||||
- 建议:(1) 增加担保人 (2) 提高现有担保金额 (3) 补充物的担保
|
||||
actions:
|
||||
- type: edit_field
|
||||
label: 调整担保金额
|
||||
field: 担保人[*].担保金额
|
||||
- type: escalate
|
||||
label: 担保不足,上报风控
|
||||
role: 风控经理
|
||||
type: deterministic
|
||||
- group: 条款合规
|
||||
rules:
|
||||
- rule_id: JK-005
|
||||
name: 禁止利滚利与高利贷条款
|
||||
risk: high
|
||||
score: 15
|
||||
stages:
|
||||
- id: '1'
|
||||
type: string.must_not_contain
|
||||
field: 违约责任
|
||||
forbidden_keywords:
|
||||
- 利滚利
|
||||
- 复利
|
||||
- 利息计入本金
|
||||
- 砍头息
|
||||
- 预扣利息
|
||||
- id: '2'
|
||||
type: string.must_not_contain
|
||||
field: 借款用途
|
||||
forbidden_keywords:
|
||||
- 非法经营
|
||||
- 赌博
|
||||
- 洗钱
|
||||
logic: 1 AND 2
|
||||
messages:
|
||||
pass: 未发现利滚利或非法用途条款
|
||||
fail: 发现违法条款,建议删除或修改
|
||||
references_laws:
|
||||
- 《民法典》第 680 条
|
||||
- 《民法典》第 670 条(禁止预扣利息)
|
||||
remediation:
|
||||
suggestions:
|
||||
- 检出禁止性条款,本合同可能被法院认定为无效或部分无效
|
||||
- 请删除违法条款或整体重新起草
|
||||
actions:
|
||||
- type: edit_field
|
||||
label: 修改违约责任条款
|
||||
field: 违约责任
|
||||
- type: escalate
|
||||
label: 涉嫌违法条款,上报法务
|
||||
role: 法务经理
|
||||
type: deterministic
|
||||
- group: 违约条款
|
||||
rules:
|
||||
- rule_id: JK-006
|
||||
name: 违约金不超过借款本金 30%
|
||||
risk: medium
|
||||
score: 10
|
||||
stages:
|
||||
- id: '1'
|
||||
check: required
|
||||
fields:
|
||||
- 违约金金额
|
||||
- 借款本金
|
||||
logic: and
|
||||
- id: '2'
|
||||
type: money.ratio_within
|
||||
numerator: 违约金金额
|
||||
denominator: 借款本金
|
||||
min: 0.0
|
||||
max: 0.3
|
||||
logic: 1 AND 2
|
||||
messages:
|
||||
pass: 违约金比例 {{derived.违约金比例}} 合规
|
||||
fail: 违约金 {{违约金金额}} 占借款本金 {{借款本金}} 的比例超过 30%
|
||||
references_laws:
|
||||
- 《民法典》第 585 条(违约金不得过分高于损失)
|
||||
type: deterministic
|
||||
- group: 金额条款
|
||||
rules:
|
||||
- rule_id: JK-007
|
||||
name: 借款本金大小写一致性
|
||||
risk: high
|
||||
score: 10
|
||||
stages:
|
||||
- id: '1'
|
||||
check: required
|
||||
fields:
|
||||
- 借款本金
|
||||
- 借款本金大写
|
||||
logic: and
|
||||
- id: '2'
|
||||
check: amount_match
|
||||
number: 借款本金
|
||||
chinese: 借款本金大写
|
||||
logic: 1 AND 2
|
||||
messages:
|
||||
pass: 借款本金大小写一致
|
||||
fail: 借款本金大小写不一致,涉嫌篡改
|
||||
type: deterministic
|
||||
- group: 期限条款
|
||||
rules:
|
||||
- rule_id: JK-008
|
||||
name: 借款期限合理性
|
||||
risk: medium
|
||||
score: 5
|
||||
depends_on:
|
||||
- when: JK-001.passed
|
||||
stages:
|
||||
- id: '1'
|
||||
check: required
|
||||
fields:
|
||||
- 借款日期
|
||||
- 还款日期
|
||||
logic: and
|
||||
- id: '2'
|
||||
type: date.after
|
||||
field: 还款日期
|
||||
ref_field: 借款日期
|
||||
- id: '3'
|
||||
check: assert
|
||||
expr: parse_date(签订日期) != None and (today() - parse_date(签订日期)).days >= 0 and (today() - parse_date(签订日期)).days <= 1825
|
||||
logic: 1 AND 2 AND 3
|
||||
messages:
|
||||
pass: 借款期限合规
|
||||
fail: 借款日期颠倒 或 合同签订过旧
|
||||
type: deterministic
|
||||
- group: 印章合规
|
||||
rules:
|
||||
- rule_id: JK-SEAL-001
|
||||
name: 借贷双方签章齐全
|
||||
risk: high
|
||||
score: 10
|
||||
stages:
|
||||
- id: '1'
|
||||
type: seal.present
|
||||
seal_id: 借款人签章
|
||||
- id: '2'
|
||||
type: seal.present
|
||||
seal_id: 出借人签章
|
||||
logic: 1 AND 2
|
||||
messages:
|
||||
pass: 双方签章齐全
|
||||
fail: 缺少借款人或出借人签章
|
||||
remediation:
|
||||
by_phase:
|
||||
draft:
|
||||
suggestions:
|
||||
- 草稿阶段无需盖章
|
||||
actions:
|
||||
- type: noop
|
||||
executed:
|
||||
suggestions:
|
||||
- 民间借贷纠纷中,无签章的合同证据效力较弱
|
||||
- 请补盖双方印章或提供签名
|
||||
actions:
|
||||
- type: upload_file
|
||||
label: 补扫签章页
|
||||
file_type: 签章页
|
||||
type: deterministic
|
||||
Reference in New Issue
Block a user