灵律学习笔记 — 第四阶段:安全验证与法律伦理

灵研(LingResearch) | 2026-04-14 | 基于llm.py验证逻辑 + 法律伦理规范 + 数据安全法规


当前实现(llm.py:43-76)

验证函数架构:
├── 第一层:输出长度检查(<50字符 → blocked)
├── 第二层:虚假案号检测(3个正则模式 → blocked)
├── 第三层:法律条文书名号检查(缺《》→ warning)
├── 第四层:当事人信息检查(诉讼类文书 → blocked)
├── 第五层:诉讼请求检查(民事起诉状 → blocked)
└── 第六层:事实与理由检查(起诉状/答辩状/反诉状 → warning)

规则1:输出过短检查

if len(text.strip()) < 50:
    blocked.append("output_too_short")

法律原理:法律文书具有最低形式要求。根据《民事诉讼法》第123条,起诉状必须包含当事人信息、诉讼请求、事实与理由等必备内容,这些内容不可能少于50个字符。

覆盖文书:全部18种

评估:合理但阈值偏低。一份合格的民事起诉状至少500字以上,50字阈值过于宽松。

规则2:虚假案号检测

FAKE_CASE_NUMBER_PATTERNS = [
    re.compile(r"\(\d{4}\)[^年]*\d+初\d+号"),   # 一审
    re.compile(r"\(\d{4}\)[^年]*\d+终\d+号"),   # 二审
    re.compile(r"\(\d{4}\)[^年]*\d+行\d+号"),   # 行政
]

法律原理:案号是法院对案件的唯一标识,格式为(年份)法院代字+案件类型代字+序号(法〔2015〕137号)。LLM生成的案号格式可能正确但实际不存在,构成虚假法律信息

漏洞: 1. ❌ 不匹配阿拉伯数字案号 — 如"(2024)京0108民初12345号"中的"0108" 2. ❌ 不覆盖刑事案号 — 缺少"刑初"、"刑终"模式 3. ❌ 不覆盖执行案号 — 缺少"执"字模式 4. ❌ 不覆盖保全案号 — 缺少"保"字模式 5. ❌ 无法验证案号真实性 — 只检查格式,不验证案号是否真实存在

规则3:法律条文书名号检查

law_article_pattern = re.compile(r"(?:第|第一|第二|第三)([\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u767e]+)条")
law_refs = law_article_pattern.findall(text)
if law_refs and not re.search(r"[《》]", text):
    warnings.append("law_articles_referenced_without_law_name")

法律原理:法律条文引用必须指明法律名称,避免歧义。根据法律文书写作规范,引用法律条文应写明"《XX法》第X条"。

漏洞: 1. ❌ 不检测法条是否真实存在 2. ❌ 不检测法条内容是否正确(张冠李戴) 3. ❌ 不检测法律是否现行有效(可能引用已废止法律) 4. ❌ 正则只匹配中文数字条号 — "第100条"匹配不到 5. ❌ 不检测是否应引用民法典替代已废止法律

规则4:当事人信息检查

if doc_type in ("civil_complaint", "defense_statement", "appeal"):
    has_party = bool(re.search(r"(?:原告|被告|上诉人|被上诉人|答辩人)", text))
    if not has_party:
        blocked.append("missing_party_info")

法律原理:法律文书必须明确列明当事人身份(民诉法§123)。

漏洞: 1. ❌ 只检查关键词存在,不验证信息完整性(缺身份证号、地址等) 2. ❌ 反诉状未覆盖 — 反诉状应有"反诉原告/反诉被告" 3. ❌ 再审申请书未覆盖 — 应有"申请人/被申请人" 4. ❌ 不检查同一当事人在全文中名称是否一致

规则5:诉讼请求检查

if doc_type == "civil_complaint":
    has_claim = bool(re.search(r"(?:诉讼请求|请求判决)", text))
    if not has_claim:
        blocked.append("missing_claim")

法律原理:民事起诉状必须有明确的诉讼请求(民诉法§123)。

