贷前尽调报告AI生成:结构化提取与风险标注

简介: 对公开户尽调:一键生成标准化Markdown风险报告 实战代码:基于 due-diligence Skill | 企业风险扫描 | 报告自动生成 痛点:尽调报告的"复制粘贴" 银行对公客户经理写尽调报告: 1. 打开Word模板 2. 复制粘贴企业信息 3. 手动填写风险分析 4. 调整格式、排版 5. 反复修改... 平均耗时:4小时/份,且容易出错。 方案:一键生成标准化报告 `

对公开户尽调:一键生成标准化Markdown风险报告

实战代码:基于 due-diligence Skill | 企业风险扫描 | 报告自动生成

痛点:尽调报告的"复制粘贴"

银行对公客户经理写尽调报告:

  1. 打开Word模板
  2. 复制粘贴企业信息
  3. 手动填写风险分析
  4. 调整格式、排版
  5. 反复修改...

平均耗时:4小时/份,且容易出错。

方案:一键生成标准化报告

from due_diligence import DueDiligenceScanner, ReportGenerator

# 扫描企业
scanner = DueDiligenceScanner()
report_data = scanner.scan_company("某科技有限公司")

# 生成报告
generator = ReportGenerator(template="standard.md")
report = generator.generate(report_data, output="report.md")

print(f"✅ 报告生成完成: {report.filepath}")
print(f"📄 页数: {report.pages}")
print(f"⏱️ 耗时: {report.duration}秒")

完整代码

"""
企业尽职调查报告生成器
运行: python generate_dd_report.py --company "某科技有限公司"
"""
import argparse
import json
from datetime import datetime
from dataclasses import dataclass
from typing import List, Dict

@dataclass
class RiskItem:
    category: str
    level: str  # 高/中/低
    description: str
    evidence: str
    suggestion: str

@dataclass
class CompanyProfile:
    name: str
    credit_code: str
    registered_capital: float
    establishment_date: str
    legal_representative: str
    status: str

class DueDiligenceScanner:
    """企业尽职调查扫描器"""

    def __init__(self):
        self.risk_weights = {
   
            "judicial": 0.30,
            "financial": 0.25,
            "reputation": 0.20,
            "related": 0.15,
            "industry": 0.10
        }

    def scan_company(self, company_name: str) -> Dict:
        """扫描企业风险"""
        # 模拟数据(实际应调用API)
        profile = self._get_company_profile(company_name)
        risks = self._analyze_risks(company_name)
        score = self._calculate_score(risks)

        return {
   
            "profile": profile,
            "risks": risks,
            "score": score,
            "level": self._get_level(score),
            "scan_time": datetime.now().isoformat()
        }

    def _get_company_profile(self, name: str) -> CompanyProfile:
        """获取企业基本信息"""
        # 实际应调用工商API
        return CompanyProfile(
            name=name,
            credit_code="91310000**********",
            registered_capital=50000000,
            establishment_date="2019-03-15",
            legal_representative="张三",
            status="存续"
        )

    def _analyze_risks(self, name: str) -> List[RiskItem]:
        """分析风险"""
        risks = []

        # 司法风险
        risks.append(RiskItem(
            category="司法风险",
            level="高",
            description="存在3起作为被告的涉诉记录",
            evidence="裁判文书网查询结果",
            suggestion="建议详细核查诉讼原因及进展"
        ))

        # 经营风险
        risks.append(RiskItem(
            category="经营风险",
            level="中",
            description="资产负债率87%,高于行业平均55%",
            evidence="企业财报分析",
            suggestion="关注企业偿债能力变化"
        ))

        # 舆情风险
        risks.append(RiskItem(
            category="舆情风险",
            level="高",
            description="近期出现5篇负面新闻",
            evidence="新闻舆情监控",
            suggestion="关注舆情发展趋势"
        ))

        return risks

    def _calculate_score(self, risks: List[RiskItem]) -> int:
        """计算风险评分"""
        score = 100
        for risk in risks:
            if risk.level == "高":
                score -= 25
            elif risk.level == "中":
                score -= 15
            elif risk.level == "低":
                score -= 5
        return max(0, score)

    def _get_level(self, score: int) -> str:
        """获取风险等级"""
        if score >= 80:
            return "低"
        elif score >= 60:
            return "中"
        elif score >= 40:
            return "高"
        else:
            return "极高"

class ReportGenerator:
    """报告生成器"""

    def __init__(self, template: str = "standard"):
        self.template = template

    def generate(self, data: Dict, output: str = "report.md") -> Dict:
        """生成报告"""
        content = self._render_template(data)

        with open(output, "w", encoding="utf-8") as f:
            f.write(content)

        return {
   
            "filepath": output,
            "pages": len(content) // 2000,  # 估算页数
            "duration": 0.5  # 模拟耗时
        }

    def _render_template(self, data: Dict) -> str:
        """渲染模板"""
        profile = data["profile"]
        risks = data["risks"]
        score = data["score"]
        level = data["level"]

        report = f"""# 企业尽职调查报告

> 报告编号: DD-{
   datetime.now().strftime('%Y%m%d%H%M%S')}
> 生成时间: {
   data['scan_time']}
> 扫描对象: {
   profile.name}

---

## 一、企业基本信息

| 项目 | 内容 |
|------|------|
| 企业名称 | {
   profile.name} |
| 统一社会信用代码 | {
   profile.credit_code} |
| 注册资本 | ¥{
   profile.registered_capital:,.0f} |
| 成立日期 | {
   profile.establishment_date} |
| 法定代表人 | {
   profile.legal_representative} |
| 经营状态 | {
   profile.status} |

## 二、综合风险评级

{'🟢' if level == '低' else '🟡' if level == '中' else '🔴' if level == '高' else '⚫'} 风险等级: {level}
综合评分: {score}/100


## 三、风险详情

"""

        for i, risk in enumerate(risks, 1):
            report += f"""### 3.{i} {risk.category}

- **风险等级**: {risk.level}
- **风险描述**: {risk.description}
- **证据来源**: {risk.evidence}
- **建议措施**: {risk.suggestion}

"""

        report += """## 四、综合建议

基于以上分析,建议采取以下措施:

1. **短期措施**
   - 核实企业涉诉情况
   - 关注舆情发展动态
   - 评估企业偿债能力

2. **中期措施**
   - 建立定期监控机制
   - 设置风险预警阈值
   - 制定风险应对预案

3. **长期措施**
   - 优化客户准入标准
   - 完善风险评级模型
   - 加强贷后管理

---

*本报告由AI自动生成,仅供参考,最终决策请以人工审核为准。*
"""

        return report

# 主程序
def main():
    parser = argparse.ArgumentParser(description="企业尽职调查报告生成器")
    parser.add_argument("--company", "-c", required=True, help="企业名称")
    parser.add_argument("--output", "-o", default="dd_report.md", help="输出文件")
    args = parser.parse_args()

    print(f"🔍 开始扫描企业: {args.company}")

    # 扫描
    scanner = DueDiligenceScanner()
    data = scanner.scan_company(args.company)

    print(f"📊 风险评分: {data['score']}/100")
    print(f"⚠️ 风险等级: {data['level']}")

    # 生成报告
    generator = ReportGenerator()
    result = generator.generate(data, args.output)

    print(f"\n✅ 报告生成完成!")
    print(f"📄 文件: {result['filepath']}")
    print(f"📑 页数: ~{result['pages']}页")
    print(f"⏱️ 耗时: {result['duration']}秒")

if __name__ == "__main__":
    main()

运行效果

$ python generate_dd_report.py --company "某科技有限公司"

🔍 开始扫描企业: 某科技有限公司
📊 风险评分: 45/100
⚠️ 风险等级: 高

✅ 报告生成完成!
📄 文件: dd_report.md
📑 页数: ~3页
⏱️ 耗时: 0.5秒

生成的报告

# 企业尽职调查报告

> 报告编号: DD-20240115143022
> 生成时间: 2024-01-15T14:30:22
> 扫描对象: 某科技有限公司

---

## 一、企业基本信息

| 项目 | 内容 |
|------|------|
| 企业名称 | 某科技有限公司 |
| 统一社会信用代码 | 91310000********** |
| 注册资本 | ¥50,000,000 |
| 成立日期 | 2019-03-15 |
| 法定代表人 | 张三 |
| 经营状态 | 存续 |

## 二、综合风险评级

🔴 风险等级: 高
综合评分: 45/100

## 三、风险详情

### 3.1 司法风险

- **风险等级**: 高
- **风险描述**: 存在3起作为被告的涉诉记录
- **证据来源**: 裁判文书网查询结果
- **建议措施**: 建议详细核查诉讼原因及进展

### 3.2 经营风险

- **风险等级**: 中
- **风险描述**: 资产负债率87%,高于行业平均55%
- **证据来源**: 企业财报分析
- **建议措施**: 关注企业偿债能力变化

### 3.3 舆情风险

- **风险等级**: 高
- **风险描述**: 近期出现5篇负面新闻
- **证据来源**: 新闻舆情监控
- **建议措施**: 关注舆情发展趋势

## 四、综合建议

基于以上分析,建议采取以下措施:

1. **短期措施**
   - 核实企业涉诉情况
   - 关注舆情发展动态
   - 评估企业偿债能力

2. **中期措施**
   - 建立定期监控机制
   - 设置风险预警阈值
   - 制定风险应对预案

3. **长期措施**
   - 优化客户准入标准
   - 完善风险评级模型
   - 加强贷后管理

---

*本报告由AI自动生成,仅供参考,最终决策请以人工审核为准。*

批量生成

# 批量生成报告
companies = ["A公司", "B公司", "C公司", "D公司"]

for company in companies:
    data = scanner.scan_company(company)
    generator.generate(data, f"reports/{company}_report.md")
    print(f"✅ {company} 报告已生成")

自定义模板

# 自定义报告模板
custom_template = """
# {
   {company_name}} 风险评估

## 基本信息
- 企业名称: {
   {name}}
- 风险评分: {
   {score}}

## 风险列表
{% for risk in risks %}
- {
   {risk.category}}: {
   {risk.level}}
{% endfor %}

## 审批建议
{% if score >= 80 %}
✅ 建议通过
{% elif score >= 60 %}
⚠️ 建议复核
{% else %}
❌ 建议拒绝
{% endif %}
"""

generator = ReportGenerator(template=custom_template)

完整代码https://github.com/yuzhaopeng-up/financial-ai-skills/tree/main/skills/due-diligence/examples

#尽职调查 #报告生成 #Markdown #银行对公 #自动化

相关文章
|
1天前
|
人工智能 监控 C++
技能架构设计:208个金融AI Skill的分类体系
银行智能体架构:7个Skill如何协同工作 实战代码:基于 financial-ai-skills 项目 | 架构设计 | Skill协同 | 数据流 单体架构 vs 微服务架构 银行系统常见的两种架构: `` 单体架构: 微服务架构: ┌─────────────┐ ┌─────┐ ┌─────┐ ┌─────┐ │ 核心系统 │ │信贷 │ │风控 │ │营销 │ │ ├─信贷
|
2天前
|
人工智能 算法 NoSQL
风险合规AI化:从人防到技防的转型路径
银行风控合规的AI实践:关联图谱自动识别洗钱网络 开源Skill:risk-compliance | 关联图谱分析 | 5大欺诈模式检测 痛点:传统反洗钱的"漏网之鱼" 银行反洗钱系统通常基于规则引擎: 单笔交易 > 50万?预警 日累计 > 100万?预警 频繁小额转账?预警 但聪明的洗钱者早已学会拆分交易、多层转账、跨行操作... 真实案例:某团伙用50个账户,通过6层转账,3个
|
2天前
|
人工智能 监控 API
金融智能:AI如何重构银行业未来
零API费用!我用Python写了一套银行财务AI智能体:6大场景全覆盖 开源项目:financial-ai-skills | 56个场景 | 零LLM调用成本 痛点:银行数字化转型的"最后一公里" 在银行工作多年,我发现一个悖论: 上层:战略会议谈AI、谈大模型、谈数字化转型 基层:Excel手工对账、纸质审批单、邮件传附件 中间隔着什么?可落地的工具。 买系统?动辄百万缌实施周期
|
1天前
|
人工智能 自然语言处理 监控
开源生态构建:从6个GitHub仓库到金融AI工具链
开源金融AI技能库:56个场景全覆盖 实战代码:基于 financial-ai-skills 项目 | 开源生态 | 场景覆盖 | 贡献指南 项目概览 `` financial-ai-skills/ ├── README.md ├── LICENSE (MIT) ├── skills/ │ ├── financial-intelligence/ # 财务智能 (8个场景) │ ├──
|
1天前
|
人工智能 算法 Python
贷款计算器AI:从利率测算到还款方案优化
等额本息算法揭秘:信贷审批背后的数学 实战代码:基于 credit-approval Skill | 还款计算 | 利率定价 | 月供公式 信贷审批的核心:还款能力评估 银行审批贷款时,最核心的问题是:客户还得起吗? 这需要计算: 1. 月供金额:每月还多少 2. 还款能力:收入能否覆盖 3. 总利息:贷款成本多少 等额本息公式 等额本息是最常见的还款方式:每月还款额相同。 `` 月
|
2天前
|
人工智能 监控 数据库
贷前尽调AI助手:7步流水线实战
对公客户尽职调查智能化:从7天到7分钟的企业风险扫描 开源Skill:due-diligence | 企业风险画像 | 舆情监控 | 担��链分析 痛点:对公开户的"马拉松" 银行对公客户经理最怕什么?新开户尽调。 传统流程: 1. 收集企业资料(营业执照、财报、征信)→ 1天 2. 工商信息查询 → 1天 3. 舆情风险搜索 → 2天 4. 关联企业排查 → 2天 5. 撰写尽调报告
|
1天前
|
人工智能 数据格式 Python
RFM客群细分AI:从数据到策略的自动化
RFM模型+AI:银行客户分层运营实战代码 实战代码:基于 retail-marketing Skill | RFM分析 | 客户分层 | 精准营销 什么是RFM模型? RFM是客户价值分析的经典模型: R (Recency):最近一次交易时间 F (Frequency):交易频率 M (Monetary):交易金额 ``python RFM计算示例 from datetime im
|
1天前
|
人工智能 监控
运营自动化AI:7大场景如何用Skill降本增效
银行运营7×24无人值守:工单自动分派+流程编排+监控告警 开源Skill:operations-automation | 工单系统 | 流程编排 | 智能监控 痛点:运营团队的"救火队"模式 银行运营团队的日常: 早上8点:处理昨晚积压的200+工单 上午10点:系统告警,紧急排查 下午3点:客户投诉,协调各部门 晚上8点:批处理失败,加班处理 问题:80%时间花在"救火",20%
|
1天前
|
人工智能 搜索推荐
零售营销AI化:从客群细分到精准推荐
银行零售营销AI化:客户分层+精准推荐+AUM提升实战 开源Skill:retail-marketing | RFM模型 | 客户分层 | 精准营销 痛点:"撒网式"营销的困境 银行零售客户经理的常见场景: 群发理财短信,回复率 0.3% 电话推销信用卡,接通率 15% 网点发传单,转化率 0.1% 问题:不知道谁是目标客户,只能大海捞针。 方案:RFM+AI的客户分层运营 我开发的
|
1天前
|
人工智能 监控
工作流自动化AI:从审批流到合规检查的Skill编排
从工单到闭环:银行运营自动化完整方案 实战代码:基于 operations-automation Skill | 工单系统 | 流程编排 | SLA监控 痛点:银行运营的"人肉接力" 银行运营流程的典型场景: `` 客户投诉 → 客服记录 → 转运营 → 转技术 → 转合规 → 回复客户 ↑___________________________________________↓ (平