import os

BASE = r"e:\TRAE\生成式X\lecture1"
os.makedirs(BASE, exist_ok=True)

def page(fn, num, total, title, content, prev_title="", next_title=""):
    prev_html = ""
    if num == 1:
        prev_html = '<span class="nav-btn nav-disabled">◀</span>'
    else:
        prev_html = f'<a class="nav-btn" href="1.{num-1}.html" title="上一页">◀</a>'

    next_html = ""
    if num == total:
        next_html = '<span class="nav-btn nav-disabled">▶</span>'
    else:
        next_html = f'<a class="nav-btn" href="1.{num+1}.html" title="下一页">▶</a>'

    prev_short = prev_title[:10] if prev_title else ""
    next_short = next_title[:10] if next_title else ""

    html = f'''<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Slide 1.{num} — {title}</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body class="slide-page">

<div class="logo-bar"><img src="../logo.png" alt="Logo"><span class="logo-label">第八章 · 生成式人工智能</span></div>

<div class="slide-breadcrumb">
  <a href="../index.html">主页</a> / <a href="index.html">第一节课</a> / <span>1.{num}</span>
</div>

<div class="single-slide-page">
  <div class="single-slide-wrapper">
    <div class="slide-card">
      <div class="slide-number">Slide 1.{num}</div>
      <div class="slide-title">{title}</div>
      <div class="slide-content">
        {content}
      </div>
    </div>
  </div>
  <div class="single-nav-bar">
    {prev_html}
    <div><span class="nav-label prev-label">{prev_short}</span></div>
    <span class="nav-info">1.{num} / {total}</span>
    <div><span class="nav-label next-label">{next_short}</span></div>
    {next_html}
  </div>
  <div class="kbd-hint">键盘 <kbd>←</kbd> <kbd>→</kbd> 或鼠标滚轮翻页</div>
</div>

<script>
document.addEventListener('keydown',e=>{{
  if(e.key==='ArrowLeft') window.location.href='1.{num-1}.html';
  if(e.key==='ArrowRight') window.location.href='1.{num+1}.html';
}});
let _wl=false;
document.addEventListener('wheel',e=>{{
  e.preventDefault();
  if(_wl)return;_wl=true;
  if(e.deltaY>0&&'{num+1 if num<total else ''}')window.location.href='1.{num+1}.html';
  else if(e.deltaY<0&&'{num-1 if num>1 else ''}')window.location.href='1.{num-1}.html';
  setTimeout(()=>_wl=false,500);
}},{{passive:false}});
</script>
</body>
</html>'''

    if num == 1:
        html = html.replace("if(e.key==='ArrowLeft') window.location.href='1.0.html';", "")
    if num == total:
        html = html.replace("if(e.key==='ArrowRight') window.location.href='1."+str(total+1)+".html';", "")

    path = os.path.join(BASE, fn)
    with open(path, 'w', encoding='utf-8') as f:
        f.write(html)
    print(f"  ✓ {fn}")

# ==================== SLIDE DATA ====================
slides = []

slides.append(("1.1", "封面",
    '''<div style="text-align:center;padding-top:50px;">
      <h1 style="color:#1a365d;line-height:1.4;margin-bottom:16px;">生成式大模型<br>法律人的"新工具"与"新考题"</h1>
      <p style="color:#4a5568;margin-bottom:8px;">第一讲：技术底座与法律镜像</p>
      <p style="color:#a0aec0;">授课教师：周宇文</p>
      <div class="quote-block" style="margin-top:48px;font-style:normal;">
        当 AI 能写合同、判案例、编法条，<br>甚至生成以假乱真的视频——<br>法律人该怎么办？
      </div>
    </div>'''))

slides.append(("1.2", "课程结构 + 学习目标",
    '''<div class="grid-2">
      <div class="card-mini">
        <strong>📋 四讲结构</strong>
        <ul style="margin-top:8px;">
          <li>⚙️ 第一讲：技术底座与法律镜像（今天）</li>
          <li>⚖️ 第二讲：法律实务中的新工具</li>
          <li>⚠️ 第三讲：风险与挑战（上、下）</li>
          <li>🚀 第四讲：法学学生如何应对</li>
        </ul>
      </div>
      <div class="card-mini">
        <strong>✓ 本节课目标</strong>
        <ul style="margin-top:8px;list-style:none;padding-left:0;">
          <li>✓ 理解生成式AI的核心原理（能解释AI幻觉成因）</li>
          <li>✓ 建立"技术特征→法律风险"的映射思维</li>
          <li>✓ 掌握国内外主流大模型产业格局（含开源/闭源区别）</li>
          <li>✓ 理解"模型蒸馏"争议的技术本质与法律边界</li>
        </ul>
      </div>
    </div>
    <div class="info-box" style="margin-top:20px;">
      如果你没搞懂大模型为什么会产生幻觉，你就没法理解为什么律师会被 AI 坑。<br>请带着法学问题来听技术。
    </div>'''))

slides.append(("1.3", "破冰互动——开场投票",
    '''<p style="margin-bottom:16px;">做个小调查——你属于以下哪种情况？</p>
    <div style="display:flex;flex-direction:column;gap:12px;">
      <div class="card-mini">🤖 <strong>你使用过 ChatGPT、DeepSeek、Kimi 或其他 AI 助手吗？</strong></div>
      <div class="card-mini">📝 <strong>你用 AI 写过论文或作业吗？</strong></div>
      <div class="card-mini">❌ <strong>你遇到过 AI「一本正经地胡说八道」吗？</strong></div>
      <div class="card-mini">⚖️ <strong>你相信 10 年内 AI 能通过中国法考（客观题）吗？</strong></div>
    </div>
    <div class="info-box" style="margin-top:20px;">
      AI 已经普遍存在，但大家也对它心存疑虑——这正是我们今天讨论的起点。
    </div>'''))

slides.append(("1.4", "判别式AI——找书而非写书",
    '''<p style="margin-bottom:12px;"><strong>从「搜索引擎」到「生成引擎」</strong></p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>🔍 判别式 AI（传统 AI）</strong>
        <ul style="margin-top:8px;">
          <li>识别、分类、推荐</li>
          <li>人脸识别、垃圾邮件过滤、搜索引擎排序、推荐算法</li>
          <li>输出是<strong>「已有的信息」</strong>或「判断结果」</li>
        </ul>
        <p style="color:#a0aec0;margin-top:8px;">类比：你在图书馆里找一本书</p>
      </div>
      <div class="card-mini" style="border:2px solid #c49340;">
        <strong>✨ 生成式 AI</strong>
        <ul style="margin-top:8px;">
          <li>创造全新内容（文字、图像、代码、语音、视频）</li>
          <li>ChatGPT、DeepSeek、Sora、Midjourney、可灵</li>
          <li>输出是<strong>「从未存在过的新内容」</strong></li>
        </ul>
        <p style="color:#c49340;margin-top:8px;">类比：你自己写一本新书</p>
      </div>
    </div>
    <div class="danger-box" style="margin-top:16px;">
      <strong>关键区别：</strong>传统 AI 可追溯、可验证；生成式 AI = 创造性 + 不可预测性 → 法律问题的源头
    </div>'''))