漏洞: 1. ❌ 只检查关键词,不验证请求内容是否具体 2. ❌ 不检查金额是否有计算依据 3. ❌ 不检查请求与事实理由是否逻辑一致 4. ❌ 其他需要诉讼请求的文书未覆盖(如再审请求、执行请求)

规则6:事实与理由检查

if doc_type in ("civil_complaint", "defense_statement", "counterclaim"):
    has_reason = bool(re.search(r"(?:事实与理由|事实理由)", text))
    if not has_reason:
        warnings.append("missing_fact_and_reason_section")

法律原理:法律文书需包含事实叙述和法律分析。

漏洞: 1. ❌ 再审申请书未覆盖 — 应有申请再审的事实和理由 2. ❌ 上诉状未覆盖 — 应有上诉理由 3. ❌ 不检查事实与理由的内容质量


二、AI幻觉在法律领域的风险

Mata v. Avianca 案(美国,2023年)

要素 详情
案件 Mata v. Avianca Airlines,纽约南区联邦地区法院
涉事律师 Steven Schwartz, Peter LoDuca
行为 使用ChatGPT生成法律简报,引用6个虚假案例
发现过程 对方律师和法官发现引用的判例全部不存在
处罚 各$5,000制裁罚款 + 职业声誉严重损害
行业影响 ABA发布AI使用指引;多法院要求律师声明AI使用情况

AI幻觉的8种法律领域表现

幻觉类型 具体表现 严重程度 当前LingLaw是否检查
虚构法律条文 编造不存在的法律条款 🔴极高
虚构案例引用 编造案号、当事人、裁判要点 🔴极高 部分(格式检查)
条文张冠李戴 将A法条文归入B法 🔴高
引用过时法律 引用已废止的合同法、民法通则等 🟠高
虚假司法解释 编造或错误引用司法解释 🟠高
利率计算错误 超过4倍LPR或计算方式错误 🟠高
时效判断错误 误判诉讼时效是否经过 🟠高
管辖判断错误 建议向无管辖权法院起诉 🟡中

中国律师使用AI提交虚假文书的法律后果

后果 法律依据 处罚
司法行政处罚 律师法§49 警告+1万元以下罚款;停业3-6个月
律协纪律处分 律师执业规范 通报批评/公开谴责/中止会员权利
刑事责任(极端) 刑法§306 伪造证据罪:3年以下;情节严重3-7年
民事赔偿 民法典 律所对委托人的赔偿责任
职业声誉 行业内严重失信

三、律师使用AI的法律伦理要求

3.1 核心伦理原则与AI适用

伦理原则 法律依据 AI使用中的适用
诚实守信 律师执业管理办法§40 不得向法院隐瞒文书由AI生成;不得提交未经核实的AI输出
勤勉尽责 律师职业道德规范§5 使用AI不减轻审查义务;必须人工核实所有法律依据
保密义务 律师法§38 不得将案件材料上传未经安全评估的第三方AI
独立判断 律师法 AI仅辅助工具,最终判断必须由律师独立作出
专业胜任 律师职业道德规范 律师应了解所使用AI工具的局限性

3.2 保密义务与AI的冲突

律师法§38:律师应保守执业中知悉的国家秘密、商业秘密和当事人隐私。

冲突场景 风险等级 合规要求
案件材料上传公有云AI 🔴高 违反保密义务
使用未经安全评估的AI API 🔴高 数据可能被留存/训练
使用境外AI服务 🔴高 触发数据出境安全评估
本地部署AI处理案件数据 🟢低 数据不出本地,合规
脱敏后上传 🟡中 需确保脱敏充分

3.3 建议的AI使用披露规范

目前中国尚无统一的AI使用披露要求,但建议: 1. 向委托人告知AI工具的使用情况 2. AI生成的关键内容应标注并声明已人工核实 3. 保留AI交互记录以备审查 4. 不直接将AI输出作为专业意见提交法院


四、数据安全法律框架

