Files
XH-202619/scripts/render_architecture_diagrams.py
T

994 lines
33 KiB
Python

import os
from playwright.sync_api import sync_playwright
HTML_ARCH = """<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
width: 2400px;
height: 1450px;
background: radial-gradient(circle at 50% 10%, #151d38 0%, #080c18 100%);
font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
color: #e2e8f0;
padding: 40px 60px;
overflow: hidden;
position: relative;
}
/* 顶部大标题 */
.header {
text-align: center;
margin-bottom: 35px;
}
.header h1 {
font-size: 42px;
font-weight: 800;
background: linear-gradient(135deg, #60a5fa 0%, #c084fc 50%, #f472b6 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
letter-spacing: 2px;
margin-bottom: 8px;
}
.header p {
font-size: 20px;
color: #94a3b8;
letter-spacing: 1px;
}
.badge-tag {
display: inline-block;
padding: 4px 14px;
border-radius: 20px;
background: rgba(99, 102, 241, 0.2);
border: 1px solid rgba(129, 140, 248, 0.4);
color: #c7d2fe;
font-size: 15px;
font-weight: 600;
margin-left: 10px;
vertical-align: middle;
}
/* 四层容器流 */
.layers-container {
display: flex;
flex-direction: column;
gap: 22px;
position: relative;
}
.layer-row {
display: flex;
background: rgba(15, 23, 42, 0.75);
border-radius: 18px;
border: 1px solid rgba(255, 255, 255, 0.08);
backdrop-filter: blur(12px);
box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
padding: 18px 24px;
align-items: stretch;
position: relative;
}
/* 左侧层级标识 */
.layer-badge-col {
width: 240px;
display: flex;
flex-direction: column;
justify-content: center;
border-right: 1px solid rgba(255, 255, 255, 0.08);
padding-right: 20px;
margin-right: 24px;
}
.layer-tag {
font-size: 14px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 1.5px;
margin-bottom: 4px;
}
.layer-title {
font-size: 22px;
font-weight: 700;
color: #f8fafc;
margin-bottom: 6px;
}
.layer-desc {
font-size: 14px;
color: #94a3b8;
line-height: 1.4;
}
/* 内容区域 */
.layer-content-col {
flex: 1;
display: flex;
gap: 20px;
align-items: center;
}
/* 基础卡片样式 */
.card {
background: rgba(30, 41, 59, 0.6);
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, 0.1);
padding: 16px 20px;
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25);
}
.card-title {
font-size: 18px;
font-weight: 700;
margin-bottom: 6px;
display: flex;
align-items: center;
gap: 8px;
}
.card-desc {
font-size: 14px;
color: #cbd5e1;
line-height: 1.4;
}
.card-feature {
margin-top: 8px;
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.pill {
font-size: 12px;
padding: 2px 8px;
border-radius: 6px;
background: rgba(255, 255, 255, 0.06);
color: #94a3b8;
}
/* 层级专属配色风格 */
/* L1: 表现层 (紫粉色调) */
.layer-1 { border-left: 6px solid #ec4899; }
.layer-1 .layer-tag { color: #f472b6; }
.layer-1 .card { border-color: rgba(236, 72, 153, 0.25); background: rgba(30, 27, 75, 0.45); }
.layer-1 .card:hover { border-color: #ec4899; }
/* L2: 智能体核心层 (青蓝高亮) */
.layer-2 { border-left: 6px solid #06b6d4; }
.layer-2 .layer-tag { color: #22d3ee; }
.layer-2 .card { border-color: rgba(6, 182, 212, 0.28); background: rgba(15, 33, 55, 0.5); }
.layer-2-controller {
flex: 0 0 260px;
background: linear-gradient(145deg, rgba(14, 116, 144, 0.35) 0%, rgba(3, 105, 161, 0.2) 100%) !important;
border: 1px solid #06b6d4 !important;
}
/* L3: 工具与向量层 (祖母绿调) */
.layer-3 { border-left: 6px solid #10b981; }
.layer-3 .layer-tag { color: #34d399; }
.layer-3 .card { border-color: rgba(16, 185, 129, 0.25); background: rgba(6, 44, 38, 0.4); }
/* L4: 模型基座层 (蓝紫色调) */
.layer-4 { border-left: 6px solid #8b5cf6; }
.layer-4 .layer-tag { color: #a78bfa; }
.layer-4 .card { border-color: rgba(139, 92, 246, 0.25); background: rgba(28, 25, 60, 0.45); }
.layer-4-gateway {
flex: 0 0 260px;
background: linear-gradient(145deg, rgba(109, 40, 217, 0.35) 0%, rgba(91, 33, 182, 0.2) 100%) !important;
border: 1px solid #8b5cf6 !important;
}
/* 层间流动连接箭头提示 */
.flow-indicator {
display: flex;
justify-content: center;
align-items: center;
gap: 15px;
color: #64748b;
font-size: 13px;
font-weight: 600;
letter-spacing: 2px;
text-transform: uppercase;
margin: -10px 0;
}
.flow-line {
width: 60px;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
}
.flow-arrow {
color: #38bdf8;
font-size: 18px;
}
/* 底部技术标注 */
.footer-bar {
margin-top: 30px;
display: flex;
justify-content: space-between;
align-items: center;
border-top: 1px solid rgba(255, 255, 255, 0.08);
padding-top: 15px;
font-size: 14px;
color: #64748b;
}
.footer-highlight {
color: #94a3b8;
font-weight: 500;
}
</style>
</head>
<body>
<div class="header">
<h1>AI Scientist 自进化科研发现引擎 · 四层总体解耦系统架构</h1>
<p>System Architecture: Presentation · Autonomous Multi-Agent Core · Augmentation Tools · Foundation Models
<span class="badge-tag">100% 国产百炼 Qwen 开源矩阵</span>
<span class="badge-tag">Reviewer #2 对抗审稿</span>
<span class="badge-tag">1024维 Dense Vector RAG</span>
</p>
</div>
<div class="layers-container">
<!-- Layer 1: 表现层 -->
<div class="layer-row layer-1">
<div class="layer-badge-col">
<div class="layer-tag">Layer 1</div>
<div class="layer-title">一、交互表现层</div>
<div class="layer-desc">Streamlit Web 端与可视化人机协同交互工作台</div>
</div>
<div class="layer-content-col">
<div class="card">
<div class="card-title" style="color: #f472b6;">
<span>🖥️ 双模式交互工作台</span>
</div>
<div class="card-desc">人在回路协同模式(4步渐进式卡片解锁与人类导师先验输入) + 24/7 全自动无人值守发现流</div>
<div class="card-feature">
<span class="pill">Wizard 进度导航</span>
<span class="pill">导师介入注入机制</span>
<span class="pill">参数动态调节</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #f472b6;">
<span>⚡ 暗黑极客流式终端</span>
</div>
<div class="card-desc">嵌入式 Terminal 终端控制台,实时渲染多智能体状态机底层日志、阶段耗时与思维链轨迹</div>
<div class="card-feature">
<span class="pill">实时打字光标</span>
<span class="pill">ANSI 语法高亮</span>
<span class="pill">低延迟流式吞吐</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #f472b6;">
<span>💬 大模型流式对话视窗</span>
</div>
<div class="card-desc">直观呈现科研假说推导者与 Reviewer #2 魔鬼审稿人之间的多轮学术思辨对话气泡流</div>
<div class="card-feature">
<span class="pill">双角色对话气泡</span>
<span class="pill">实时 Token 渲染</span>
<span class="pill">历史推演回溯</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #f472b6;">
<span>📊 五维审查打分看板</span>
</div>
<div class="card-desc">Reviewer #2 50分制量化打分雷达图、各单项指标 Metric 仪表盘与最终学术裁决 Badge</div>
<div class="card-feature">
<span class="pill">ACCEPT / REVISE / REJECT</span>
<span class="pill">5 维度量化条</span>
<span class="pill">批注折叠卡片</span>
</div>
</div>
</div>
</div>
<div class="flow-indicator">
<div class="flow-line"></div>
<span class="flow-arrow">▼</span>
<span>用户交互指令 / 状态事件流 Generator 实时双向通信</span>
<span class="flow-arrow">▼</span>
<div class="flow-line"></div>
</div>
<!-- Layer 2: 智能体核心层 -->
<div class="layer-row layer-2">
<div class="layer-badge-col">
<div class="layer-tag">Layer 2</div>
<div class="layer-title">二、智能体核心层</div>
<div class="layer-desc">自进化超级多智能体分工协同与状态机调度中枢</div>
</div>
<div class="layer-content-col">
<div class="card layer-2-controller">
<div class="card-title" style="color: #22d3ee;">
<span>🧠 引擎主调度控制器</span>
</div>
<div class="card-desc"><strong>AIScientistEngine</strong><br/>统筹 5 大阶段生命周期状态机,管理自进化闭环学习循环 (Learning Loop) 与轮次自纠偏</div>
<div class="card-feature">
<span class="pill">阶段状态机控制</span>
<span class="pill">1-10 轮自循环</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #38bdf8;">
<span>🔍 1. 文献挖掘智能体</span>
</div>
<div class="card-desc"><strong>LiteratureMiningSkill</strong><br/>提取双引号学术专有名词,调度 arXiv API 并触发 1024 维向量化索引构建</div>
<div class="card-feature">
<span class="pill">英文术语映射</span>
<span class="pill">多领域分类</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #38bdf8;">
<span>💡 2. 假说推导智能体</span>
</div>
<div class="card-desc"><strong>HypothesisGeneratorSkill</strong><br/>基于 RAG 文献证据进行“归纳-演绎”双轨推理,多轮自进化中融合导师反馈与审稿批评</div>
<div class="card-feature">
<span class="pill">3 组候选假说</span>
<span class="pill">可证伪性约束</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #f59e0b;">
<span>⚖️ 3. 对抗审稿智能体</span>
</div>
<div class="card-desc"><strong>HypothesisCriticSkill</strong><br/>化身“Reviewer #2 魔鬼审稿人”,实施 5 维 50 分制严苛量化审查与物理时间线锚定</div>
<div class="card-feature">
<span class="pill">物理时间线对齐</span>
<span class="pill">结构化批注回传</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #38bdf8;">
<span>📝 4. 报告编纂智能体</span>
</div>
<div class="card-desc"><strong>ResearchPlanWriterSkill</strong><br/>自动化编撰严格包含 10 个标准学术规范章节的 Markdown 综合研究计划与证据链路图</div>
<div class="card-feature">
<span class="pill">10 标准字段规范</span>
<span class="pill">真实 DOI 索引</span>
</div>
</div>
</div>
</div>
<div class="flow-indicator">
<div class="flow-line"></div>
<span class="flow-arrow">▼</span>
<span>智能体工具调用 / 知识检索重排 / 拓扑图谱构建请求</span>
<span class="flow-arrow">▼</span>
<div class="flow-line"></div>
</div>
<!-- Layer 3: 工具与知识增强层 -->
<div class="layer-row layer-3">
<div class="layer-badge-col">
<div class="layer-tag">Layer 3</div>
<div class="layer-title">三、工具与向量层</div>
<div class="layer-desc">学术工具库、高维向量 RAG 与知识图谱构建引擎</div>
</div>
<div class="layer-content-col">
<div class="card">
<div class="card-title" style="color: #34d399;">
<span>📚 arXiv 真实文献检索工具</span>
</div>
<div class="card-desc"><strong>ArxivTool</strong>:直接调用 arXiv 官方 XML API,自动获取最新论文之标题、摘要、作者及真实 DOI 唯一识别码,覆盖 AI、天文、量子与生物学跨学科领域</div>
<div class="card-feature">
<span class="pill">学术专有名词提取</span>
<span class="pill">真实 DOI 追溯</span>
<span class="pill">跨学科多分类支持</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #34d399;">
<span>🎯 通义 1024 维 Dense Vector Hybrid RAG 引擎</span>
</div>
<div class="card-desc"><strong>SimpleRAGTool</strong>:基于 NumPy 矩阵高速余弦相似度计算,结合 7:3 稠密向量与稀疏关键词重排融合公式 (S_hybrid = 0.7*S_dense + 0.3*S_sparse),彻底根除大模型事实性幻觉</div>
<div class="card-feature">
<span class="pill">1024 维稠密表征</span>
<span class="pill">Cosine 矩阵加速</span>
<span class="pill">Top-K 证据段落重排</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #34d399;">
<span>🕸️ NetworkX 知识图谱与 Mermaid 转换引擎</span>
</div>
<div class="card-desc"><strong>KnowledgeGraphTool</strong>:大模型驱动 NER/RE 实体关系抽取,提炼 (Subject, Predicate, Object) 科学三元组建立 DiGraph 有向图,自动导出高质量 Mermaid 证据链路可视化代码</div>
<div class="card-feature">
<span class="pill">科学三元组抽取</span>
<span class="pill">NetworkX 有向图</span>
<span class="pill">Mermaid 代码原生导出</span>
</div>
</div>
</div>
</div>
<div class="flow-indicator">
<div class="flow-line"></div>
<span class="flow-arrow">▼</span>
<span>标准 OpenAI SDK 兼容接口 / 阿里云百炼 MaaS 平台推理请求</span>
<span class="flow-arrow">▼</span>
<div class="flow-line"></div>
</div>
<!-- Layer 4: 国产大模型基座层 -->
<div class="layer-row layer-4">
<div class="layer-badge-col">
<div class="layer-tag">Layer 4</div>
<div class="layer-title">四、大模型基座层</div>
<div class="layer-desc">阿里云百炼 MaaS 平台 · 通义千问开源大模型矩阵</div>
</div>
<div class="layer-content-col">
<div class="card layer-4-gateway">
<div class="card-title" style="color: #a78bfa;">
<span>☁️ 阿里云百炼统一网关</span>
</div>
<div class="card-desc"><strong>LLMClient (MaaS Gateway)</strong><br/>兼容 OpenAI SDK 标准协议,内置异常熔断重试与原生 HTTP REST 优雅降级机制</div>
<div class="card-feature">
<span class="pill">OpenAI 协议兼容</span>
<span class="pill">REST API 回退</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #c084fc;">
<span>🧠 qwen3.7-max</span>
</div>
<div class="card-desc"><strong>深度复杂逻辑推理基座</strong><br/>负责假说推导中的演绎证明、假说严谨性论证及终审 Reviewer #2 对抗审查</div>
<div class="card-feature">
<span class="pill">千亿级高深推理</span>
<span class="pill">超强数学逻辑</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #c084fc;">
<span>📑 qwen3.7-plus</span>
</div>
<div class="card-desc"><strong>平衡探索与报告编撰基座</strong><br/>擅长规范化学术文本撰写、实验方案周密设计与学科文献综合分析</div>
<div class="card-feature">
<span class="pill">学术论文级写作</span>
<span class="pill">10字段严谨报告</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #c084fc;">
<span>⚡ qwen3.8-flash / 3.6-flash</span>
</div>
<div class="card-desc"><strong>极速响应与实体抽取基座</strong><br/>毫秒级流式响应,负责摘要 NER/RE 科学三元组抽取与快速原型流式生成</div>
<div class="card-feature">
<span class="pill">100万 Token 窗口</span>
<span class="pill">提速 +104%</span>
</div>
</div>
<div class="card">
<div class="card-title" style="color: #c084fc;">
<span>📐 text-embedding-v3</span>
</div>
<div class="card-desc"><strong>官方配套高维语义向量基座</strong><br/>为学术文献提供 1024 维的高保真稠密语义嵌入,支持精准语义距离度量</div>
<div class="card-feature">
<span class="pill">1024 维高维向量</span>
<span class="pill">多语言学术增强</span>
</div>
</div>
</div>
</div>
</div>
<div class="footer-bar">
<div>参赛题目:<span class="footer-highlight">XH-202619 基于国产开源大模型的 AI Scientist 的研发与应用</span></div>
<div>系统定位:<span class="footer-highlight">面向前沿科学研究的“自主进化科研发现超级智能体”工程闭环</span></div>
<div>技术基石:<span class="footer-highlight">阿里云百炼 MaaS · 通义千问 Qwen 开源矩阵 · 7:3 Hybrid RAG · 50分制 Reviewer #2</span></div>
</div>
</body>
</html>
"""
HTML_PIPELINE = """<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
width: 2400px;
height: 1350px;
background: radial-gradient(circle at 50% 15%, #131b35 0%, #070b16 100%);
font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
color: #e2e8f0;
padding: 40px 60px;
overflow: hidden;
position: relative;
}
.header {
text-align: center;
margin-bottom: 45px;
}
.header h1 {
font-size: 42px;
font-weight: 800;
background: linear-gradient(135deg, #38bdf8 0%, #818cf8 50%, #f472b6 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
letter-spacing: 2px;
margin-bottom: 8px;
}
.header p {
font-size: 20px;
color: #94a3b8;
}
/* 横向主流水线 */
.pipeline-flow {
display: flex;
justify-content: space-between;
align-items: stretch;
gap: 20px;
position: relative;
}
/* 单个阶段列卡片 */
.stage-col {
flex: 1;
background: rgba(15, 23, 42, 0.7);
border-radius: 18px;
border: 1px solid rgba(255, 255, 255, 0.08);
backdrop-filter: blur(12px);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
display: flex;
flex-direction: column;
padding: 24px 20px;
position: relative;
}
.stage-badge {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 13px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 1.5px;
padding: 4px 12px;
border-radius: 20px;
margin-bottom: 12px;
width: fit-content;
}
.stage-title {
font-size: 22px;
font-weight: 700;
color: #f8fafc;
margin-bottom: 14px;
display: flex;
align-items: center;
gap: 10px;
}
/* 阶段卡片内部分块 */
.section-box {
background: rgba(30, 41, 59, 0.5);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: 12px;
padding: 14px 16px;
margin-bottom: 14px;
}
.section-label {
font-size: 12px;
font-weight: 700;
color: #94a3b8;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 6px;
display: flex;
align-items: center;
gap: 6px;
}
.section-content {
font-size: 14px;
color: #e2e8f0;
line-height: 1.45;
}
/* 步骤标签样式 */
.step-item {
display: flex;
align-items: flex-start;
gap: 8px;
font-size: 13.5px;
color: #cbd5e1;
margin-bottom: 8px;
line-height: 1.4;
}
.step-num {
background: rgba(255, 255, 255, 0.1);
color: #38bdf8;
font-size: 11px;
font-weight: 700;
width: 20px;
height: 20px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin-top: 1px;
}
/* 各阶段专属配色 */
.stage-1 { border-top: 5px solid #38bdf8; }
.stage-1 .stage-badge { background: rgba(56, 189, 248, 0.15); color: #38bdf8; border: 1px solid rgba(56, 189, 248, 0.3); }
.stage-2 { border-top: 5px solid #818cf8; }
.stage-2 .stage-badge { background: rgba(129, 140, 248, 0.15); color: #818cf8; border: 1px solid rgba(129, 140, 248, 0.3); }
.stage-3 { border-top: 5px solid #34d399; }
.stage-3 .stage-badge { background: rgba(52, 211, 153, 0.15); color: #34d399; border: 1px solid rgba(52, 211, 153, 0.3); }
.stage-4 {
flex: 1.35;
border-top: 5px solid #f59e0b;
background: linear-gradient(180deg, rgba(30, 41, 59, 0.8) 0%, rgba(15, 23, 42, 0.9) 100%);
box-shadow: 0 0 25px rgba(245, 158, 11, 0.15);
border: 1px solid rgba(245, 158, 11, 0.3);
}
.stage-4 .stage-badge { background: rgba(245, 158, 11, 0.15); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.4); }
.stage-5 { border-top: 5px solid #ec4899; }
.stage-5 .stage-badge { background: rgba(236, 72, 153, 0.15); color: #f472b6; border: 1px solid rgba(236, 72, 153, 0.3); }
/* 自进化回路特殊标注 */
.loop-box {
border: 1.5px dashed #f59e0b;
border-radius: 12px;
padding: 12px 14px;
background: rgba(245, 158, 11, 0.05);
margin-top: 10px;
}
.loop-title {
font-size: 13px;
font-weight: 700;
color: #fbbf24;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
}
.loop-desc {
font-size: 12.5px;
color: #cbd5e1;
line-height: 1.4;
}
/* 箭头连线指示 */
.col-arrow {
display: flex;
align-items: center;
color: #475569;
font-size: 26px;
font-weight: 300;
}
.footer-bar {
margin-top: 35px;
display: flex;
justify-content: space-between;
align-items: center;
border-top: 1px solid rgba(255, 255, 255, 0.08);
padding-top: 15px;
font-size: 14px;
color: #64748b;
}
.footer-highlight {
color: #94a3b8;
font-weight: 500;
}
</style>
</head>
<body>
<div class="header">
<h1>AI Scientist 自进化科研发现闭环全流程图</h1>
<p>End-to-End Autonomous Scientific Discovery Pipeline & Self-Evolution Control Loop
<span style="display:inline-block;margin-left:12px;color:#38bdf8;">【五大关键阶段清晰平铺展开 · 无缝衔接与对抗迭代】</span>
</p>
</div>
<div class="pipeline-flow">
<!-- 阶段 1 -->
<div class="stage-col stage-1">
<div class="stage-badge">Stage 01</div>
<div class="stage-title">🎯 科学问题输入</div>
<div class="section-box">
<div class="section-label">📥 输入数据</div>
<div class="section-content">
自然语言科研难题 Query(如:大模型长程推理幻觉突破机制、拓扑量子物态发现)
</div>
</div>
<div class="section-box" style="flex:1;">
<div class="section-label">⚙️ 引擎执行操作</div>
<div class="step-item">
<span class="step-num">1</span>
<span>解析问题深层科研语义与学科分类</span>
</div>
<div class="step-item">
<span class="step-num">2</span>
<span>设置审查通过门槛(默认 35 分)</span>
</div>
<div class="step-item">
<span class="step-num">3</span>
<span>配置最大自进化迭代轮数(1-10 轮)</span>
</div>
<div class="step-item">
<span class="step-num">4</span>
<span>选择底座大模型(Qwen 系列热切换)</span>
</div>
</div>
<div class="section-box">
<div class="section-label">📤 阶段产物</div>
<div class="section-content" style="color: #38bdf8; font-weight: 600;">
标准化科研问题配置对象与环境上下文
</div>
</div>
</div>
<div class="col-arrow">➔</div>
<!-- 阶段 2 -->
<div class="stage-col stage-2">
<div class="stage-badge">Stage 02</div>
<div class="stage-title">📚 文献深度挖掘</div>
<div class="section-box">
<div class="section-label">🤖 调度智能体 / 工具</div>
<div class="section-content" style="font-weight:600;color:#c7d2fe;">
LiteratureMiningSkill + ArxivTool
</div>
</div>
<div class="section-box" style="flex:1;">
<div class="section-label">⚙️ 引擎执行操作</div>
<div class="step-item">
<span class="step-num">1</span>
<span>基于智能映射提取双引号英文学术关键词</span>
</div>
<div class="step-item">
<span class="step-num">2</span>
<span>实时向 arXiv API 发起多篇真实前沿论文检索</span>
</div>
<div class="step-item">
<span class="step-num">3</span>
<span>提取论文真实 Title、Abstract、Date、DOI</span>
</div>
<div class="step-item">
<span class="step-num">4</span>
<span>调用 <strong>text-embedding-v3</strong> 生成 1024 维向量</span>
</div>
<div class="step-item">
<span class="step-num">5</span>
<span>执行 <strong>7:3 稠密-稀疏混合重排算法</strong> (Hybrid RAG)</span>
</div>
</div>
<div class="section-box">
<div class="section-label">📤 阶段产物</div>
<div class="section-content" style="color: #818cf8; font-weight: 600;">
真实文献元数据池 + Top-K 真实学术证据切片
</div>
</div>
</div>
<div class="col-arrow">➔</div>
<!-- 阶段 3 -->
<div class="stage-col stage-3">
<div class="stage-badge">Stage 03</div>
<div class="stage-title">🕸️ 知识图谱构建</div>
<div class="section-box">
<div class="section-label">🤖 调度智能体 / 工具</div>
<div class="section-content" style="font-weight:600;color:#6ee7b7;">
KnowledgeGraphTool + Qwen NER/RE
</div>
</div>
<div class="section-box" style="flex:1;">
<div class="section-label">⚙️ 引擎执行操作</div>
<div class="step-item">
<span class="step-num">1</span>
<span>调用 Qwen 结构化抽取文献实体与关联谓词</span>
</div>
<div class="step-item">
<span class="step-num">2</span>
<span>提炼 (Subject, Predicate, Object, Evidence)</span>
</div>
<div class="step-item">
<span class="step-num">3</span>
<span>注入 NetworkX 构建科研概念 DiGraph 有向图</span>
</div>
<div class="step-item">
<span class="step-num">4</span>
<span>遍历边集计算拓扑特征并剔除虚假连接</span>
</div>
<div class="step-item">
<span class="step-num">5</span>
<span>一键导出为标准的 Mermaid 语法拓扑代码</span>
</div>
</div>
<div class="section-box">
<div class="section-label">📤 阶段产物</div>
<div class="section-content" style="color: #34d399; font-weight: 600;">
学科知识拓扑图谱 + Mermaid 可视化证据链代码
</div>
</div>
</div>
<div class="col-arrow">➔</div>
<!-- 阶段 4:核心对抗闭环 -->
<div class="stage-col stage-4">
<div class="stage-badge">Stage 04 · 核心进化闭环</div>
<div class="stage-title">⚖️ 假说推导与对抗审稿</div>
<div class="section-box" style="margin-bottom:8px;">
<div class="section-label">🤖 协同智能体</div>
<div class="section-content" style="display:flex;justify-content:space-between;">
<span style="color:#38bdf8;font-weight:600;">HypothesisGeneratorSkill</span>
<span style="color:#cbd5e1;">⇋ 对抗 ⇋</span>
<span style="color:#f59e0b;font-weight:600;">HypothesisCriticSkill</span>
</div>
</div>
<div class="section-box" style="flex:1;margin-bottom:8px;">
<div class="section-label">⚙️ 双轨推导与 5 维严苛审查</div>
<div class="step-item">
<span class="step-num">1</span>
<span><strong>假说生成</strong>:结合真实文献上下文,流式推导 3 组科学假说</span>
</div>
<div class="step-item">
<span class="step-num">2</span>
<span><strong>物理时间线锚定</strong>:消除外部最新成果与知识库截断的幻觉</span>
</div>
<div class="step-item">
<span class="step-num">3</span>
<span><strong>Reviewer #2 严苛审稿</strong>:从逻辑、文献、证伪、新颖、可行 5 维量化打分 (50分制)</span>
</div>
<div class="step-item">
<span class="step-num">4</span>
<span><strong>综合判定</strong>:得分 ≥ 35 (ACCEPT) / 25-34 (REVISE) / &lt;25 (REJECT)</span>
</div>
</div>
<!-- 自进化回路强调 -->
<div class="loop-box">
<div class="loop-title">
<span>🔄 闭环学习循环 (Self-Evolution Loop)</span>
<span style="font-size:11px;background:#f59e0b;color:#000;padding:1px 6px;border-radius:4px;">核心自进化</span>
</div>
<div class="loop-desc">
若判定为 <strong>REVISE/REJECT</strong> 且未达最大轮数:系统自动捕获审稿人批注,注入生成 Prompt 作为惩罚性约束,触发下一轮假说自我纠偏(轮数 t = t + 1)。
</div>
</div>
<div class="section-box" style="margin-top:8px;">
<div class="section-label">📤 阶段产物</div>
<div class="section-content" style="color: #fbbf24; font-weight: 600;">
通过最终严苛审查的“最佳科学假说”与量化审稿报告
</div>
</div>
</div>
<div class="col-arrow">➔</div>
<!-- 阶段 5 -->
<div class="stage-col stage-5">
<div class="stage-badge">Stage 05</div>
<div class="stage-title">📝 报告自动编纂</div>
<div class="section-box">
<div class="section-label">🤖 调度智能体</div>
<div class="section-content" style="font-weight:600;color:#f472b6;">
ResearchPlanWriterSkill (qwen3.7-plus)
</div>
</div>
<div class="section-box" style="flex:1;">
<div class="section-label">⚙️ 引擎执行操作</div>
<div class="step-item">
<span class="step-num">1</span>
<span>组装最终通过的最佳科学假设与审稿依据</span>
</div>
<div class="step-item">
<span class="step-num">2</span>
<span>嵌入阶段 3 抽取的 Mermaid 证据链路可视化图谱</span>
</div>
<div class="step-item">
<span class="step-num">3</span>
<span>自动推演方法论架构图与验证实验基线对比</span>
</div>
<div class="step-item">
<span class="step-num">4</span>
<span>注入真实 arXiv DOI 参考文献列表(确保可回溯)</span>
</div>
<div class="step-item">
<span class="step-num">5</span>
<span>严格编纂 10 个标准学术规范章节完整报告</span>
</div>
</div>
<div class="section-box">
<div class="section-label">📤 阶段产物</div>
<div class="section-content" style="color: #f472b6; font-weight: 600;">
《科学假设与研究计划报告》Markdown 终稿与一键下载
</div>
</div>
</div>
</div>
<div class="footer-bar">
<div>数据流向:<span class="footer-highlight">科学问题 ➔ 真实文献检索 ➔ 知识图谱三元组 ➔ 假说对抗自进化 ➔ 10字段规范学术报告</span></div>
<div>核心机制:<span class="footer-highlight">7:3 Hybrid RAG + 1024维向量 · 50分制 Reviewer #2 · 多轮闭环反馈迭代纠偏</span></div>
<div>系统价值:<span class="footer-highlight">打破 LLM 科研幻觉 · 实现可验证假说的全自动化闭环发现与探索</span></div>
</div>
</body>
</html>
"""
def generate_images():
output_dir = "docs"
os.makedirs(output_dir, exist_ok=True)
with sync_playwright() as p:
browser = p.chromium.launch()
# 1. 渲染系统四层总体解耦架构图 (16:9 宽屏,2400x1450)
page1 = browser.new_page(viewport={"width": 2400, "height": 1450})
page1.set_content(HTML_ARCH)
path1 = os.path.join(output_dir, "01_system_architecture.png")
page1.screenshot(path=path1, full_page=True)
print(f"Rendered: {path1}")
# 同时替换原有的 architecture_diagram.png (不再拥挤,字迹极大、排版极度舒展)
path_main = os.path.join(output_dir, "architecture_diagram.png")
page1.screenshot(path=path_main, full_page=True)
print(f"Rendered (replaced): {path_main}")
page1.close()
# 2. 渲染全流程自进化科研发现闭环流程图 (16:9 宽屏,2400x1350)
page2 = browser.new_page(viewport={"width": 2400, "height": 1350})
page2.set_content(HTML_PIPELINE)
path2 = os.path.join(output_dir, "02_workflow_pipeline.png")
page2.screenshot(path=path2, full_page=True)
print(f"Rendered: {path2}")
page2.close()
browser.close()
if __name__ == "__main__":
generate_images()