slides.append(("1.5", "生成式AI——自己写书",
    '''<p style="margin-bottom:16px;">生成式 AI 不是从书架上拿书，而是自己动笔写。它写的这本书可能正确，也可能全是错的，但风格很像真的。</p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>🤔 对法律人的刺激</strong>
        <ul style="margin-top:8px;">
          <li>过去的证据、合同、判例都有明确作者和出处</li>
          <li>现在 AI 能伪造<strong>最像真的判例</strong></li>
          <li>而且它自己都不知道这是假的</li>
        </ul>
      </div>
      <div class="card-mini" style="border:2px solid #c49340;">
        <strong>🎯 核心追问</strong>
        <p style="margin-top:8px;">AI 写的东西和人类写的东西，在法律上应该同等对待吗？</p>
        <p style="color:#c49340;">如果出了问题，责任链条在哪？</p>
      </div>
    </div>
    <div class="danger-box" style="margin-top:12px;">
      ⚠️ 创造性 + 不可预测性 = 法律风险来源
    </div>'''))

slides.append(("1.6", "互动提问——责任归属",
    '''<p style="text-align:center;margin-bottom:20px;"><strong>一个值得思考的法学问题</strong></p>
    <div style="display:flex;flex-direction:column;gap:20px;max-width:720px;margin:0 auto;">
      <div class="card-mini" style="text-align:center;">
        🔍 如果搜索引擎给你错误的链接——<br><strong>责任在谁？</strong>
      </div>
      <div class="card-mini" style="text-align:center;border:2px solid #c49340;">
        ✨ 如果生成式 AI 给你错误的合同条款——<br><strong>责任在谁？</strong>
      </div>
    </div>
    <p style="text-align:center;margin-top:20px;color:#a0aec0;">不必现在回答——带着这个问题，听完四个讲座再回头思考。</p>'''))

slides.append(("1.7", "大模型「三要素」及其法律镜像",
    '''<p style="margin-bottom:16px;">所有大模型都依赖三个东西：算力、参数、数据。法律风险就是由这三个特征直接造成的。</p>
    <table>
      <tr><th style="width:20%">要素</th><th style="width:40%">技术事实</th><th style="width:40%">⚖️ 法律镜像</th></tr>
      <tr><td><span class="tag tag-red">大算力</span></td><td>训练成本数亿美元，数千张 GPU</td><td><strong>门槛垄断、算力霸权</strong></td></tr>
      <tr><td><span class="tag tag-purple">大参数</span></td><td>千亿参数互相影响，黑箱</td><td><strong>不可解释性，违反程序正义</strong></td></tr>
      <tr><td><span class="tag tag-orange">大数据</span></td><td>全网抓取海量文本</td><td><strong>版权侵权、隐私泄露</strong></td></tr>
    </table>
    <div class="danger-box" style="margin-top:16px;">
      每一个技术特征，都对应着一个法律风险的结构性来源。
    </div>'''))

slides.append(("1.8", "大算力 → 门槛垄断",
    '''<p><strong>💻 算力霸权：只有巨头能玩</strong></p>
    <ul style="margin-top:12px;">
      <li>GPT-4 训练成本：1—2 亿美元，数千张 GPU</li>
      <li>基础模型集中在 OpenAI、Google、Meta、百度、阿里等少数公司</li>
      <li>小公司/律所只能调用 API → 受制于人</li>
    </ul>
    <div style="margin-top:20px;">
      <p><strong>🤔 值得思考的问题：</strong></p>
      <ul>
        <li>是否影响法律服务公平竞争？</li>
        <li>公益法律组织如何获得 AI 能力？</li>
        <li>服务商涨价、断供，你的业务会受影响——这算不算一种新的垄断？</li>
      </ul>
    </div>
    <div class="danger-box" style="margin-top:16px;">
      起步价一亿美元——全球只有五六个玩家能做出基础大模型。
    </div>'''))

slides.append(("1.9", "大参数 → 黑箱效应",
    '''<p><strong>⚫ 黑箱：AI 无法解释自己</strong></p>
    <ul style="margin-top:12px;">
      <li>千亿参数互相影响，没有人能完全解释输出原因</li>
      <li>程序正义要求决策可解释——法院判决必须说理</li>
      <li>如果 AI 辅助量刑、证据分析，当事人有权知道「为什么」吗？</li>
    </ul>
    <div class="quote-block" style="margin-top:20px;font-style:normal;">
      <strong>类比：</strong>医生给你开药但说不出药理机制，你敢吃吗？
    </div>
    <div class="danger-box" style="margin-top:16px;">
      你问它为什么判三年，它说「根据概率分布」。在法律上这是致命的——<br>我们要的是<strong>论证过程</strong>，不是统计相关性。
    </div>'''))

slides.append(("1.10", "大数据 → 版权与隐私",
    '''<p><strong>📊 数据从哪里来？版权与隐私的定时炸弹</strong></p>
    <ul style="margin-top:12px;">
      <li>训练数据：全网文本（书籍、论文、判例、新闻、论坛、代码）</li>
      <li>GPT-3 约 45TB，含大量版权内容</li>
      <li><strong>版权：</strong>纽约时报诉 OpenAI，索赔数十亿美元</li>
      <li><strong>隐私：</strong>爬虫抓取个人信息，未经同意</li>
      <li>中国《个人信息保护法》要求「告知-同意」→ 与爬虫普遍实践冲突</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      大模型吞噬了整个互联网——包括你写过的博客、朋友圈、出版社的书。<br>
      纽约时报起诉 OpenAI，这个案子将定义「合理使用」在 AI 时代的边界。
    </div>'''))

slides.append(("1.11", "互动——快速投票",
    '''<p style="margin-bottom:16px;"><strong>五个风险，哪个最让你担心？</strong></p>
    <div style="display:flex;flex-direction:column;gap:10px;">
      <div class="card-mini">1. 🛡️ <strong>门槛垄断</strong>——只有巨头能参与</div>
      <div class="card-mini">2. ⚫ <strong>黑箱效应</strong>——AI 无法解释推理过程</div>
      <div class="card-mini">3. ©️ <strong>版权/隐私</strong>——数据来源合法性存疑</div>
      <div class="card-mini">4. 💭 <strong>AI 幻觉</strong>——编造事实、法条和判例</div>
      <div class="card-mini">5. 🎬 <strong>深度伪造</strong>——视听证据真实性崩塌</div>
    </div>
    <p style="margin-top:20px;color:#4a5568;">你选择的那个风险，就是今天课程要帮你深入理解的方向。</p>'''))

