返回 Skill 列表
extension
分类: 其它需要 API Key

Contract Risk Analyzer Pro

合同风险智能审查 — 上传PDF,AI自动提取关键条款并标注风险点,生成结构化风险报告(文本摘要+关键条款表格+🔴🟠🟡三级风险列表)。支持采购、销售、服务、劳动、租赁、保密等6类合同。触发词:合同审查、合同风险、合同分析、合同检查、合同审核。

person作者: nicloscahubclawhub

Contract Risk Analyzer · 合同风险智能审查

上传合同PDF → AI自动提取关键条款 → 自动标注风险点 → 输出结构化风险报告。

不做法律判断,只做结构化提取和风险标注。

核心功能

  • 合同类型识别:自动判断合同类型(采购/销售/服务/劳动/租赁/保密协议)
  • 文本提取:PyMuPDF + pdfplumber 双引擎提取合同文本
  • AI结构化提取:OpenAI兼容API,用户自配Key
  • 风险标注:行业风险清单 + 三级分级(🔴高风险 🟠中风险 🟡低风险)
  • 飞书推送:风险报告生成后自动推送飞书消息卡片

AI Agent 完整流程

# 1. 上传合同 PDF 并分析
result = analyze_contract(
    pdf_path="/path/to/contract.pdf",  # 本地PDF路径
    api_key="sk-...",                  # OpenAI兼容API Key(用户自配)
    base_url="https://api.openai.com/v1",  # API地址
    model="gpt-4o-mini",              # 模型名称
    user_focus="付款周期和违约责任",    # 用户关注条款(可选)
)

# result 返回:
# {
#   "contract_type": "采购合同",
#   "summary": "本合同为XXX公司向YYY公司采购XXX产品的采购合同...",
#   "key_terms": [
#     {"category": "当事人", "content": "...", "risk": ""},
#     ...
#   ],
#   "risks": [
#     {"level": "🔴", "item": "金额条款留空", "suggestion": "..."},
#     ...
#   ],
#   "report_markdown": "..."  # 完整报告Markdown
# }

# 2. 推送飞书消息卡片(可选)
send_feishu_notification(
    open_id="ou_xxx",
    report_markdown=result["report_markdown"],
    contract_type=result["contract_type"],
)

使用示例

示例 1:分析采购合同

用户:帮我审查这份采购合同
[上传 contract.pdf]

→ PDF文本提取 → 合同类型识别 → AI结构化提取 → 风险标注 → 返回:风险报告(含摘要、条款表格、风险列表)

示例 2:审查劳动合同并推送飞书

用户:帮我审查这份劳动合同,并把报告发给我
[上传 labor_contract.pdf]

→ 分析完成后 → 推送飞书消息卡片到用户

输出格式

风险报告结构

# 合同风险审查报告

**合同类型:** 采购合同
**审查时间:** 2026-04-20
**免责声明:** 本报告由AI自动生成,仅供参考,不构成法律建议。

---

## 一、合同摘要

[200字以内的合同核心内容摘要]

---

## 二、关键条款

| 条款类别 | 原文摘要 | 风险提示 |
|---------|---------|---------|
| 当事人 | 甲方:XXX公司 | — |
| 合同金额 | ¥100,000 | — |
| 付款条件 | 签约后30日内支付 | ⚠️ 无明确最晚付款日 |
| 违约责任 | 违约方赔偿损失 | ⚠️ 未约定违约金比例 |
| ... | ... | ... |

---

## 三、风险点列表

### 🔴 高风险(需特别注意)
1. **金额条款留空**:合同金额未填写完整...
2. **违约责任不对等**:甲方违约责任明显轻于乙方...

### 🟠 中风险(建议关注)
1. **付款方式无明确时间节点**:...
2. **保密期限超过2年**:...

### 🟡 低风险(需知晓)
1. **无解除条款**:...

合同类型与提取字段

| 合同类型 | 核心字段 | |---------|---------| | 采购合同 | 甲方、乙方、采购内容、金额、付款方式、交货条款、质量标准、违约责任 | | 销售合同 | 甲方、乙方、销售内容、金额、付款方式、交货条款、质量保证、违约责任 | | 服务合同 | 甲方、乙方、服务内容、金额、付款方式、服务期限、验收标准、违约责任 | | 劳动合同 | 甲方(雇主)、乙方(员工)、职位、薪资、工作地点、工作时间、合同期限、社保 | | 租赁合同 | 甲方(出租方)、乙方(承租方)、租赁物、租金、押金、租期、续租条款、维修责任 | | 保密协议 | 甲方、乙方、保密内容、保密期限、保密范围、违约责任 |

