Files
leaudit-platform-backend/rules/contract_purchase/rules.yaml
T
wren 535d97a70c 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.
2026-04-27 16:48:22 +08:00

567 lines
16 KiB
YAML

metadata:
type_id: contract.purchase.general
name: 买卖合同
version: '1.0'
last_updated: '2026-04-11'
parent: contract
inherits_from:
- base.common
- base.party_info
classification_keywords:
- 买卖
- 购销
- 采购
references_laws:
- 《民法典》第 595-647 条(买卖合同章)
- 《民法典》第 463-594 条(合同编通则)
description: '适用于一般商品买卖合同,覆盖民法典第 595-647 条。
评查重点:当事人合法性、金额一致性、印章合规、交付条款、违约责任。
'
confidence_profile:
allow_weight_override: false
thresholds:
auto_pass: 0.95
field_confidence_defaults:
合同金额: 0.95
合同金额大写: 0.9
extract:
- group: 当事人(从起草就应该有)
fields:
- name: 甲方名称
type: verbatim
required_from: draft
deep_retry: false
- name: 乙方名称
type: verbatim
required_from: draft
deep_retry: false
- group: 当事人(执行时才必需)
fields:
- name: 甲方法定代表人
type: verbatim
required_from: executed
deep_retry: false
- name: 甲方统一信用代码
type: uscc
required_from: executed
deep_retry: false
- name: 甲方联系电话
type: verbatim
required_from: draft
deep_retry: false
- name: 乙方法定代表人
type: verbatim
required_from: executed
deep_retry: false
- name: 乙方统一信用代码
type: uscc
required_from: executed
deep_retry: false
- name: 乙方联系电话
type: verbatim
required_from: draft
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: draft
deep_retry: false
- name: 终止日期
type: date
required_from: draft
deep_retry: false
- group: 标的与金额
fields:
- name: 标的物描述
type: string
required_from: draft
deep_retry: false
- name: 合同金额
type: money
required_from: draft
deep_retry: false
- name: 合同金额大写
type: verbatim
required_from: executed
deep_retry: false
- name: 招标文件编号
type: verbatim
required_from: draft
deep_retry: false
- group: 交付
fields:
- name: 交货地点
type: verbatim
required_from: draft
deep_retry: false
- name: 交货时间
type: date
required_from: draft
deep_retry: false
- group: 关键条款(起草就应该有)
fields:
- name: 质量标准
type: string
required_from: draft
deep_retry: false
- name: 付款方式
type: string
required_from: draft
deep_retry: false
- name: 违约责任
type: string
required_from: draft
deep_retry: false
- name: 争议解决
type: string
required_from: draft
deep_retry: false
visual_elements:
seals:
- id: 甲方签章
name: 甲方公章或合同专用章
required: true
required_from: executed
allowed_types:
- 公章
- 合同专用章
- 法人章
expected_text_match:
field: 甲方名称
- id: 乙方签章
name: 乙方公章或合同专用章
required: true
required_from: executed
allowed_types:
- 公章
- 合同专用章
- 法人章
expected_text_match:
field: 乙方名称
signatures:
- id: 甲方法人签名
name: 甲方法定代表人签名
required: false
required_from: executed
expected_text_match:
field: 甲方法定代表人
- id: 乙方法人签名
name: 乙方法定代表人签名
required: false
required_from: executed
expected_text_match:
field: 乙方法定代表人
cross_page_seals:
- id: 骑缝章
name: 合同骑缝章
required: true
required_from: executed
expected_text_match:
field: 甲方名称
prompt: '合同每相邻两页之间跨页盖章。
每页只能看到印章的一半,两页拼合后构成完整圆章。
通常在页面右侧边缘或底部,垂直跨越装订线。
不要和页脚日期章或水印混淆。
'
rules:
- group: 合同主体
rules:
- rule_id: MM-001
name: 当事人信息完整性
risk: high
score: 10
stages:
- id: '1'
check: required
fields:
- 甲方名称
- 乙方名称
- 甲方法定代表人
- 乙方法定代表人
logic: and
- id: '2'
check: format
field: 甲方统一信用代码
format: uscc
- id: '3'
check: format
field: 乙方统一信用代码
format: uscc
logic: 1 AND 2 AND 3
messages:
pass: 当事人信息完整,统一信用代码校验通过
fail: 当事人信息缺失或统一信用代码校验失败
references_laws:
- 《民法典》第 471 条
remediation:
by_phase:
draft:
suggestions:
- 草稿阶段当事人信息暂缺是正常的,签署前须补齐
- 建议在定稿前确认:甲乙方名称、法定代表人、统一信用代码三项齐全
actions:
- type: fill_field
label: 补充甲方法定代表人
field: 甲方法定代表人
prompt: 请输入甲方法定代表人姓名
- type: fill_field
label: 补充乙方法定代表人
field: 乙方法定代表人
prompt: 请输入乙方法定代表人姓名
executed:
suggestions:
- 已执行合同出现当事人信息缺失是严重瑕疵
- 可能原因:起草遗漏 / OCR 错位 / USCC 校验位错
- 须补充说明或要求当事人出具澄清
actions:
- type: recheck_field
label: 核对甲方统一信用代码
field: 甲方统一信用代码
hint: 18 位,末位为校验位,请核对营业执照
- type: recheck_field
label: 核对乙方统一信用代码
field: 乙方统一信用代码
- type: link_template
label: 下载主体信息补充说明函模板
template_id: party_info_addendum
- type: escalate
label: 紧急:执行合同主体信息缺失,上报合规组
role: 合规专员
reason: 已执行合同出现当事人瑕疵,可能影响效力
type: deterministic
- group: 金额与支付
rules:
- rule_id: MM-002
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: 金额大小写不一致,合同可能被篡改或抽取错误
references_laws:
- 《民法典》第 470 条
remediation:
on_rule_fail:
suggestions:
- 小写金额 {{合同金额}} 与大写 {{合同金额大写}} 不一致
- 如果是 OCR 抽取错误,请人工核对原文
- 如果合同原件本身不一致,以大写为准(法律惯例)并出具说明
actions:
- type: recheck_field
label: 核对小写金额
field: 合同金额
- type: recheck_field
label: 核对大写金额
field: 合同金额大写
- type: link_template
label: 下载金额不一致说明函模板
template_id: amount_inconsistency_explanation
- type: escalate
label: 涉嫌合同篡改,上报合规组
role: 合规专员
reason: 金额大小写不一致,可能存在恶意篡改风险
on_confidence_low:
suggestions:
- 金额字段抽取置信度低,请人工确认原文
actions:
- type: recheck_field
label: 重新核对合同金额
field: 合同金额
hint: 注意千分位符号、小数点、货币单位
type: deterministic
- rule_id: MM-003
name: 大额合同须招投标
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 合同金额
- id: '2'
check: compare
left: 合同金额
op: '>'
right: 1000000
- id: '3'
check: required
required_if: '2'
field: 招标文件编号
logic: 1 AND (NOT 2 OR 3)
messages:
pass: 小额合同或大额已附招标文件
fail: 合同金额超过 100 万元,但未提供招标文件编号
references_laws:
- 《政府采购法》第 27 条
- 《招标投标法》第 3 条
remediation:
suggestions:
- 本合同金额 {{合同金额}} 元,超过政府采购 100 万招投标阈值
- 按《政府采购法》第 27 条,须采取公开招标或提供豁免说明
- 下面三种操作任选其一即可通过本条规则
actions:
- type: fill_field
label: 补充招标文件编号
field: 招标文件编号
prompt: 请输入招标文件编号(常见格式 ZB2024XXX)
- type: upload_file
label: 上传招标豁免说明函
file_type: 招标豁免说明
accept:
- pdf
- docx
- type: link_template
label: 下载招标豁免说明函模板
template_id: bidding_exemption_letter
- type: escalate
label: 金额过大需采购总监审批
role: 采购总监
trigger_if: '{{合同金额}} > 5000000'
reason: 合同金额超过 500 万,需采购总监额外审批
type: deterministic
- group: 合同期限
rules:
- rule_id: MM-004
name: 签订/生效/终止日期先后关系
risk: high
score: 8
stages:
- id: '1'
check: required
fields:
- 签订日期
- 生效日期
logic: and
- id: '2'
type: date.sequence
fields:
- 签订日期
- 生效日期
- 终止日期
order: le
logic: 1 AND 2
messages:
pass: 合同日期先后关系合规
fail: 签订日/生效日/终止日顺序异常
remediation:
suggestions:
- 签订日期 {{签订日期}} / 生效日期 {{生效日期}} / 终止日期 {{终止日期}}
- 正常顺序应为:签订 ≤ 生效 ≤ 终止
- 可能原因:日期抽取错位 / OCR 识别错误 / 合同原件笔误
actions:
- type: recheck_field
label: 核对签订日期
field: 签订日期
- type: recheck_field
label: 核对生效日期
field: 生效日期
- type: recheck_field
label: 核对终止日期
field: 终止日期
type: deterministic
- group: 标的物
rules:
- rule_id: MM-005
name: 质量标准明确性
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 质量标准
- id: '2'
type: string.min_length
field: 质量标准
min: 20
- id: '3'
check: contains
field: 质量标准
any_of:
- GB/T
- ISO
- 国标
- 行业标准
- 企业标准
logic: 1 AND 2 AND 3
messages:
pass: 质量标准明确(引用了具体标准)
fail: 质量标准过于简略或未引用具体标准
references_laws:
- 《民法典》第 615 条
type: deterministic
- group: 违约与争议
rules:
- rule_id: MM-006
name: 违约责任条款存在性
risk: medium
score: 5
stages:
- id: '1'
check: required
field: 违约责任
- id: '2'
type: string.min_length
field: 违约责任
min: 30
logic: 1 AND 2
messages:
pass: 违约责任条款明确
fail: 违约责任条款缺失或过于简略
type: deterministic
- group: 印章合规
rules:
- rule_id: MM-SEAL-001
name: 合同双方签章齐全
risk: high
score: 15
stages:
- id: '1'
type: seal.present
seal_id: 甲方签章
- id: '2'
type: seal.present
seal_id: 乙方签章
- id: '3'
type: seal.text_match
seal_id: 甲方签章
- id: '4'
type: seal.text_match
seal_id: 乙方签章
logic: 1 AND 2 AND 3 AND 4
messages:
pass: 合同双方签章齐全且文字匹配当事人名称
fail: 缺少签章 或 印章文字与当事人名称不一致(可能冒用)
references_laws:
- 《民法典》第 490 条(合同形式)
remediation:
by_phase:
draft:
suggestions:
- 草稿阶段无需盖章。请在定稿签署时加盖甲乙方公章
- 合同超过一页时建议加盖骑缝章
actions:
- type: noop
executed:
suggestions:
- 已执行合同缺少签章或印章文字不符,严重影响合同效力
- 可能原因:(1) 漏扫签章页 (2) 印章是冒章 (3) 合同原件确实未盖章
- 建议立即补救
actions:
- type: upload_file
label: 紧急:补扫签章页
file_type: 签章页
accept:
- pdf
- jpg
- png
- type: recheck_field
label: 核对甲方印章文字
field: visual.甲方签章
hint: 核对印章上的单位名称与甲方名称是否一致
- type: recheck_field
label: 核对乙方印章文字
field: visual.乙方签章
- type: link_template
label: 下载印章缺失情况说明模板
template_id: seal_missing_statement
- type: escalate
label: 疑似冒章,上报合规组
role: 合规专员
reason: 已执行合同印章文字与当事人名称不一致
type: deterministic
- rule_id: MM-SEAL-002
name: 合同骑缝章完整
risk: high
score: 10
stages:
- id: '1'
type: cross_page_seal.complete
seal_id: 骑缝章
logic: '1'
messages:
pass: 骑缝章完整
fail: 骑缝章缺失,合同可能被替换页
remediation:
suggestions:
- 骑缝章用于防止合同页面被替换。缺失或错位是严重的合规风险
- 请确认:(1) 是否原件有骑缝章?(2) 扫描时是否漏扫或错位?
- 如原件确实无骑缝章,需双方补盖或出具情况说明
actions:
- type: upload_file
label: 补扫完整骑缝章
file_type: 骑缝章扫描件
accept:
- pdf
- type: link_template
label: 下载印章缺失情况说明模板
template_id: seal_missing_statement
- type: escalate
label: 疑似合同替换页,上报合规组
role: 合规专员
type: deterministic
- rule_id: MM-SEAL-003
name: 高额合同须法人签名与公章并存
risk: medium
score: 5
stages:
- id: '1'
check: compare
left: 合同金额
op: '>'
right: 500000
- id: '2'
type: seal.present
required_if: '1'
seal_id: 甲方签章
- id: '3'
type: signature.present
required_if: '1'
signature_id: 甲方法人签名
logic: NOT 1 OR (2 AND 3)
messages:
pass: 小额合同或已有公章+法人签名双重确认
fail: 大额合同缺少公章或法人签名
remediation:
suggestions:
- 超过 50 万元的合同建议法人亲自签名 + 公章双重确认
- 缺少任一都属于瑕疵,建议补齐
actions:
- type: upload_file
label: 补传签章页(含法人签名)
file_type: 签章页
accept:
- pdf
- jpg
- png
- type: document_override
label: 记录豁免(金额虽大但有特殊约定)
require_reason: true
require_role: 法务经理
type: deterministic