slides.append(("1.12", "预训练：猜下一个词",
    '''<p><strong>🧩 预训练 = 完形填空</strong></p>
    <div class="info-box">
      <strong>机制：</strong>给定上文，预测下文。数十亿次猜词 → 学会语法、事实、推理模式。
    </div>
    <div style="margin-top:16px;">
      <p><strong>示例：</strong>「斑马是黑白的还是____」</p>
      <p>模型学到的概率：条纹的 (85%)，有颜色的 (5%)……</p>
    </div>
    <div class="danger-box" style="margin-top:16px;">
      <strong>⚠️ 关键认知：</strong>模型学的是<strong>概率分布</strong>，不是<strong>真理判断</strong>。<br>
      它不知道「北京是首都」是事实，只知道这句话在训练数据中频率很高。<br>
      <strong>知识缺口 → 编造 → AI 幻觉根源</strong>
    </div>
    <p style="margin-top:12px;text-align:center;color:#a0aec0;">模型不是在撒谎——它只是在「填词」。</p>'''))

slides.append(("1.13", "人类调教：RLHF",
    '''<p><strong>👤 RLHF（人类反馈强化学习）</strong></p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>怎么做？</strong>
        <ul style="margin-top:8px;">
          <li>人工标注员给多个输出打分（👍/👎）</li>
          <li>模型学习「说人爱听的话」</li>
        </ul>
      </div>
      <div class="card-mini" style="border:2px solid #e53e3e;">
        <strong>⚠️ 副作用</strong>
        <ul style="margin-top:8px;">
          <li>引入标注员的偏见</li>
          <li>「安全对齐」可能让模型回避真实信息</li>
          <li>可被恶意「越狱」</li>
        </ul>
      </div>
    </div>
    <div class="danger-box" style="margin-top:16px;">
      预训练模型像个野孩子——什么都敢说。人类教它「这个回答好，那个不好」。<br>
      但教它的人也有偏见。结果模型学会了讨好用户，有时宁可不说真话也要说「安全」的话。<br>
      <strong>这对法律问答来说，可能很麻烦。</strong>
    </div>'''))

slides.append(("1.14", "AI幻觉：一本正经地胡说八道",
    '''<p style="margin-bottom:12px;"><strong>💭 幻觉不是 bug，是 feature</strong></p>
    <ul style="margin-top:8px;">
      <li><strong>定义：</strong>生成看似合理但实为错误或虚构的内容</li>
      <li><strong>机制：</strong>概率预测 + 无事实核查 = 自信编造</li>
      <li><strong>类比：</strong>学生考试时不会也不交白卷，而是编一个看起来合理的答案</li>
    </ul>
    <div class="danger-box" style="margin-top:20px;">
      因为模型的设计目标就是生成最可能的词，而不是验证事实。<br>
      所以当答案不在训练数据里，它就会<strong>自信地编</strong>。
    </div>
    <div class="info-box" style="margin-top:12px;">
      <strong>流程图：</strong>用户提问 → 概率预测 → ❌ 无事实核查 → 自信编造
    </div>'''))

slides.append(("1.15", "真实案例：Mata v. Avianca",
    '''<div><span class="tag tag-red">真实案件</span> <strong>Mata v. Avianca (2023)</strong></div>
    <div class="grid-2" style="margin-top:16px;">
      <div class="card-mini">
        <strong>📋 案件经过</strong>
        <ul style="margin-top:8px;">
          <li>律师 Steven Schwartz 使用 ChatGPT 准备案情摘要</li>
          <li>ChatGPT 引用了<strong>6 个完全不存在的判例</strong></li>
          <li>提交至纽约南区联邦法院</li>
        </ul>
      </div>
      <div class="card-mini">
        <strong>💥 真相曝光</strong>
        <ul style="margin-top:8px;">
          <li>对方律师发现全部 6 个判例不存在</li>
          <li>法官训诫：「我执业 50 年从未听过这些判例」</li>
          <li>律师被罚款 5,000 美元，名誉扫地</li>
        </ul>
      </div>
    </div>
    <div class="danger-box" style="margin-top:16px;text-align:center;">
      <strong>你不能对法官说「这是 AI 告诉我的」。</strong><br>
      你永远要为 AI 的输出负责。
    </div>'''))

slides.append(("1.16", "亲眼见证 AI 编造判例",
    '''<p style="margin-bottom:12px;"><strong>🔬 现场实验</strong></p>
    <div class="quote-block" style="font-style:normal;font-family:monospace;">
      "请列出三个中国法院关于人工智能生成内容著作权的判例，包括案号和判决要点。"
    </div>
    <p style="margin-top:16px;"><strong>🧐 逐条检查 AI 输出：</strong></p>
    <ul>
      <li>案号是否真实存在？</li>
      <li>案件名称可以在裁判文书网查到吗？</li>
      <li>判决要点是真实的还是编造的？</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      <strong>注意：</strong>案号「（2024）沪 01 民终 12345 号」看起来很真，但你去查会发现根本不存在。<br>
      这就是幻觉——以后用 AI 检索，<strong>必须交叉验证</strong>。
    </div>'''))

slides.append(("1.17", "全球大模型生态速览",
    '''<p style="margin-bottom:12px;"><strong>🌍 2026 年中国 AI 大模型周调用量超美国</strong></p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>🇺🇸 海外主力</strong>
        <div class="logo-row" style="margin-top:8px;">
          <img src="../assets/logos/openai.png" class="inline-logo" alt="OpenAI"><img src="../assets/logos/google-color.png" class="inline-logo" alt="Google"><img src="../assets/logos/anthropic.png" class="inline-logo" alt="Anthropic"><img src="../assets/logos/meta-color.png" class="inline-logo" alt="Meta">
        </div>
        <ul style="margin-top:8px;">
          <li>OpenAI（GPT 系列）</li>
          <li>Google（Gemini）</li>
          <li>Anthropic（Claude）</li>
          <li>Meta（Llama）</li>
        </ul>
      </div>
      <div class="card-mini">
        <strong>🇨🇳 中国力量</strong>
        <div class="logo-row" style="margin-top:8px;">
          <img src="../assets/logos/deepseek-color.png" class="inline-logo" alt="DeepSeek"><img src="../assets/logos/qwen-color.png" class="inline-logo" alt="通义"><img src="../assets/logos/wenxin-color.png" class="inline-logo" alt="文心"><img src="../assets/logos/doubao-color.png" class="inline-logo" alt="豆包"><img src="../assets/logos/hunyuan-color.png" class="inline-logo" alt="混元"><img src="../assets/logos/kling-color.png" class="inline-logo" alt="可灵"><img src="../assets/logos/chatglm-color.png" class="inline-logo" alt="智谱"><img src="../assets/logos/kimi-color.png" class="inline-logo" alt="Kimi"><img src="../assets/logos/minimax-color.png" class="inline-logo" alt="MiniMax">
        </div>
        <ul style="margin-top:8px;">
          <li>DeepSeek · 通义 · 文心</li>
          <li>豆包 · 混元 · 可灵</li>
          <li>智谱 · Kimi · MiniMax</li>
        </ul>
      </div>
    </div>
    <div class="info-box" style="margin-top:16px;">
      <strong>趋势：</strong>海外 → 企业 Agent 工作流；中国 → 算力自主 + 合规双轨。
    </div>'''))