风险清单

🔴 高风险(Red Flags)

  • 金额不明确或留空
  • 违约责任严重不对等(单方面有利)
  • 违约金比例过高(超过损失30%)
  • 管辖法院约定在外地且对我方不利
  • 无解除条款或解除条件极严
  • 无限连带责任条款
  • 格式条款未加粗或未明示

🟠 中风险(Caution)

  • 付款无明确时间节点
  • 保密期限超过2年
  • 竞业限制范围过宽
  • 知识产权归属模糊
  • 不可抗力条款缺失或过于宽松
  • 争议解决方式不利于维权

🟡 低风险(Note)

  • 通知方式未明确
  • 合同份数未约定
  • 附件与正文不一致风险
  • 语言版本冲突未说明

技术说明

PDF 文本提取

from scripts.pdf_extractor import extract_text

# PyMuPDF 优先,pdfplumber 备选
text = extract_text(pdf_path)

AI 字段提取

from scripts.ai_extractor import extract_fields

fields = extract_fields(
    text=contract_text,
    contract_type="采购合同",
    api_key="sk-...",
    base_url="https://api.openai.com/v1",
    model="gpt-4o-mini",
)

风险标注

from scripts.risk_analyzer import annotate_risks

risks = annotate_risks(
    text=contract_text,
    fields=extracted_fields,
)

报告生成

from scripts.report_generator import generate_report

report = generate_report(
    contract_type=contract_type,
    summary=summary,
    key_terms=key_terms,
    risks=risks,
)

飞书推送

from scripts.feishu_notifier import send_feishu_notification

# Prepare notification data
notification = send_feishu_notification(
    open_id="ou_xxx",
    report_markdown=report_markdown,
    contract_type=contract_type,
    contract_name="合同名称",
    risk_summary={"🔴": 1, "🟠": 2, "🟡": 0},  # optional, from result["risk_summary"]
    top_risks=[{"level": "🔴", "item": "高风险项"}],  # optional, from result["risks"][:3]
)

# Agent must send via feishu_im_user_message tool:
# feishu_im_user_message(
#     action="send",
#     receive_id_type="open_id",
#     receive_id=notification["open_id"],
#     msg_type="interactive",
#     content=notification["card_json"],
# )

飞书推送集成指南(Agent)

正确调用方式:

# 1. 分析合同后获取结果
result = analyze_contract(pdf_path=..., api_key=..., ...)

# 2. 准备飞书通知数据
notification = send_feishu_notification(
    open_id=user_open_id,  # 从消息上下文获取
    report_markdown=result["report_markdown"],
    contract_type=result["contract_type"],
    risk_summary=result.get("risk_summary", {}),
    top_risks=result.get("risks", [])[:3],
)

# 3. 发送飞书消息卡片(使用 feishu_im_user_message 工具)
# 如果用户要求发送飞书通知,调用:
feishu_im_user_message(
    action="send",
    receive_id_type="open_id",
    receive_id=notification["open_id"],
    msg_type="interactive",
    content=notification["card_json"],
)

优雅降级:

  • 如果用户未授权飞书,feishu_im_user_message 会失败
  • 失败时只输出本地报告(result["report_markdown"]),不报错
  • 不要因为飞书通知失败而中断流程

配置说明

用户需提供自己的 API Key(OpenAI兼容),支持:

  • OpenAI API
  • Azure OpenAI
  • Claude(通过兼容代理)
  • DeepSeek
  • 任何 OpenAI-compatible API

定价套餐

| 套餐 | 价格 | 功能 | |------|------|------| | 免费版 | ¥0 | 3份/月,基础风险标注,文本摘要 | | 标准版 | ¥9.9/月 | 30份/月,6种合同类型,Excel报告 | | Pro版 | ¥29/月 | 200份/月,批量处理,风险对比 | | Max版 | ¥69/月 | 不限份数,API优先 |

常见问题

Q: 支持扫描件PDF吗? A: 基础版支持数字文本PDF。扫描件需要OCR支持,可配合 miaoda-doc-parse 技能处理。

Q: 支持英文合同吗? A: 支持中英文合同,请在 base_url 中配置支持英文的模型。

Q: 合同内容是否存储? A: 不存储合同内容,处理完成后即删除,完全符合数据隐私要求。

Q: 如何配置 API? A: 用户在调用时通过 api_key 参数传入,支持 OpenAI 兼容接口。

Q: 可以批量处理多份合同吗? A: Pro版支持批量处理,可上传多个PDF文件并生成对比报告。