4.1 三法并行

法律 施行日期 与法律AI的核心关联
个人信息保护法(PIPL) 2021-11-01 案件数据中当事人个人信息的处理合规
数据安全法 2021-09-01 案件数据分类分级 + 出境管理
生成式AI服务管理暂行办法 2023-08-15 AI服务提供和使用规范

4.2 PIPL对案件数据的要求

信息类型 PIPL分类 处理要求
当事人姓名、住址 一般个人信息 需同意
身份证号码 敏感个人信息 需单独同意
银行账号 敏感个人信息 需单独同意
医疗记录(人身损害案件) 敏感个人信息 需单独同意
未成年人信息 特殊保护 需监护人同意
通信记录 一般/敏感 视内容而定

4.3 LingLaw本地部署的合规优势

合规维度 云端SaaS LingLaw本地部署
数据存储 第三方服务器 本地硬盘
数据访问 供应商技术人员可能访问 仅授权律师
数据用途 可能用于模型训练 仅限案件办理
数据留存 可能被长期留存 律师自主控制
跨境传输 可能自动出境 无出境风险
PIPL合规 需委托协议+告知+同意 律所内部处理,风险最低
审计追踪 依赖供应商 完全可控

4.4 《生成式AI服务管理暂行办法》关键条款


5.1 建议的四层验证架构

verify_legal_output(output, context)
│
├── 第一层:格式验证(快速,确定性)— 当前已实现
│   ├── 长度检查(✅已有)
│   ├── 案号格式检查(✅已有 + 需增强:阿拉伯数字、刑事/执行/保全类型)
│   ├── 书名号检查(✅已有)
│   ├── 当事人信息完整性(✅已有 + 需扩展文书覆盖)
│   ├── 诉讼请求存在性(✅已有)
│   ├── "事实与理由"存在性(✅已有 + 需扩展文书覆盖)
│   └── 强制性条款完整性(❌新增)
│
├── 第二层:法律知识验证(需知识库)— 全部缺失
│   ├── 法律条文真实性(❌新增:需法律条文数据库)
│   ├── 废止法律替换提示(❌新增:需新旧法对照表)
│   ├── 利率上限验证(❌新增:需LPR数据)
│   └── 案件类型代字合法性(❌新增:需案号规则库)
│
├── 第三层:逻辑一致性验证(需NLU)— 全部缺失
│   ├── 诉讼请求与事实理由一致性(❌新增)
│   ├── 证据清单与诉讼请求对应关系(❌新增)
│   └── 管辖权合法性(❌新增:需管辖规则引擎)
│
└── 第四层:时效与数值验证(需计算)— 全部缺失
    ├── 诉讼时效检查(❌新增)
    ├── 金额计算合理性(❌新增)
    └── 期限合规性(❌新增)

5.2 新增检查优先级矩阵

优先级 检查项 风险等级 实现难度 建议处置
P0 法律条文真实性 🔴致命 高(需知识库) BLOCKED
P0 利率上限(4倍LPR) 🔴致命 BLOCKED
P0 案号格式增强 🔴致命 BLOCKED
P1 诉讼时效验证 🟠严重 WARNING
P1 诉请与事实一致性 🟠严重 WARNING
P1 管辖权验证 🟠严重 WARNING
P1 强制性条款完整性 🟠严重 BLOCKED
P2 当事人名称格式 🟡较高 WARNING
P2 证据清单完整性 🟡较高 WARNING
P3 废止法律替换提示 🟡较高 WARNING

5.3 利率上限验证伪代码

def validate_interest_rate(output: str) -> CheckResult:
    """
    验证利息/利率是否超过4倍LPR上限
    法律依据:民间借贷司法解释§25
    """
    # 提取利率表述:
    # "月息3%" → 年利率36% → 超标
    # "年利率12%" → 未超标
    # "LPR×4" → 需计算
    current_lpr = get_current_lpr()  # 约3.45%
    ceiling = current_lpr * 4         # 约13.8%

    rates = extract_interest_rates(output)
    violations = []
    for rate in rates:
        if rate.annual > ceiling:
            violations.append(f"利率{rate.raw}超过法定上限{ceiling:.1f}%")

    # 注意:4倍LPR仅适用于民间借贷
    # 金融机构借款不受此限
    return CheckResult(
        passed=len(violations) == 0,
        blocked=violations  # 超过上限应阻断
    )