slides.append(("1.18", "OpenAI：生成式 AI 的开拓者",
    '''<div class="slide-hero-logo"><img src="../assets/logos/openai.png" alt="OpenAI"></div>
    <p><strong>🏢 OpenAI & GPT 系列</strong></p>
    <ul style="margin-top:8px;">
      <li>代表模型：GPT-5 系列，2026 年初退役旧模型</li>
      <li>用户量：8 亿周活——但仅 80 万日常用 GPT-4o，渗透率仍低</li>
      <li>商业模式：免费版（含广告） + 月费订阅</li>
    </ul>
    <div style="margin-top:16px;">
      <span class="tag tag-red">法律焦点</span> <strong>纽约时报版权诉讼</strong>
      <div class="danger-box" style="margin-top:8px;">
        这场诉讼将定义 AI 时代「合理使用」的边界——<br>
        决定了以后能不能自由爬取数据训练模型。
      </div>
    </div>
    <div class="info-box" style="margin-top:12px;">
      8 亿周活 vs 80 万日常深度用户——绝大多数人只是偶尔玩玩。<br>
      未来 to B（企业服务）才是主战场。
    </div>'''))

slides.append(("1.19", "Google Gemini 与 Anthropic Claude",
    '''<div class="slide-hero-logo"><img src="../assets/logos/google-color.png" alt="Google"><img src="../assets/logos/anthropic.png" alt="Anthropic"></div>
    <div class="grid-2">
      <div class="card-mini">
        <strong>🔍 Google Gemini</strong>
        <ul style="margin-top:8px;">
          <li>企业智能体平台</li>
          <li>第八代 TPU</li>
          <li>开源 Gemma 4</li>
          <li>嵌入搜索、邮箱、文档</li>
        </ul>
        <p style="margin-top:6px;color:#a0aec0;">想做 AI 时代的操作系统</p>
      </div>
      <div class="card-mini">
        <strong>🛡️ Anthropic Claude</strong>
        <ul style="margin-top:8px;">
          <li>Claude Opus 4.7</li>
          <li>百万 Token 上下文</li>
          <li>自我验证机制</li>
          <li>主打「安全可靠」</li>
        </ul>
        <p style="margin-top:6px;color:#a0aec0;">价格贵但给出答案前会自我验证</p>
      </div>
    </div>
    <div class="info-box" style="margin-top:16px;">
      Claude 会在给出答案前自我验证——这对法律场景很有吸引力。<br>
      但也引发了一个问题：这是否符合可解释性要求？
    </div>'''))

slides.append(("1.20", "DeepSeek——国产开源领军者",
    '''<div class="slide-hero-logo"><img src="../assets/logos/deepseek-color.png" alt="DeepSeek"></div>
    <p><strong>🇨🇳 DeepSeek · 硬核创新</strong></p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>🏆 技术实力</strong>
        <ul style="margin-top:8px;">
          <li>DeepSeek-V4：百万上下文</li>
          <li>全面开源，华为昇腾适配（利用率 85%+）</li>
          <li>DeepSeek-R1 登上 <strong>Nature 封面</strong></li>
          <li>ACL 2025 最佳论文奖 + 杰出论文奖</li>
        </ul>
      </div>
      <div class="card-mini">
        <strong>📊 市场数据</strong>
        <ul style="margin-top:8px;">
          <li>月活约 1.27 亿</li>
          <li>周调用量 0.816 万亿 Token</li>
          <li>融资 500 亿元人民币</li>
          <li>已完成英伟达→昇腾迁移</li>
        </ul>
      </div>
    </div>
    <div class="info-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>开源模型合规管理、算力供应链安全——<br>
      是为数不多不受美国芯片禁令影响的大模型。
    </div>'''))

slides.append(("1.21", "字节跳动——豆包与 Seedance 双线布局",
    '''<div class="slide-hero-logo"><img src="../assets/logos/doubao-color.png" alt="豆包"></div>
    <p><strong>📱 字节 · 用户量王者</strong></p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>💬 豆包</strong>
        <ul style="margin-top:6px;">
          <li>月活 3.45 亿，日活 1.4 亿<br>——国内第一</li>
          <li>2026.5 推出三档订阅服务</li>
          <li>中国每 4 个网民就有 1 个用过</li>
        </ul>
      </div>
      <div class="card-mini" style="border:2px solid #e53e3e;">
        <strong>🎬 Seedance</strong>
        <ul style="margin-top:6px;">
          <li>视频生成模型，多镜头叙事</li>
          <li>被美国电影协会起诉侵权</li>
          <li>与 Sora 遇到的版权问题惊人相似</li>
        </ul>
      </div>
    </div>
    <div class="danger-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>用户数据合规、视频训练数据版权、开源 vs 闭源的不同合规路径。
    </div>'''))

slides.append(("1.22", "阿里巴巴——通义生态与开源战略",
    '''<div class="slide-hero-logo"><img src="../assets/logos/qwen-color.png" alt="通义"></div>
    <p><strong>☁️ 阿里 · 开源生态</strong></p>
    <ul style="margin-top:8px;">
      <li>通义千问系列：全尺寸全模态开源，Apache 2.0 协议</li>
      <li>开源生态中的「法治」角色</li>
      <li>阿里在南京中院提起「通义千问」商标维权案并<strong>胜诉</strong></li>
    </ul>
    <div class="info-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>开源许可证法律效力、商标维权对开源生态的意义——<br>
      阿里是第一个在商标权上硬气维权的中国 AI 大厂。<br>
      保护商标权才能让真正的开发者放心投入。
    </div>'''))

slides.append(("1.23", "百度——文心一言与合规先行",
    '''<div class="slide-hero-logo"><img src="../assets/logos/wenxin-color.png" alt="文心"></div>
    <p><strong>🏛️ 百度 · 合规先行</strong></p>
    <ul style="margin-top:8px;">
      <li>文心一言：首批通过国家网信办备案</li>
      <li>内置「法律知识增强」模式</li>
      <li>调用第三方 API 仍需自行备案——责任分散化</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      <strong>核心问题：</strong>如果文心一言引用的法条错了，责任谁担？<br>
      备案制度要求 API 调用者也要备案——<br>
      大模型备案制度的法律效力、合规分层责任是法学生需要关注的重点。
    </div>'''))

