Files
XH-202626/upgrade_svgs_super_clean.py
T

835 lines
59 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""
竞赛汇报 PPT (22页) 高精矢量 SVG 生成器 (带 Chrome/Mac 浏览器 Mockup 系统截图占位符)
核心优化:
1. 拓展至 22 页,专设 4 大核心系统功能【真实截图展示页】,提供高端浏览器窗口外壳占位框
2. 全局保持超大字号与极致精简文本
3. 包含完整系统架构流程图、知识图谱与辩论流程
"""
import os
PROJECT_DIR = r"d:\code\XH-202626_科创企业特有风险的识别与管理\projects\XH-202626-presentation_ppt169_20260727"
OUTPUT_DIR = os.path.join(PROJECT_DIR, "svg_output")
os.makedirs(OUTPUT_DIR, exist_ok=True)
BG_COLOR = "#0A0F1E"
CARD_BG = "#111827"
CARD_SURFACE = "#1E293B"
CARD_BORDER = "#334155"
PRIMARY = "#3B82F6"
ACCENT = "#F97316"
SECONDARY_ACCENT = "#22D3EE"
TEXT_MAIN = "#F8FAFC"
TEXT_MUTED = "#94A3B8"
TEXT_SUB = "#CBD5E1"
POSITIVE = "#22C55E"
WARNING = "#EAB308"
NEGATIVE = "#EF4444"
FONT_TITLE = "SimHei, Microsoft YaHei, sans-serif"
FONT_BODY = "Microsoft YaHei, sans-serif"
def svg_header(title, subtitle):
return f'''
<!-- Header -->
<text x="40" y="65" font-family="{FONT_TITLE}" font-size="36" font-weight="bold" fill="{TEXT_MAIN}">{title}</text>
<text x="40" y="105" font-family="{FONT_BODY}" font-size="18" fill="{SECONDARY_ACCENT}">{subtitle}</text>
<line x1="40" y1="122" x2="1240" y2="122" stroke="{CARD_BORDER}" stroke-width="1.5"/>
'''
def svg_footer(page_num):
return ""
def svg_card(x, y, w, h, bg=CARD_BG, border=CARD_BORDER, border_w=1, rx=8):
return f'<rect x="{x}" y="{y}" width="{w}" height="{h}" rx="{rx}" fill="{bg}" stroke="{border}" stroke-width="{border_w}"/>'
def svg_browser_mockup(x, y, w, h, url="https://risk.aiformat.cn", label_title="界面截图占位", placeholder_tip="请在此处插入或替换真实系统运行截图"):
return f'''
<g transform="translate({x}, {y})">
<!-- 浏览器外框 -->
<rect x="0" y="0" width="{w}" height="{h}" rx="10" fill="#1E293B" stroke="{PRIMARY}" stroke-width="1.5"/>
<!-- 控制按钮 -->
<circle cx="20" cy="18" r="6" fill="#EF4444"/>
<circle cx="38" cy="18" r="6" fill="#F59E0B"/>
<circle cx="56" cy="18" r="6" fill="#10B981"/>
<!-- 网址栏 -->
<rect x="80" y="7" width="{w - 100}" height="22" rx="4" fill="#0F172A"/>
<text x="95" y="22" font-family="{FONT_BODY}" font-size="13" fill="{SECONDARY_ACCENT}">https://{url}</text>
<!-- 内容区域占位 -->
<rect x="10" y="36" width="{w - 20}" height="{h - 46}" rx="6" fill="#0A0F1E" stroke="{CARD_BORDER}" stroke-dasharray="6,6" stroke-width="2"/>
<!-- 引导说明卡片 -->
<g transform="translate({(w - 20)/2 + 10}, {(h - 46)/2 + 36})">
<rect x="-220" y="-45" width="440" height="90" rx="8" fill="{CARD_SURFACE}" stroke="{ACCENT}" stroke-width="1.5"/>
<text x="0" y="-12" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">{label_title}</text>
<text x="0" y="20" font-family="{FONT_BODY}" font-size="15" fill="{TEXT_MUTED}" text-anchor="middle">{placeholder_tip}</text>
</g>
</g>
'''
# ----------------- 22 页全套模板 -----------------
def gen_p01():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
<path d="M 0,180 L 1280,180 M 0,360 L 1280,360 M 0,540 L 1280,540" stroke="#1E293B" stroke-width="1" opacity="0.3"/>
<path d="M 320,0 L 320,720 M 640,0 L 640,720 M 960,0 L 960,720" stroke="#1E293B" stroke-width="1" opacity="0.3"/>
<circle cx="640" cy="360" r="280" fill="none" stroke="{PRIMARY}" stroke-width="1.5" opacity="0.15"/>
<circle cx="640" cy="360" r="420" fill="none" stroke="{SECONDARY_ACCENT}" stroke-width="1" opacity="0.1"/>
<g transform="translate(640, 280)">
<text x="0" y="0" font-family="{FONT_TITLE}" font-size="46" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">数智风控:AI 科创企业新型风险前瞻治理方案</text>
<text x="0" y="70" font-family="{FONT_TITLE}" font-size="26" font-weight="bold" fill="{SECONDARY_ACCENT}" text-anchor="middle">基于语义计算与知识图谱的闭环风控系统</text>
</g>
<g transform="translate(640, 520)">
<line x1="-200" y1="-30" x2="200" y2="-30" stroke="{CARD_BORDER}" stroke-width="1.5"/>
<text x="0" y="10" font-family="{FONT_BODY}" font-size="24" font-weight="bold" fill="{TEXT_SUB}" text-anchor="middle">提报单位:厦门城市职业学院</text>
</g>
{svg_footer(1)}
</svg>'''
def gen_p02():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("汇报大纲", "研究报告与原型系统九大核心板块")}
<g transform="translate(60, 145)">
<!-- 行 1 -->
{svg_card(0, 0, 270, 230, CARD_BG, PRIMARY, 1.5)}
<text x="25" y="45" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{PRIMARY}">01</text>
<text x="25" y="85" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}">研究背景与局限</text>
<text x="25" y="135" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 财务范式失灵</text>
<text x="25" y="175" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 闭环风控目标</text>
{svg_card(295, 0, 270, 230, CARD_BG, CARD_BORDER, 1)}
<text x="320" y="45" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{PRIMARY}">02</text>
<text x="320" y="85" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}">六维特有风险</text>
<text x="320" y="135" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 六大场景定义</text>
<text x="320" y="175" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 量化路径与数据</text>
{svg_card(590, 0, 270, 230, CARD_BG, CARD_BORDER, 1)}
<text x="615" y="45" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{PRIMARY}">03</text>
<text x="615" y="85" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}">系统整体架构</text>
<text x="615" y="135" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 四层解耦架构图</text>
<text x="615" y="175" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• DeepSeek 底座</text>
{svg_card(885, 0, 270, 230, CARD_BG, ACCENT, 1.5)}
<text x="910" y="45" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{ACCENT}">04</text>
<text x="910" y="85" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}">Multi-Agent 辩论</text>
<text x="910" y="135" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 三节点质询</text>
<text x="910" y="175" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 一票否决规则</text>
<!-- 行 2 -->
{svg_card(0, 255, 270, 230, CARD_BG, SECONDARY_ACCENT, 1.5)}
<text x="25" y="300" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{SECONDARY_ACCENT}">05</text>
<text x="25" y="340" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}">供应链知识图谱</text>
<text x="25" y="390" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 拓扑穿透模型</text>
<text x="25" y="430" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• BIS 清单预警</text>
{svg_card(295, 255, 270, 230, CARD_BG, CARD_BORDER, 1)}
<text x="320" y="300" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{PRIMARY}">06</text>
<text x="320" y="340" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}">平安动态定价</text>
<text x="320" y="390" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 动态保费精算</text>
<text x="320" y="430" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 自动化核保报告</text>
{svg_card(590, 255, 270, 230, CARD_BG, POSITIVE, 1.5)}
<text x="615" y="300" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{POSITIVE}">07</text>
<text x="615" y="340" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{POSITIVE}">系统实操截图展示</text>
<text x="615" y="390" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 4 大功能模块真实截图</text>
<text x="615" y="430" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 浏览器 Mockup 展示</text>
{svg_card(885, 255, 270, 230, CARD_BG, CARD_BORDER, 1)}
<text x="910" y="300" font-family="{FONT_TITLE}" font-size="28" font-weight="bold" fill="{PRIMARY}">08</text>
<text x="910" y="340" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}">课题研发与展望</text>
<text x="910" y="390" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 跨学科成果展示</text>
<text x="910" y="430" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 场景泛化扩展</text>
</g>
{svg_footer(2)}
</svg>'''
def gen_p03():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("研究背景与传统范式局限", "传统静态财务风控严重盲区")}
<g transform="translate(60, 140)">
{svg_card(0, 0, 560, 500, CARD_BG, NEGATIVE, 1.5)}
<rect x="0" y="0" width="560" height="55" rx="8" fill="#7F1D1D"/>
<text x="280" y="36" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">传统静态财务风控两大盲区</text>
<g transform="translate(30, 85)">
<text x="0" y="35" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{NEGATIVE}">盲区一:轻资产与高研致财报失真</text>
<text x="0" y="75" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 研发投入占比高,缺少固定资产抵押</text>
<text x="0" y="115" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 会计资本化操纵难以识别</text>
<text x="0" y="185" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{NEGATIVE}">盲区二:非标特有风险完全隐蔽</text>
<text x="0" y="225" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 技术路线被颠覆、核心人员流失</text>
<text x="0" y="265" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 算法违规被拒、地缘政治制裁</text>
</g>
{svg_card(600, 0, 560, 500, CARD_BG, POSITIVE, 1.5)}
<rect x="600" y="0" width="560" height="55" rx="8" fill="#064E3B"/>
<text x="880" y="36" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">全链条闭环风控目标</text>
<g transform="translate(630, 85)">
{svg_card(0, 20, 500, 100, CARD_SURFACE, POSITIVE, 1)}
<text x="30" y="60" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{POSITIVE}">看得见风险</text>
<text x="30" y="95" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 实时穿透非结构化数据与关系网</text>
{svg_card(0, 145, 500, 100, CARD_SURFACE, POSITIVE, 1)}
<text x="30" y="185" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{POSITIVE}">管得住过程</text>
<text x="30" y="220" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• Multi-Agent 多视角质询与动态评估</text>
{svg_card(0, 270, 500, 100, CARD_SURFACE, POSITIVE, 1)}
<text x="30" y="310" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{POSITIVE}">降得下损失</text>
<text x="30" y="345" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 平安科创综合险与动态精算定价</text>
</g>
</g>
{svg_footer(3)}
</svg>'''
def gen_p04():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("课题整体研究路线图", "理论探索 ➔ 算法建模 ➔ 工程落地 ➔ 保险闭环")}
{svg_card(60, 150, 1160, 500, CARD_BG, PRIMARY, 1.5)}
<g transform="translate(90, 220)">
{svg_card(0, 0, 240, 360, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="0" width="240" height="50" rx="8" fill="{PRIMARY}"/>
<text x="120" y="33" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">阶段一:理论构建</text>
<text x="20" y="100" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 识别六维特有风险</text>
<text x="20" y="150" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 建立多源数据提取</text>
<text x="20" y="200" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 构建量化计算指标</text>
{svg_card(280, 0, 240, 360, CARD_SURFACE, ACCENT, 1.5)}
<rect x="280" y="0" width="240" height="50" rx="8" fill="{ACCENT}"/>
<text x="400" y="33" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">阶段二:算法研发</text>
<text x="300" y="100" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• Multi-Agent 质询</text>
<text x="300" y="150" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 冲突裁决一票否决</text>
<text x="300" y="200" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 知识图谱拓扑穿透</text>
{svg_card(560, 0, 240, 360, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="560" y="0" width="240" height="50" rx="8" fill="#0891B2"/>
<text x="680" y="33" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">阶段三:原型开发</text>
<text x="580" y="100" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• Python 数据流水线</text>
<text x="580" y="150" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• DeepSeek API 封装</text>
<text x="580" y="200" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 交互式控制台大屏</text>
{svg_card(840, 0, 240, 360, CARD_SURFACE, POSITIVE, 1.5)}
<rect x="840" y="0" width="240" height="50" rx="8" fill="#059669"/>
<text x="960" y="33" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">阶段四:商业闭环</text>
<text x="860" y="100" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 科创综合险产品</text>
<text x="860" y="150" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 动态费率精算模型</text>
<text x="860" y="200" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 自动核保报告生成</text>
</g>
{svg_footer(4)}
</svg>'''
def gen_p05():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("科创企业六维特有风险模型", "突破传统静态财务框架的动态评估矩阵")}
<g transform="translate(60, 140)">
{svg_card(0, 0, 360, 235, CARD_BG, PRIMARY, 1.5)}
<text x="20" y="40" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{PRIMARY}">技术路线颠覆风险</text>
<text x="20" y="90" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 竞品突破导致技术迭代</text>
<text x="20" y="130" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 量化:竞品重合度 + 专利增速</text>
{svg_card(390, 0, 360, 235, CARD_BG, PRIMARY, 1.5)}
<text x="410" y="40" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{PRIMARY}">核心技术人员流失</text>
<text x="410" y="90" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 核心科学家/CTO 离职</text>
<text x="410" y="130" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 量化:高管变动 NLP 抽取</text>
{svg_card(780, 0, 360, 235, CARD_BG, ACCENT, 1.5)}
<text x="800" y="40" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{ACCENT}">算法与数据合规风险</text>
<text x="800" y="90" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 深度合成未备案/数据出境</text>
<text x="800" y="130" font-family="{FONT_BODY}" font-size="18" fill="{ACCENT}">• 一票否决机制</text>
{svg_card(0, 255, 360, 235, CARD_BG, ACCENT, 1.5)}
<text x="20" y="295" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{ACCENT}">地缘与出口管制</text>
<text x="20" y="345" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 实体清单引发二级断供</text>
<text x="20" y="385" font-family="{FONT_BODY}" font-size="18" fill="{ACCENT}">• 量化:图谱 BFS 穿透传染</text>
{svg_card(390, 255, 360, 235, CARD_BG, PRIMARY, 1.5)}
<text x="410" y="295" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{PRIMARY}">研发资本化操纵</text>
<text x="410" y="345" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 虚增资本化粉饰利润</text>
<text x="410" y="385" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 量化:资本化率跳变偏离</text>
{svg_card(780, 255, 360, 235, CARD_BG, PRIMARY, 1.5)}
<text x="800" y="295" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{PRIMARY}">客户/供应商集中度</text>
<text x="800" y="345" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_MAIN}">• 单一大客户引发单点故障</text>
<text x="800" y="385" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 量化:HHI 指数 + 前五大占比</text>
</g>
{svg_footer(5)}
</svg>'''
def gen_p06():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("六维风险量化与计算路径", "多源数据抽取与精细化量化指标")}
{svg_card(50, 130, 1180, 540, CARD_BG, PRIMARY, 1.5)}
<rect x="50" y="130" width="1180" height="50" rx="8" fill="{CARD_SURFACE}"/>
<text x="130" y="162" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{SECONDARY_ACCENT}" text-anchor="middle">风险维度</text>
<text x="350" y="162" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{SECONDARY_ACCENT}" text-anchor="middle">量化指标</text>
<text x="630" y="162" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{SECONDARY_ACCENT}" text-anchor="middle">数据来源</text>
<text x="970" y="162" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{SECONDARY_ACCENT}" text-anchor="middle">判定与计算模型</text>
<line x1="50" y1="180" x2="1230" y2="180" stroke="{CARD_BORDER}" stroke-width="1.5"/>
<text x="75" y="225" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}">技术路线颠覆</text>
<text x="240" y="225" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">竞品重合度 / 专利增速</text>
<text x="520" y="225" font-family="{FONT_BODY}" font-size="16" fill="{TEXT_MUTED}">巨潮 PDF / 专利库</text>
<text x="770" y="225" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">DeepSeek 语义 + 专利分布余弦相似度</text>
<line x1="75" y1="252" x2="1205" y2="252" stroke="{CARD_BORDER}" stroke-width="1" opacity="0.4"/>
<text x="75" y="297" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}">核心人员流失</text>
<text x="240" y="297" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">CTO 离职 / 高管变动</text>
<text x="520" y="297" font-family="{FONT_BODY}" font-size="16" fill="{TEXT_MUTED}">巨潮公告 / 高管变更</text>
<text x="770" y="297" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">NLP 提取核心名单异动,直接扣分</text>
<line x1="75" y1="324" x2="1205" y2="324" stroke="{CARD_BORDER}" stroke-width="1" opacity="0.4"/>
<text x="75" y="369" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{ACCENT}">算法与数据合规</text>
<text x="240" y="369" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">深度合成备案 / 出境评估</text>
<text x="520" y="369" font-family="{FONT_BODY}" font-size="16" fill="{TEXT_MUTED}">网信办算法备案库</text>
<text x="770" y="369" font-family="{FONT_BODY}" font-size="17" font-weight="bold" fill="{ACCENT}">备案库比对,未备案直接触发一票否决</text>
<line x1="75" y1="396" x2="1205" y2="396" stroke="{CARD_BORDER}" stroke-width="1" opacity="0.4"/>
<text x="75" y="441" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{ACCENT}">地缘与出口管制</text>
<text x="240" y="441" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">实体清单波及 / 供应链断供</text>
<text x="520" y="441" font-family="{FONT_BODY}" font-size="16" fill="{TEXT_MUTED}">美国 BIS List / 海关关单</text>
<text x="770" y="441" font-family="{FONT_BODY}" font-size="17" font-weight="bold" fill="{ACCENT}">BFS 图谱传染算法计算指数 I_contagion</text>
<line x1="75" y1="468" x2="1205" y2="468" stroke="{CARD_BORDER}" stroke-width="1" opacity="0.4"/>
<text x="75" y="513" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}">研发资本化操纵</text>
<text x="240" y="513" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">资本化率 / 同行偏离</text>
<text x="520" y="513" font-family="{FONT_BODY}" font-size="16" fill="{TEXT_MUTED}">AKShare 财报明细</text>
<text x="770" y="513" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">资本化率 &gt; 40% 且 偏离均值 &gt; 20% 警示</text>
<line x1="75" y1="540" x2="1205" y2="540" stroke="{CARD_BORDER}" stroke-width="1" opacity="0.4"/>
<text x="75" y="585" font-family="{FONT_TITLE}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}">客户/供应商集中</text>
<text x="240" y="585" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">前五大集中度 / HHI 指数</text>
<text x="520" y="585" font-family="{FONT_BODY}" font-size="16" fill="{TEXT_MUTED}">AKShare 集中度数据</text>
<text x="770" y="585" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">前五大营收占比 &gt; 80% 触发惩罚系数</text>
{svg_footer(6)}
</svg>'''
def gen_p07():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<defs>
<marker id="arch-arrow" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
<path d="M 0 0 L 10 5 L 0 10 z" fill="{SECONDARY_ACCENT}"/>
</marker>
</defs>
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("系统整体架构图", "数据采集 ➔ 核心引擎 ➔ 智能决策 ➔ 商业闭环")}
<g transform="translate(60, 140)">
{svg_card(0, 0, 1160, 500, CARD_BG, PRIMARY, 1.5)}
<!-- 层 4:应用闭环层 -->
{svg_card(30, 20, 1100, 95, CARD_SURFACE, POSITIVE, 1.5)}
<rect x="30" y="20" width="220" height="95" rx="8" fill="#059669"/>
<text x="140" y="75" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">应用闭环层</text>
<g transform="translate(270, 42)">
{svg_card(0, 0, 250, 50, CARD_BG, POSITIVE, 1)}
<text x="125" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">科创综合险产品方案</text>
{svg_card(275, 0, 250, 50, CARD_BG, POSITIVE, 1)}
<text x="400" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">动态保费精算模型</text>
{svg_card(550, 0, 280, 50, CARD_BG, POSITIVE, 1)}
<text x="690" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">自动化核保决策报告</text>
</g>
<!-- 向上连接箭头 3->4 -->
<path d="M 680,140 L 680,120" stroke="{SECONDARY_ACCENT}" stroke-width="2.5" marker-end="url(#arch-arrow)"/>
<!-- 层 3:智能决策层 -->
{svg_card(30, 140, 1100, 95, CARD_SURFACE, ACCENT, 1.5)}
<rect x="30" y="140" width="220" height="95" rx="8" fill="{ACCENT}"/>
<text x="140" y="195" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">智能决策层</text>
<g transform="translate(270, 162)">
{svg_card(0, 0, 250, 50, CARD_BG, ACCENT, 1)}
<text x="125" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">Multi-Agent 辩论诊断</text>
{svg_card(275, 0, 250, 50, CARD_BG, ACCENT, 1)}
<text x="400" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">法官一票否决裁决</text>
{svg_card(550, 0, 280, 50, CARD_BG, ACCENT, 1)}
<text x="690" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">图谱 BFS 风险穿透</text>
</g>
<!-- 向上连接箭头 2->3 -->
<path d="M 680,260 L 680,240" stroke="{SECONDARY_ACCENT}" stroke-width="2.5" marker-end="url(#arch-arrow)"/>
<!-- 层 2:核心推理层 -->
{svg_card(30, 260, 1100, 95, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="30" y="260" width="220" height="95" rx="8" fill="#0891B2"/>
<text x="140" y="315" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">核心推理层</text>
<g transform="translate(270, 282)">
{svg_card(0, 0, 250, 50, CARD_BG, SECONDARY_ACCENT, 1)}
<text x="125" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">DeepSeek 推理底座</text>
{svg_card(275, 0, 250, 50, CARD_BG, SECONDARY_ACCENT, 1)}
<text x="400" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">NetworkX 图谱计算</text>
{svg_card(550, 0, 280, 50, CARD_BG, SECONDARY_ACCENT, 1)}
<text x="690" y="32" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">规则前置校验引擎</text>
</g>
<!-- 向上连接箭头 1->2 -->
<path d="M 680,380 L 680,360" stroke="{SECONDARY_ACCENT}" stroke-width="2.5" marker-end="url(#arch-arrow)"/>
<!-- 层 1:数据采集层 -->
{svg_card(30, 380, 1100, 95, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="30" y="380" width="220" height="95" rx="8" fill="{PRIMARY}"/>
<text x="140" y="435" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">数据采集层</text>
<g transform="translate(270, 402)">
{svg_card(0, 0, 190, 50, CARD_BG, PRIMARY, 1)}
<text x="95" y="32" font-family="{FONT_BODY}" font-size="17" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">巨潮 PDF 年报</text>
{svg_card(205, 0, 190, 50, CARD_BG, PRIMARY, 1)}
<text x="300" y="32" font-family="{FONT_BODY}" font-size="17" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">网信办算法库</text>
{svg_card(410, 0, 190, 50, CARD_BG, PRIMARY, 1)}
<text x="505" y="32" font-family="{FONT_BODY}" font-size="17" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">美国 BIS List</text>
{svg_card(615, 0, 215, 50, CARD_BG, PRIMARY, 1)}
<text x="722" y="32" font-family="{FONT_BODY}" font-size="17" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">AKShare 财报</text>
</g>
</g>
{svg_footer(7)}
</svg>'''
def gen_p08():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("Multi-Agent 辩论诊断机制", "多视角交叉质证与自动冲突消除架构")}
{svg_card(60, 140, 1160, 500, CARD_BG, ACCENT, 1.5)}
<g transform="translate(90, 170)">
{svg_card(340, 0, 400, 110, CARD_SURFACE, ACCENT, 2)}
<rect x="340" y="0" width="400" height="40" rx="8" fill="{ACCENT}"/>
<text x="540" y="27" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">法官 Node (Judge Agent)</text>
<text x="540" y="75" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}" text-anchor="middle">综合质询观点 | 消除冲突 | 一票否决裁决</text>
{svg_card(0, 160, 320, 240, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="160" width="320" height="45" rx="8" fill="{PRIMARY}"/>
<text x="160" y="190" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">法务 Agent (Law)</text>
<text x="20" y="245" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 网信办算法备案核查</text>
<text x="20" y="290" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 数据出境评估风险</text>
{svg_card(380, 160, 320, 240, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="380" y="160" width="320" height="45" rx="8" fill="#0891B2"/>
<text x="540" y="190" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">技术 Agent (Tech)</text>
<text x="400" y="245" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 技术路线颠覆推演</text>
<text x="400" y="290" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 核心团队流失评估</text>
{svg_card(760, 160, 320, 240, CARD_SURFACE, POSITIVE, 1.5)}
<rect x="760" y="160" width="320" height="45" rx="8" fill="#059669"/>
<text x="920" y="190" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">财务 Agent (Finance)</text>
<text x="780" y="245" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• 研发资本化率异常</text>
<text x="780" y="290" font-family="{FONT_BODY}" font-size="18" fill="{TEXT_SUB}">• HHI 集中度风险</text>
</g>
{svg_footer(8)}
</svg>'''
def gen_p09():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("多智能体冲突消除与裁决规则", "一票否决与加权融合规则")}
{svg_card(60, 140, 1160, 500, CARD_BG, PRIMARY, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 510, 210, CARD_SURFACE, NEGATIVE, 1.5)}
<rect x="0" y="0" width="510" height="45" rx="8" fill="#7F1D1D"/>
<text x="255" y="30" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">规则一:合规红线一票否决</text>
<text x="25" y="90" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 算法未备案直接拒保(得分归 0</text>
<text x="25" y="140" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 列入 BIS 清单触发最高级风险惩罚</text>
{svg_card(550, 0, 510, 210, CARD_SURFACE, WARNING, 1.5)}
<rect x="550" y="0" width="510" height="45" rx="8" fill="#713F12"/>
<text x="805" y="30" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">规则二:证据加权与冲突平息</text>
<text x="575" y="90" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 意见分歧时依赖检索硬证据</text>
<text x="575" y="140" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 综合加权计算综合风险指数 Score</text>
{svg_card(0, 240, 1060, 190, CARD_SURFACE, POSITIVE, 1.5)}
<rect x="0" y="240" width="1060" height="45" rx="8" fill="#064E3B"/>
<text x="530" y="270" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">最终裁决与决策输出</text>
<text x="40" y="330" font-family="{FONT_BODY}" font-size="20" font-weight="bold" fill="{POSITIVE}">• 决策分类:[低风险 / 中风险 / 高风险 / 直接拒保]</text>
<text x="40" y="380" font-family="{FONT_BODY}" font-size="20" fill="{TEXT_SUB}">• 自动调取基础保费上浮系数与动态特约条款</text>
</g>
{svg_footer(9)}
</svg>'''
def gen_p10():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("供应链知识图谱本体设计", "NetworkX 异构图谱建模")}
{svg_card(60, 140, 1160, 500, CARD_BG, SECONDARY_ACCENT, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 510, 430, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="0" width="510" height="50" rx="8" fill="{PRIMARY}"/>
<text x="255" y="33" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">图谱核心实体 Node</text>
<text x="30" y="95" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 目标科创企业 (Core Target)</text>
<text x="30" y="155" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 1 级/ 2 级/ 3 级 供应商 (Suppliers)</text>
<text x="30" y="215" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 美国 BIS 实体清单对象 (BIS Entity)</text>
<text x="30" y="275" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 核心专利与技术节点 (Patents)</text>
<text x="30" y="335" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 算法备案归属主体 (Algorithm Reg)</text>
{svg_card(550, 0, 510, 430, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="550" y="0" width="510" height="50" rx="8" fill="#0891B2"/>
<text x="805" y="33" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">拓扑关系 Edge</text>
<text x="580" y="95" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 供应依赖 (SUPPLIES_TO)</text>
<text x="580" y="155" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 制裁波及 (SANCTIONED_BY)</text>
<text x="580" y="215" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 专利竞争 (COMPETES_WITH)</text>
<text x="580" y="275" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 股权关联 (OWNS_SHARES)</text>
<text x="580" y="335" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 核心流向 (MIGRATED_TO)</text>
</g>
{svg_footer(10)}
</svg>'''
def gen_p11():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("供应链风险拓扑传染算法", "BFS 毫秒级多级穿透预警算法")}
{svg_card(60, 140, 1160, 500, CARD_BG, ACCENT, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 1060, 110, CARD_SURFACE, ACCENT, 1.5)}
<text x="30" y="45" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{ACCENT}">传染衰减计算公式:</text>
<text x="30" y="85" font-family="{FONT_BODY}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}">I_contagion = Sum( (1 / d_i^2) * Weight_i ) [d_i 为拓扑最短距离]</text>
{svg_card(0, 140, 510, 280, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="140" width="510" height="45" rx="8" fill="{PRIMARY}"/>
<text x="255" y="170" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">算法优势</text>
<text x="25" y="225" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 穿透 2-3 级隐蔽供应商断供</text>
<text x="25" y="275" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 突破单体财报审查局限</text>
<text x="25" y="325" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 毫秒级图解计算</text>
{svg_card(550, 140, 510, 280, CARD_SURFACE, POSITIVE, 1.5)}
<rect x="550" y="140" width="510" height="45" rx="8" fill="#059669"/>
<text x="805" y="170" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">实际应用成效</text>
<text x="575" y="225" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 精准捕捉二级供应商 BIS 制裁</text>
<text x="575" y="275" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 自动将风险传导路径标红预警</text>
<text x="575" y="325" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 自动触发保费上浮系数</text>
</g>
{svg_footer(11)}
</svg>'''
def gen_p12():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("中国平安主业创新产品矩阵", "科创企业特有风险综合险三大产品")}
{svg_card(60, 140, 1160, 500, CARD_BG, PRIMARY, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 330, 420, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="0" width="330" height="55" rx="8" fill="{PRIMARY}"/>
<text x="165" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">产品一:研发成果保险</text>
<text x="25" y="110" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 承保技术迭代颠覆损失</text>
<text x="25" y="165" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 补偿研发失败沉没成本</text>
<text x="25" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 针对研发资本化率监控</text>
{svg_card(365, 0, 330, 420, CARD_SURFACE, ACCENT, 1.5)}
<rect x="365" y="0" width="330" height="55" rx="8" fill="{ACCENT}"/>
<text x="530" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">产品二:合规与断供险</text>
<text x="390" y="110" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 承保算法合规被拒损失</text>
<text x="390" y="165" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 赔偿实体清单断供停工</text>
<text x="390" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 图谱穿透动态监控</text>
{svg_card(730, 0, 330, 420, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="730" y="0" width="330" height="55" rx="8" fill="#0891B2"/>
<text x="895" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">产品三:核心人才离任险</text>
<text x="755" y="110" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 补偿首席科学家流失</text>
<text x="755" y="165" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 覆盖团队重组过渡费用</text>
<text x="755" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• NLP 异动自动抓取</text>
</g>
{svg_footer(12)}
</svg>'''
def gen_p13():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("平安主业动态保费定价引擎", "风控评分与费率精算联动模型")}
{svg_card(60, 140, 1160, 500, CARD_BG, POSITIVE, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 1060, 110, CARD_SURFACE, POSITIVE, 1.5)}
<text x="30" y="45" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{POSITIVE}">动态保费精算模型:</text>
<text x="30" y="85" font-family="{FONT_BODY}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}">Premium = BasePremium * (1 + Sum(Weight_i * Factor_i)) * K_contagion</text>
{svg_card(0, 140, 510, 280, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="140" width="510" height="45" rx="8" fill="{PRIMARY}"/>
<text x="255" y="170" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">上浮调节因子</text>
<text x="25" y="225" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 资本化率跳变偏离:费率上浮 15%</text>
<text x="25" y="275" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• HHI 集中度超标:费率上浮 20%</text>
<text x="25" y="325" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 图谱临近 BIS 清单:浮动系数 1.3</text>
{svg_card(550, 140, 510, 280, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="550" y="140" width="510" height="45" rx="8" fill="#0891B2"/>
<text x="805" y="170" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">优惠调节因子</text>
<text x="575" y="225" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 完成网信办算法备案:费率优惠 10%</text>
<text x="575" y="275" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 专利增速同行业领先:费率优惠 15%</text>
<text x="575" y="325" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 核心团队稳定度高:免赔额下调</text>
</g>
{svg_footer(13)}
</svg>'''
def gen_p14():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("自动化核保决策报告生成", "硬规则 + 柔性文本 混合驱动输出")}
{svg_card(60, 140, 1160, 500, CARD_BG, PRIMARY, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 510, 430, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="0" width="510" height="50" rx="8" fill="{PRIMARY}"/>
<text x="255" y="33" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">硬规则驱动(量化结论)</text>
<text x="25" y="100" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 综合风控得分:78 分 (中风险)</text>
<text x="25" y="160" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 基础保费上浮系数:+25%</text>
<text x="25" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 算法合规状态:已通过备案</text>
<text x="25" y="280" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 地缘传染指数:I_contagion = 0.25</text>
<text x="25" y="340" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 最终决策:承保并实施特约条款</text>
{svg_card(550, 0, 510, 430, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="550" y="0" width="510" height="50" rx="8" fill="#0891B2"/>
<text x="805" y="33" font-family="{FONT_TITLE}" font-size="22" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">大模型驱动(特约条款)</text>
<text x="575" y="100" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 自动润色生成标准化 Markdown 报告</text>
<text x="575" y="160" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 特约 1:限期寻找二级供应商国产替代</text>
<text x="575" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 特约 2:关键岗位设置 6 个月竞业期</text>
<text x="575" y="280" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 附录:包含思维链与拓扑路径证据链</text>
</g>
{svg_footer(14)}
</svg>'''
def gen_p15():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("金融级原型系统总体概述", "已公网部署至域名 risk.aiformat.cn")}
{svg_card(60, 140, 1160, 500, CARD_BG, ACCENT, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 510, 200, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="0" width="510" height="45" rx="8" fill="{PRIMARY}"/>
<text x="255" y="30" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">模块 1:全景风控大屏</text>
<text x="25" y="90" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 综合风险评分大屏与动态告警</text>
<text x="25" y="140" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 六维风险因子可视化穿透</text>
{svg_card(550, 0, 510, 200, CARD_SURFACE, ACCENT, 1.5)}
<rect x="550" y="0" width="510" height="45" rx="8" fill="{ACCENT}"/>
<text x="805" y="30" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">模块 2:辩论诊断控制台</text>
<text x="575" y="90" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 实时展示 3 大专家 Agent 思维链</text>
<text x="575" y="140" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 裁决过程全透明(Explainable AI</text>
{svg_card(0, 230, 510, 200, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="0" y="230" width="510" height="45" rx="8" fill="#0891B2"/>
<text x="255" y="260" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">模块 3:交互式知识图谱</text>
<text x="25" y="320" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 拓扑网络节点穿透与关联查询</text>
<text x="25" y="370" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 实体清单地缘风险红线高亮</text>
{svg_card(550, 230, 510, 200, CARD_SURFACE, POSITIVE, 1.5)}
<rect x="550" y="230" width="510" height="45" rx="8" fill="#059669"/>
<text x="805" y="260" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">模块 4:试算器与报告导出</text>
<text x="575" y="320" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 动态费率计算器与参数拉杆试算</text>
<text x="575" y="370" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 一键导出 Markdown 核保决策报告</text>
</g>
{svg_footer(15)}
</svg>'''
# --------------- [NEW] 四页大尺寸系统运行截图 Mockup 占位页 ---------------
def gen_p16():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("系统界面实操一:全景风控大屏", "可视化六维风险综合指数与告警")}
{svg_browser_mockup(60, 140, 1160, 510, "risk.aiformat.cn/dashboard", "全景风控大屏界面截图", "请在此粘贴/插入 [全景风控大屏 🏠] 真实运行截图")}
{svg_footer(16)}
</svg>'''
def gen_p17():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("系统界面实操二:Multi-Agent 辩论控制台", "实时推理思维链 (Reasoning Stream) 与法官裁决")}
{svg_browser_mockup(60, 140, 1160, 510, "risk.aiformat.cn/debate", "Multi-Agent 辩论控制台截图", "请在此粘贴/插入 [多智能体辩论控制台 🤖] 真实运行截图")}
{svg_footer(17)}
</svg>'''
def gen_p18():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("系统界面实操三:供应链知识图谱", "NetworkX 拓扑渲染与 BIS 实体清单制裁高亮")}
{svg_browser_mockup(60, 140, 1160, 510, "risk.aiformat.cn/knowledge_graph", "供应链知识图谱界面截图", "请在此粘贴/插入 [知识图谱拓扑穿透 🕸️] 真实运行截图")}
{svg_footer(18)}
</svg>'''
def gen_p19():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("系统界面实操四:动态定价与核保报告", "费率调节拉杆与 Markdown 核保报告导出")}
{svg_browser_mockup(60, 140, 1160, 510, "risk.aiformat.cn/underwriting", "动态定价与核保报告界面截图", "请在此粘贴/插入 [保费定价与核保报告 💰] 真实运行截图")}
{svg_footer(19)}
</svg>'''
def gen_p20():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("课题团队结构与跨学科协同分工", "黄金三人组:AI 软件工程 x 金融精算 x 经济法学")}
{svg_card(60, 140, 1160, 500, CARD_BG, PRIMARY, 1.5)}
<g transform="translate(90, 175)">
<!-- 成员 1:周丽梅 -->
{svg_card(0, 0, 330, 430, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="0" width="330" height="55" rx="8" fill="{PRIMARY}"/>
<text x="165" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">周丽梅 (项目负责人)</text>
<text x="165" y="85" font-family="{FONT_BODY}" font-size="16" font-weight="bold" fill="{SECONDARY_ACCENT}" text-anchor="middle">AI 与软件工程实现 (计算机/数据科学)</text>
<text x="20" y="130" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• DeepSeek API 与推理引擎封装</text>
<text x="20" y="175" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• Multi-Agent 辩论与冲突平息算法</text>
<text x="20" y="220" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• NetworkX 知识图谱与 BFS 穿透</text>
<text x="20" y="265" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 金融级 Web 原型与公网部署守护</text>
<rect x="15" y="340" width="300" height="60" rx="6" fill="{CARD_BG}"/>
<text x="165" y="376" font-family="{FONT_BODY}" font-size="16" font-weight="bold" fill="{PRIMARY}" text-anchor="middle">交付成果:代码仓库与在线系统</text>
<!-- 成员 2:许珍妮 -->
{svg_card(365, 0, 330, 430, CARD_SURFACE, POSITIVE, 1.5)}
<rect x="365" y="0" width="330" height="55" rx="8" fill="#059669"/>
<text x="530" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">许珍妮 (核心成员)</text>
<text x="530" y="85" font-family="{FONT_BODY}" font-size="16" font-weight="bold" fill="{POSITIVE}" text-anchor="middle">金融精算与产品设计 (金融工程)</text>
<text x="385" y="130" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 科创特有风险六维量化指标体系</text>
<text x="385" y="175" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 平安“科创综合险”三大产品设计</text>
<text x="385" y="220" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 动态保费精算模型与调节系数</text>
<text x="385" y="265" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 精算费率拉杆试算推导</text>
<rect x="380" y="340" width="300" height="60" rx="6" fill="{CARD_BG}"/>
<text x="530" y="376" font-family="{FONT_BODY}" font-size="16" font-weight="bold" fill="{POSITIVE}" text-anchor="middle">交付成果:精算方案与试算逻辑</text>
<!-- 成员 3:赖应珍 -->
{svg_card(730, 0, 330, 430, CARD_SURFACE, ACCENT, 1.5)}
<rect x="730" y="0" width="330" height="55" rx="8" fill="{ACCENT}"/>
<text x="895" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">赖应珍 (核心成员)</text>
<text x="895" y="85" font-family="{FONT_BODY}" font-size="16" font-weight="bold" fill="{ACCENT}" text-anchor="middle">法律研究与合规审查 (经济法学)</text>
<text x="750" y="130" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 网信办算法备案合规规则提炼</text>
<text x="750" y="175" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• BIS 实体清单地缘出口管制研究</text>
<text x="750" y="220" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 合规红线一票否决逻辑设计</text>
<text x="750" y="265" font-family="{FONT_BODY}" font-size="17" fill="{TEXT_SUB}">• 自动化核保报告特约条款拟定</text>
<rect x="745" y="340" width="300" height="60" rx="6" fill="{CARD_BG}"/>
<text x="895" y="376" font-family="{FONT_BODY}" font-size="16" font-weight="bold" fill="{ACCENT}" text-anchor="middle">交付成果:合规规则与核保条款</text>
</g>
{svg_footer(20)}
</svg>'''
def gen_p21():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
{svg_header("场景泛化与应用前景扩展", "辐射三大金融场景,具极强通用价值")}
{svg_card(60, 140, 1160, 500, CARD_BG, POSITIVE, 1.5)}
<g transform="translate(90, 175)">
{svg_card(0, 0, 330, 420, CARD_SURFACE, PRIMARY, 1.5)}
<rect x="0" y="0" width="330" height="55" rx="8" fill="{PRIMARY}"/>
<text x="165" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">场景一:商业银行科技贷</text>
<text x="25" y="110" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 解决专利质押评估难题</text>
<text x="25" y="165" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 预警供应链断供坏账</text>
<text x="25" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 辅助确定授信额度与利率</text>
<text x="25" y="330" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{PRIMARY}">赋能:降低科技贷坏账风险</text>
{svg_card(365, 0, 330, 420, CARD_SURFACE, ACCENT, 1.5)}
<rect x="365" y="0" width="330" height="55" rx="8" fill="{ACCENT}"/>
<text x="530" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">场景二:硬科技 VC/PE 尽调</text>
<text x="390" y="110" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 缩短早期项目尽调周期</text>
<text x="390" y="165" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 自动核查算法合规漏洞</text>
<text x="390" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 技术路线颠覆前瞻预警</text>
<text x="390" y="330" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{ACCENT}">赋能:提升投资尽调成功率</text>
{svg_card(730, 0, 330, 420, CARD_SURFACE, SECONDARY_ACCENT, 1.5)}
<rect x="730" y="0" width="330" height="55" rx="8" fill="#0891B2"/>
<text x="895" y="36" font-family="{FONT_TITLE}" font-size="20" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">场景三:政府产业基金监控</text>
<text x="755" y="110" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 园区企业地缘清单预警</text>
<text x="755" y="165" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 监控研发资本化异动</text>
<text x="755" y="220" font-family="{FONT_BODY}" font-size="19" fill="{TEXT_SUB}">• 辅助专项补贴精准发放</text>
<text x="755" y="330" font-family="{FONT_BODY}" font-size="18" font-weight="bold" fill="{SECONDARY_ACCENT}">赋能:保障财政资金安全</text>
</g>
{svg_footer(21)}
</svg>'''
def gen_p22():
return f'''<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
<rect width="1280" height="720" fill="{BG_COLOR}"/>
<circle cx="640" cy="360" r="280" fill="none" stroke="{PRIMARY}" stroke-width="1.5" opacity="0.2"/>
<circle cx="640" cy="360" r="400" fill="none" stroke="{SECONDARY_ACCENT}" stroke-width="1" opacity="0.1"/>
<g transform="translate(640, 310)">
<text x="0" y="0" font-family="{FONT_TITLE}" font-size="56" font-weight="bold" fill="{TEXT_MAIN}" text-anchor="middle">谢谢!</text>
</g>
<g transform="translate(640, 440)">
{svg_card(-450, -45, 900, 90, CARD_SURFACE, PRIMARY, 1.5)}
<text x="0" y="10" font-family="{FONT_TITLE}" font-size="24" font-weight="bold" fill="{SECONDARY_ACCENT}" text-anchor="middle">数智风控:AI 科创企业新型风险前瞻治理方案 (XH-202626)</text>
</g>
{svg_footer(22)}
</svg>'''
def main():
generators = [
("01_cover.svg", gen_p01),
("02_contents.svg", gen_p02),
("03_background.svg", gen_p03),
("04_roadmap.svg", gen_p04),
("05_six_risk_model.svg", gen_p05),
("06_quant_paths.svg", gen_p06),
("07_architecture.svg", gen_p07),
("08_multi_agent.svg", gen_p08),
("09_conflict_rules.svg", gen_p09),
("10_kg_ontology.svg", gen_p10),
("11_contagion_algo.svg", gen_p11),
("12_pingan_products.svg", gen_p12),
("13_dynamic_pricing.svg", gen_p13),
("14_underwriting_report.svg", gen_p14),
("15_system_prototype.svg", gen_p15),
("16_screenshot_dashboard.svg", gen_p16),
("17_screenshot_debate.svg", gen_p17),
("18_screenshot_kg.svg", gen_p18),
("19_screenshot_pricing.svg", gen_p19),
("20_team_structure.svg", gen_p20),
("21_future_prospects.svg", gen_p21),
("22_thanks.svg", gen_p22),
]
print("开始生成包含 Chrome 浏览器截图 Mockup 占位符的全套 22 页矢量 SVG...")
for filename, gen in generators:
filepath = os.path.join(OUTPUT_DIR, filename)
content = gen()
with open(filepath, "w", encoding="utf-8") as f:
f.write(content)
print(f"[OK] 生成 SVG: {filename}")
main_script_path = os.path.join(PROJECT_DIR, "scratch", "generate_all_svgs.py")
with open(__file__, "r", encoding="utf-8") as src, open(main_script_path, "w", encoding="utf-8") as dst:
dst.write(src.read())
print(f"\n全套 22 页带截图 Mockup 占位符 SVG 成功更新!")
if __name__ == "__main__":
main()