5.4 法律条文真实性验证伪代码

def validate_law_article_existence(output: str, law_db) -> CheckResult:
    """
    验证引用的法律条文是否真实存在
    """
    # 新旧法对照表
    DEPRECATED_LAW_MAP = {
        "合同法": "民法典合同编",
        "物权法": "民法典物权编",
        "侵权责任法": "民法典侵权责任编",
        "婚姻法": "民法典婚姻家庭编",
        "继承法": "民法典继承编",
        "民法通则": "民法典总则编",
        "民法总则": "民法典总则编",
    }

    refs = extract_law_references(output)  # 《XX法》第X条
    warnings = []
    blocked = []

    for ref in refs:
        law_name = ref.law_name
        article_num = ref.article_num

        # 检查1:是否引用已废止法律
        if law_name in DEPRECATED_LAW_MAP:
            warnings.append(
                f"引用了已废止的《{law_name}》,"
                f"应替换为《{DEPRECATED_LAW_MAP[law_name]}》"
            )

        # 检查2:法律是否存在
        if not law_db.law_exists(law_name):
            blocked.append(f"《{law_name}》不存在或未收录")

        # 检查3:条款是否存在
        elif not law_db.article_exists(law_name, article_num):
            blocked.append(
                f"《{law_name}》第{article_num}条不存在"
            )

    return CheckResult(
        passed=len(blocked) == 0,
        warnings=warnings,
        blocked=blocked
    )

5.5 新旧法替换对照表

已废止法律 废止日期 替代法律 对应编章
合同法 2021-01-01 民法典 第三编(§469-§688)
物权法 2021-01-01 民法典 第二编(§205-§462)
侵权责任法 2021-01-01 民法典 第七编(§1164-§1258)
婚姻法 2021-01-01 民法典 第五编(§1040-§1118)
继承法 2021-01-01 民法典 第六编(§1119-§1163)
民法通则 2021-01-01 民法典 第一编(§1-§204)
民法总则 2021-01-01 民法典 第一编(§1-§204)
收养法 2021-01-01 民法典 第五编第五章
担保法 2021-01-01 民法典 第二编/第三编担保合同

六、法律AI安全框架总结

6.1 三要素模型

法律AI安全 = 技术安全 + 法律合规 + 输出质量
     │              │            │          │
     ▼              ▼            ▼          ▼
  数据加密      PIPL合规     多层验证
  访问控制    数据安全法     人工复核
  审计追踪    律师保密义务   知识库更新
  本地部署    AI管理办法     置信度评分

6.2 LingLaw当前安全评估

维度 评分 说明
数据安全 ⭐⭐⭐⭐ Docker本地部署,数据不出本机
PIPL合规 ⭐⭐⭐⭐ 本地处理无需同意/委托协议
输出验证 ⭐⭐ 仅6条规则,覆盖面窄
法律准确性 ⭐⭐ 无法律知识库,完全依赖GLM参数知识
审计追踪 无日志记录机制
用户提示 未告知AI生成内容的局限性

6.3 关键改进建议

  1. 增加免责声明 — 每次生成输出时附加:"本内容由AI生成,仅供参考,不构成法律意见。请律师核实后使用。"
  2. 增加置信度评分 — 每个输出附带置信度,低置信度触发人工审核
  3. 建立法律知识库 — 现行有效法律条文全文 + 废止法律对照表
  4. 增加操作日志 — 记录所有AI交互以备合规审计
  5. 增加用户确认 — 关键操作(如生成起诉状)需用户二次确认

学习自检清单

← 返回文档目录