slides.append(("1.24", "腾讯——混元 3D 世界模型的另类突破",
    '''<div class="slide-hero-logo"><img src="../assets/logos/hunyuan-color.png" alt="混元"></div>
    <p><strong>🎮 腾讯 · 空间生成的另类路径</strong></p>
    <ul style="margin-top:8px;">
      <li>混元大模型家族；2026.4 发布混元 3D 世界模型 2.0 并开源</li>
      <li>技术能力：文字/图片/视频输入 → 自动生成可交互 3D 世界</li>
      <li>对接 Unity/UE 引擎，依赖游戏生态优势</li>
      <li>同日阿里也发布「世界模型」 → AI 竞争进入空间生成时代</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>3D 生成内容的版权归属、训练数据来源合规——<br>
      如果一句话就能生成一个完整的可交互 3D 世界，<br>
      未来的版权问题会比今天复杂得多。
    </div>'''))

slides.append(("1.25", "快手可灵——视频模型商业化的标杆",
    '''<div class="slide-hero-logo"><img src="../assets/logos/kling-color.png" alt="可灵"></div>
    <p><strong>🎬 可灵 · 商业化最成功的视频模型</strong></p>
    <ul style="margin-top:8px;">
      <li>视频生成模型，多镜头叙事</li>
      <li>2026 年 Q1 营收 7500 万美元</li>
      <li>已承制《太平年》《大卫王朝》等影视剧虚拟场景</li>
      <li>分拆上市传闻：估值 200 亿美元</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>AI 生成内容进入影视制作的知识产权归属——<br>
      AI 生成内容进入规模化商业应用后，<br>
      版权和合规问题会比实验室阶段严格得多。
    </div>'''))

slides.append(("1.26", "智谱 AI——全球大模型第一股",
    '''<div class="slide-hero-logo"><img src="../assets/logos/chatglm-color.png" alt="智谱"></div>
    <p><strong>🏦 智谱 · 资本市场里程碑</strong></p>
    <ul style="margin-top:8px;">
      <li>2026.1 在港交所上市，首日市值 578.9 亿港元</li>
      <li>超额认购 1159 倍</li>
      <li>正在推进 A 股科创板上市</li>
    </ul>
    <div class="info-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>IPO 中 AI 公司合规风险披露——<br>
      招股书详细披露了出口管制风险、数据合规、知识产权等敏感问题。<br>
      这也是法律人在尽调/IPO 业务中需要掌握的标准框架。
    </div>'''))

slides.append(("1.27", "月之暗面 Kimi——长文本赛道的明星",
    '''<div class="slide-hero-logo"><img src="../assets/logos/kimi-color.png" alt="Kimi"></div>
    <p><strong>📄 Kimi · 垂直场景的深耕者</strong></p>
    <ul style="margin-top:8px;">
      <li>Kimi 智能助手，主打数百万 Token 超长上下文</li>
      <li>月活约 5735 万</li>
      <li>在法律/科研/金融场景垂直穿透力强</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>AI 辅助法律文书的长篇引用准确性、幻觉判定与责任边界。<br>
      不做最大最全，而是做特定场景的核心——<br>
      但也意味着一旦在法律场景中出错，后果比写首诗出错严重得多。
    </div>'''))

slides.append(("1.28", "MiniMax——出海与多模态探索",
    '''<div class="slide-hero-logo"><img src="../assets/logos/minimax-color.png" alt="MiniMax"></div>
    <p><strong>🌐 MiniMax · 深度出海</strong></p>
    <ul style="margin-top:8px;">
      <li>多模态方向，发力 AI 情感陪伴（星野 Glow 等）</li>
      <li>重视海外市场，已推进港股上市进程</li>
    </ul>
    <div class="info-box" style="margin-top:16px;">
      <strong>法律聚焦：</strong>跨境数据合规（GDPR / CCPA）、情感陪伴 AI 的人机交互边界。<br>
      必须同时满足 GDPR、CCPA 等复杂标准——<br>
      对想从事数据合规的学生来说，这是最好的研究案例。
    </div>'''))

slides.append(("1.29", "从通用到专业——法律 AI 的矩阵",
    '''<p><strong>⚖️ 法律垂直领域大模型</strong></p>
    <table style="margin-top:12px;">
      <tr><th>模型</th><th>特点</th></tr>
      <tr><td><strong>清华大学 LegalOne-R1</strong></td><td>8B 参数，强推理，LexEval/LawBench 领先</td></tr>
      <tr><td><strong>通义法睿</strong></td><td>阿里法律定制版</td></tr>
      <tr><td><strong>百度法律大脑</strong></td><td>百度法律垂直定制</td></tr>
    </table>
    <div class="info-box" style="margin-top:16px;">
      <strong>核心思考：</strong>如果 AI 能胜任 80% 的基础法律工作，<br>
      法学教育的培养目标应该发生什么变化？<br>
      「法学知识 + AI 能力」的复合型人才是关键桥梁。
    </div>'''))

slides.append(("1.30", "开源 vs 闭源——技术路线的根本分野",
    '''<p style="margin-bottom:12px;">开源和闭源不是「谁更好」的问题，而是两种完全不同的技术分发模式——它直接决定了：<strong>出了问题谁负责。</strong></p>
    <div class="logo-row" style="margin-bottom:12px;">
      <img src="../assets/logos/meta-color.png" class="inline-logo" alt="Meta"><img src="../assets/logos/deepseek-color.png" class="inline-logo" alt="DeepSeek"><img src="../assets/logos/qwen-color.png" class="inline-logo" alt="通义"><img src="../assets/logos/openai.png" class="inline-logo" alt="OpenAI"><img src="../assets/logos/anthropic.png" class="inline-logo" alt="Anthropic"><img src="../assets/logos/wenxin-color.png" class="inline-logo" alt="文心">
    </div>
    <table>
      <tr><th>维度</th><th>开源模型</th><th>闭源模型</th></tr>
      <tr><td>代码/权重</td><td>完全公开，可下载、修改、本地部署</td><td>仅提供 API 调用，内部保密</td></tr>
      <tr><td>典型代表</td><td>Llama、DeepSeek、通义千问</td><td>GPT、Claude、文心一言</td></tr>
      <tr><td>可定制性</td><td>高（微调、裁剪）</td><td>低（仅提示词）</td></tr>
      <tr><td>透明性</td><td>可审计</td><td>依赖公司披露</td></tr>
      <tr><td>数据隐私</td><td>数据可留本地</td><td>数据经过服务商</td></tr>
    </table>
    <div class="info-box" style="margin-top:16px;">
      类比：开源 = 超市开架自选（拿走后自己负责）；闭源 = 专柜顾问（按次付费）
    </div>'''))

slides.append(("1.31", "开源许可证——它不是「法律真空」",
    '''<p><strong>📜 开源许可证本身就是一份法律合同</strong></p>
    <p style="color:#4a5568;margin-top:6px;">规定开源模型可以被谁、以什么方式、用于什么目的。<br>违反许可证 = 违反合同 = 可能构成侵权。</p>
    <table style="margin-top:16px;">
      <tr><th>许可证</th><th>特点</th><th>典型使用者</th></tr>
      <tr><td>MIT 许可证</td><td>极简宽松，只需保留版权声明</td><td>DeepSeek、部分 Llama</td></tr>
      <tr><td>Apache 2.0</td><td>授予专利权，需标注修改</td><td>百度 ERNIE</td></tr>
      <tr><td>自拟许可证</td><td>条款差异大，需逐条阅读</td><td>腾讯混元、Meta Llama 4</td></tr>
    </table>
    <div class="info-box" style="margin-top:16px;">
      <strong>2026 年 4 月：</strong>全国 24 家单位联合发布《人工智能开源生态共识》，<br>
      明确开源许可证具有法律效力。
    </div>'''))

slides.append(("1.32", "看得见的法律争议——GitHub Copilot 案",
    '''<div class="slide-hero-logo"><img src="../assets/logos/github.png" alt="GitHub"><img src="../assets/logos/copilot-color.png" alt="Copilot"></div>
    <p><strong>⚖️ 开源代码成了谁的养料？</strong></p>
    <ul style="margin-top:12px;">
      <li><strong>GitHub Copilot：</strong>AI 编程助手，使用开源代码库训练</li>
      <li>争议：微软未标注代码来源和作者信息 → 可能违反开源许可证义务</li>
      <li>程序员发起集体诉讼，若败诉科技巨头可能面临<strong>90 亿美元</strong>赔偿</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      <strong>问题的本质：</strong>你把自己写的代码开源，本意是希望别人能看到你的名字。<br>
      但 Copilot 把代码变成了 AI 的输出，用户不知道原作者是谁。<br>
      这是不是背离了开源精神的初衷？
    </div>'''))

slides.append(("1.33", "开源 vs 闭源的法律焦点",
    '''<p style="margin-bottom:12px;"><strong>从企业法务的视角分析——四个法律焦点</strong></p>
    <div style="display:flex;flex-direction:column;gap:10px;">
      <div class="card-mini"><strong>🔒 数据隐私与合规：</strong>闭源 API 输入可能被记录（三星事件）；开源可本地部署</div>
      <div class="card-mini"><strong>⚖️ 责任归属：</strong>闭源可向服务商追责；开源使用者自负</div>
      <div class="card-mini"><strong>©️ 知识产权风险：</strong>闭源用户协议限制；开源需遵守许可证</div>
      <div class="card-mini"><strong>🏛️ 竞争法：</strong>闭源可能导致垄断；开源促进竞争</div>
    </div>
    <div class="info-box" style="margin-top:16px;">
      处理涉密文件——本地部署开源更安全，但你要自己担责。<br>
      这是成本与风险的选择题。
    </div>'''))

slides.append(("1.34", "小组判断：开源还是闭源风险更低？",
    '''<p style="margin-bottom:12px;"><strong>四个场景——你选择开源还是闭源？</strong></p>
    <div style="display:flex;flex-direction:column;gap:10px;">
      <div class="card-mini">① 律所处理涉密并购文件</div>
      <div class="card-mini">② 法学生开发免费问答机器人分享</div>
      <div class="card-mini">③ 公司用 AI 生成营销文案被诉抄袭</div>
      <div class="card-mini">④ 监管机构审计模型偏见</div>
    </div>
    <div class="info-box" style="margin-top:16px;">
      <strong>提示：</strong>没有标准答案——关键是要说出理由。<br>
      角度：隐私安全、责任归属、合规成本、透明度。
    </div>'''))

slides.append(("1.35", "什么是蒸馏？——模型界的师徒传承",
    '''<p><strong>📚 蒸馏 = 小模型向大模型「拜师学艺」</strong></p>
    <ul style="margin-top:12px;">
      <li><strong>技术定义：</strong>从大型模型中提取知识，训练更轻量的模型</li>
      <li><strong>核心步骤：</strong>教师模型输出「软」概率 → 学生模型学习推理逻辑 → 得到更小更快的模型</li>
      <li><strong>类比：</strong>不是直接给答案，而是观察老师解题思路，形成自己的解题能力</li>
    </ul>
    <div class="info-box" style="margin-top:20px;">
      <strong>关键认知：</strong>蒸馏是<strong>全球通用的中立技术</strong>，所有 AI 公司都在用——包括指控别人的那些公司。
    </div>
    <div class="danger-box" style="margin-top:12px;">
      蒸馏不是原罪——<strong>违反合同才是争议焦点</strong>。
    </div>'''))

slides.append(("1.36", "为什么蒸馏会引发法律争议？",
    '''<p><strong>⚖️ 技术中立，但使用方式决定法律边界</strong></p>
    <div class="grid-2" style="margin-top:16px;">
      <div class="card-mini">
        <strong>✅ 合法场景</strong>
        <ul style="margin-top:8px;">
          <li>使用开源模型蒸馏</li>
          <li>使用已授权数据</li>
        </ul>
      </div>
      <div class="card-mini" style="border:2px solid #e53e3e;">
        <strong>⚠️ 争议场景</strong>
        <ul style="margin-top:8px;">
          <li>使用闭源模型的 API 输出蒸馏</li>
          <li>且该闭源模型的服务条款明确禁止</li>
        </ul>
      </div>
    </div>
    <div style="margin-top:20px;">
      <p><strong>争议核心：</strong>合同违约 vs 技术创新</p>
      <p style="color:#4a5568;">蒸馏本身不违法。关键在于「你从哪里获取训练数据」——<br>这是合同层面的问题，而不是蒸馏技术违法。</p>
    </div>'''))

slides.append(("1.37", "蒸馏争议背景——一场针对中国 AI 的舆论战",
    '''<p style="margin-bottom:12px;"><strong>📅 时间线</strong></p>
    <div style="display:flex;flex-direction:column;gap:8px;">
      <div class="card-mini"><strong>2025.9：</strong>DeepSeek-R1 发布，登 Nature 封面</div>
      <div class="card-mini"><strong>2026.2：</strong>Anthropic 公开指控中国公司「工业规模蒸馏」</div>
      <div class="card-mini"><strong>2026.4：</strong>白宫发布 AI 备忘录</div>
      <div class="card-mini"><strong>2026.5：</strong>美国国务院下令全球外交行动</div>
    </div>
    <div class="danger-box" style="margin-top:16px;">
      从公司层面的指控上升到外交层面——<br>
      蒸馏到底是被「偷窃」还是正常学习？我们用事实说话。
    </div>'''))

slides.append(("1.38", "Anthropic 的指控与自身合规问题",
    '''<p style="margin-bottom:12px;"><strong>指控者的「黑历史」</strong></p>
    <ul style="margin-top:8px;">
      <li>Anthropic 指控：DeepSeek 等以 2.4 万账号进行 1600 万次「蒸馏攻击」</li>
      <li>但 Anthropic 自身：2025 年因从盗版网站下载超 700 万本版权图书<br>——支付 <strong>15 亿美元</strong> 和解金</li>
      <li>李开复回应：「Anthropic 还欠我 3000 美元稿费。」</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      指责别人蒸馏的 Anthropic，自己刚刚因为大规模盗版书籍被罚了 15 亿美元。<br>
      商业竞争中的指控往往有利益背景——看问题要全面。
    </div>'''))

slides.append(("1.39", "马斯克的尖锐批评",
    '''<p style="margin-bottom:16px;"><strong>🗣️ 「他们怎么敢偷 Anthropic 偷来的东西？」</strong></p>
    <div class="quote-block" style="font-style:normal;">
      <p>"They dare steal what Anthropic stole from human programmers?"</p>
      <p style="margin-top:8px;">"Anthropic has committed massive theft of training data, already paying billions in settlements."</p>
      <p style="margin-top:8px;">"All AI companies are doing this."</p>
    </div>
    <div class="info-box" style="margin-top:16px;">
      马斯克的逻辑值得深思：如果训练数据本身可能是「偷来的」，<br>
      那么蒸馏这些模型的输出——到底算「偷」还是算「二次创新」？<br>
      这个问题在法律上还没有答案。
    </div>'''))

slides.append(("1.40", "中国 AI 的真正底气——学术成就与自主创新",
    '''<p style="margin-bottom:16px;"><strong>🏆 Nature 封面：DeepSeek-R1 的独立创新</strong></p>
    <ul style="margin-top:8px;">
      <li>DeepSeek-R1 论文登上《Nature》封面，经独立同行评审</li>
      <li>审稿人评：「DeepSeek 的推理方法已经足够好，无需蒸馏 OpenAI 的产品。」</li>
      <li>ACL 2025 最佳论文奖 + 杰出论文奖</li>
    </ul>
    <div class="info-box" style="margin-top:16px;">
      <strong>有趣反转：</strong>有人问 Claude「你是什么模型」，它居然回答「我是 DeepSeek」。<br>
      这说明闭源模型也可能在训练时吃到了中国模型生成的数据。<br>
      互相学习是全球常态。
    </div>'''))

slides.append(("1.41", "互动辩论——蒸馏是创新还是侵权？",
    '''<p style="text-align:center;margin-bottom:16px;"><strong>辩论：蒸馏是技术创新还是知识产权侵权？</strong></p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>🟢 正方观点</strong>
        <p style="margin-top:6px;">蒸馏是技术进步，促进竞争<br>知识迁移是 AI 发展的普遍路径<br>全球所有公司都在用</p>
      </div>
      <div class="card-mini">
        <strong>🔴 反方观点</strong>
        <p style="margin-top:6px;">未经授权利用他人模型输出<br>构成不当得利<br>违反闭源服务条款</p>
      </div>
    </div>
    <div class="info-box" style="margin-top:16px;text-align:center;">
      你的立场是什么？试着用你学过的法律知识来论证。
    </div>'''))


slides.append(("1.42", "Sora——从轰动全球到黯然退场",
    '''<div class="slide-hero-logo"><img src="../assets/logos/sora-color.png" alt="Sora"></div>
    <p style="margin-bottom:16px;"><strong>🎬 Sora 的兴衰两重天</strong></p>
    <div class="grid-2">
      <div class="card-mini">
        <strong>📈 兴</strong>
        <ul style="margin-top:6px;">
          <li>2024.2：预告 Sora，60 秒高清视频震撼全球</li>
          <li>2025.9：正式发布 Sora 2，五天登顶 App Store</li>
        </ul>
      </div>
      <div class="card-mini" style="border:2px solid #e53e3e;">
        <strong>📉 衰</strong>
        <ul style="margin-top:6px;">
          <li>2026.3.24：宣布逐步关停 Sora</li>
          <li>2026.4.26：App 关停</li>
          <li>2026.9.24：API 关停</li>
        </ul>
      </div>
    </div>
    <div class="danger-box" style="margin-top:16px;text-align:center;">
      哪怕技术再牛——法律和商业问题否决了它。
    </div>'''))

slides.append(("1.43", "Sora 为什么倒下？——三重致命叠加",
    '''<p style="margin-bottom:12px;"><strong>💀 不是单一原因——三重致命叠加</strong></p>
    <div class="grid-2">
      <div class="card-mini"><strong>💰 经济层面</strong><br>每天算力成本 1500 万美元，年 54 亿美元<br>用户付费意愿 < 0.1 美元/条</div>
      <div class="card-mini"><strong>👥 用户层面</strong><br>30 天留存率 1%<br>60 天留存率 0%</div>
      <div class="card-mini"><strong>🏢 战略层面</strong><br>OpenAI 转向企业级<br>冲刺 IPO</div>
      <div class="card-mini" style="border:2px solid #e53e3e;"><strong>⚖️ 法律层面</strong><br>日本 CODA 指侵权<br>迪士尼 10 亿美元合作终止<br>商标诉讼</div>
    </div>
    <p style="margin-top:12px;text-align:center;color:#c49340;font-weight:700;">技术轰动 ≠ 商业可行 ≠ 法律合规</p>'''))

slides.append(("1.44", "Sora 的核心教训——法律合规如何决定技术生死",
    '''<p style="margin-bottom:12px;"><strong>训练数据合规是不可逾越的红线</strong></p>
    <div style="display:flex;flex-direction:column;gap:10px;">
      <div class="danger-box"><strong>📋 数据版权：</strong>「先上车后补票」策略失效；全球法院明确大规模商业抓取不属于「合理使用」</div>
      <div class="danger-box"><strong>🏷️ 商标与品牌：</strong>「Cameo」商标禁令事件</div>
      <div class="danger-box"><strong>⏰ 合规滞后：</strong>OpenAI 的政策后置调整成为前车之鉴</div>
      <div class="danger-box"><strong>⚖️ 法域冲突：</strong>日本 CODA 案暴露——日本「事前许可」 vs 美国「合理使用」的根本冲突</div>
    </div>
    <p style="margin-top:16px;text-align:center;">AI 全球化运营必须面对不同法域的版权制度冲突。</p>'''))

slides.append(("1.45", "Sora 退场后的全球格局——国产视频模型加速",
    '''<p style="margin-bottom:12px;"><strong>🇨🇳 国产模型合规先行，反而加速追赶</strong></p>
    <ul style="margin-top:8px;">
      <li>字节 Seedance 2.0、快手可灵 3.0、阿里欢乐马等迅猛崛起</li>
      <li>国产模型「合规先行」：算法备案、显性水印、聚焦工具属性</li>
      <li>即梦 AI 月活 1352.5 万，稳居第一；可灵全球周活 260 万</li>
    </ul>
    <div class="info-box" style="margin-top:16px;">
      <strong>对法学学生的启示：</strong><br>
      合规不过度牺牲创新速度，反而为规模商业化降低风险。<br>
      合规不是创新的敌人，而是商业化的护身符。
    </div>'''))

slides.append(("1.46", "真人真事：AI 帮他砍掉 16.2 万美元医疗账单",
    '''<p style="margin-bottom:12px;"><strong>🏥 AI 成为消费者的「法律援助」</strong></p>
    <ul style="margin-top:8px;">
      <li>纽约居民 Matt Rosenberg，姐夫 ICU 急救账单 <strong>19.5 万美元</strong></li>
      <li>用 Claude + ChatGPT 交叉验证，发现重复收费、非法计费、耗材加价 <strong>2300%</strong></li>
      <li>AI 撰写六页投诉信 → 账单降至 <strong>3.3 万美元</strong>（降幅 83%）</li>
    </ul>
    <div class="grid-2" style="margin-top:16px;">
      <div class="card-mini">美国 80% 医疗账单含错误<br>仅 1% 申诉</div>
      <div class="card-mini">每天 4000 万人<br>向 AI 咨询医疗问题</div>
    </div>
    <p style="margin-top:12px;color:#c49340;">普通人面对天价医疗账单，过去只能认栽——AI 改变了这一切。</p>'''))

slides.append(("1.47", "AI 动了谁的奶酪？——OpenAI 政策紧急转向",
    '''<p style="margin-bottom:12px;"><strong>2025.10.29：OpenAI 的一纸禁令</strong></p>
    <ul style="margin-top:8px;">
      <li>案例走红后，OpenAI 更新使用政策：<strong>禁止</strong>提供需持牌人士授权的专业建议<br>（医疗、法律、财务）</li>
      <li>禁止内容：分析医疗影像、诊断、起草合同、解释法律文件等</li>
    </ul>
    <div class="danger-box" style="margin-top:16px;">
      <strong>为什么转向？</strong><br>
      • 规避产品责任——用户依赖 AI 建议出错，可能起诉 OpenAI<br>
      • 应对诉讼压力<br>
      • 医疗和律师协会施压<br>
      技术提供者最终会选择规避风险。
    </div>'''))

slides.append(("1.48", "法学视角的四个追问",
    '''<p style="margin-bottom:16px;text-align:center;"><strong>四个值得深思的问题</strong></p>
    <div style="display:flex;flex-direction:column;gap:12px;">
      <div class="card-mini">⚖️ <strong>AI 算不算在提供法律意见？</strong>——分析账单、起草投诉信，这算不算「执业」？</div>
      <div class="card-mini">🛡️ <strong>普惠与责任如何平衡？</strong>——AI 帮穷人维权，但出错谁负责？</div>
      <div class="card-mini">🏥 <strong>利益格局如何影响规则？</strong>——谁在推动 OpenAI 禁止医疗/法律功能？</div>
      <div class="card-mini">💼 <strong>AI 会成为谁的工具？</strong>——既帮穷人砍价，也能帮富人避税。你会怎么选择？</div>
    </div>'''))

slides.append(("1.49", "小组讨论：假如你是 OpenAI 的合规官",
    '''<p style="text-align:center;margin-bottom:16px;"><strong>你会允许用户用 AI 分析医疗账单吗？</strong></p>
    <div class="grid-2" style="margin-top:12px;">
      <div class="card-mini"><strong>⚖️ 第一组</strong><br>法律诉讼风险角度</div>
      <div class="card-mini"><strong>🏪 第二组</strong><br>市场竞争与商业伦理角度</div>
      <div class="card-mini"><strong>📋 第三组</strong><br>监管合规角度</div>
      <div class="card-mini"><strong>💛 第四组</strong><br>消费者权益与社会责任角度</div>
    </div>
    <div class="info-box" style="margin-top:16px;text-align:center;">
      从你的角度出发，决定是否允许。然后分享你的理由。
    </div>'''))

slides.append(("1.50", "核心回顾：技术特征决定法律风险",
    '''<p style="margin-bottom:16px;">每一个技术特征，都会引发特定的法律问题。</p>
    <table>
      <tr><th>技术特征</th><th>⚖️ 法律镜像</th><th>关联案例/议题</th></tr>
      <tr><td><span class="tag tag-red">大算力</span></td><td>门槛垄断、算力霸权</td><td>API 依赖、公益组织可及性</td></tr>
      <tr><td><span class="tag tag-purple">大参数</span></td><td>不可解释性 × 程序正义</td><td>AI 量刑辅助</td></tr>
      <tr><td><span class="tag tag-orange">大数据</span></td><td>版权侵权、隐私泄露</td><td>纽约时报诉 OpenAI、三星泄密</td></tr>
      <tr><td><span class="tag tag-blue">概率生成</span></td><td>虚假法条/判例、职业伦理</td><td>Mata 案</td></tr>
      <tr><td><span class="tag tag-green">多模态</span></td><td>深度伪造、证据规则重构</td><td>Sora/可灵、举证责任</td></tr>
      <tr><td><span class="tag tag-red">蒸馏</span></td><td>知识产权边界、技术双标</td><td>Anthropic 和解、马斯克证言</td></tr>
    </table>
    <p style="margin-top:12px;text-align:center;color:#1a365d;">当你以后听到任何新 AI 技术，都可以用这张表格去分析它可能的法律风险。</p>'''))

slides.append(("1.51", "课堂总结 + 课后任务",
    '''<div style="margin-bottom:20px;">
      <p style=""><strong>📌 三个核心结论</strong></p>
      <ol style="margin-top:8px;">
        <li>生成式 AI 不是魔法，核心是概率预测 → 幻觉必然存在</li>
        <li>技术特征（算力、参数、数据、概率、多模态）直接决定法律风险结构</li>
        <li>蒸馏全球通用，「中国靠蒸馏」是舆论炒作；开源/闭源选择影响责任分配</li>
      </ol>
    </div>
    <div class="info-box">
      <strong>📝 课后任务</strong>
      <ul style="margin-top:8px;">
        <li>思考题：如果中美在蒸馏技术的合规标准上无法达成一致，法律人应如何参与国际 AI 治理规则设计？</li>
        <li>阅读：《生成式人工智能服务管理暂行办法》第 1—8 条</li>
      </ul>
    </div>
'''))

# ==================== GENERATE ====================
print(f"\n生成 {len(slides)} 个 HTML 文件...\n")
for i, (fn, title, content) in enumerate(slides):
    num = i + 1
    total = len(slides)
    prev_t = slides[i-1][1] if i > 0 else ""
    next_t = slides[i+1][1] if i < total - 1 else ""
    page(fn + ".html", num, total, title, content, prev_t, next_t)

print(f"\n✅ 全部 {len(slides)} 个页面生成完毕！")
