Commit e0b572a5 by carywucn

fet:展会演示文件

parents
File added
# Alioth 展会屏幕体验包
零依赖、可离线运行的静态体验包,主线为“隆基绿能数字挑战 → 研报修订”,适合机器人屏幕或展台触屏。
直接打开 `index.html` 即可。若设备浏览器限制本地文件,可在本目录执行 `python3 -m http.server 8090`,然后打开 `http://127.0.0.1:8090`。
体验包含 7 个可独立进入的场景:60 秒投票陷阱、主线 2543 万数字挑战、投研研报审阅、文档逻辑校验、指标口径拆解、机构批量验收、三表勾稽规则实验。投票陷阱只讲“多数一致不等于正确”,主线挑战才进入金额、依据和研报修订,避免两个场景重复。所有场景都支持触屏操作与一键重置。页面明确标记为历史案例回放或模拟错误实验,不伪装成实时查询。
后续接实时 API 时,在 `app.js` 增加适配层即可。建议服务层代理 `/verify_metric` 与 `/verify_report`,不要把付费 key 放进浏览器;实时模式应透传 `verdict`、`tier`、`confidence`、`reference`、`evidence`、`reasons`、`needs_confirmation`。
const C={company:'隆基绿能',period:'2024-12-31',reported:-8592102400.42,truth:-8617528506.44};const fmt=n=>n.toLocaleString('zh-CN',{maximumFractionDigits:2})+' 元';const app=document.querySelector('#app');let s={page:'home',choice:null,repair:false,inject:false};
const card=(id,tag,title,desc)=>`<button class="scene-card" data-go="${id}"><span class="scene-tag">${tag}</span><h3>${title}</h3><p>${desc}</p><span class="btn primary">开始体验 →</span></button>`;
const pages={
home:()=>`<div class="shell"><section class="hero"><div><div class="eyebrow">金融数据验真挑战 · 多场景体验</div><h1>AI 给你的金融数字,<br>你敢直接用吗?</h1><p>选择一个场景,亲手发现差异、查看依据、完成修订。让每一个金融数字,经得起追问。</p><div class="cta"><button class="btn primary large" data-go="challenge">推荐主线:找出 2543 万</button><button class="btn large" data-go="report">直接检查研报</button></div></div><div class="hero-visual"><div class="visual-head"><span>Alioth 核验结果</span><span class="badge amber">历史案例回放</span></div><div class="mini-row"><span>输入值</span><strong>−85.9210 亿</strong></div><div class="mini-row"><span>基准值</span><strong>−86.1753 亿</strong></div><div class="mini-row"><span>差额</span><strong style="color:var(--red)">约 2543 万</strong></div><p class="tip" style="margin-top:18px">数字、口径、逻辑、批量验收,都可以在这里体验。</p></div></section><h2 style="margin:58px 0 0;font-size:30px">选择你的体验</h2><section class="scene-grid">${card('vote','60 秒投票陷阱','两个来源都对,就一定对吗?','先做直觉判断,理解“多数一致”为什么不能代替事实。')}${card('challenge','主线挑战','找出隐藏的 2543 万','进入完整核验:基准、差额、依据,再把问题放回研报。')}${card('report','投研审阅','这份 AI 研报能直接交吗?','从关键数字核验到修订前后对照,完成一份研报检查。')}${card('logic','逻辑校验','只错一个数字,为什么整段话都站不住?','用京东方样稿检查同比叙述与算式是否自洽。')}${card('caliber','口径理解','同名指标,为什么差了 637 万?','拆开其他应收款的统计范围,理解口径差异。')}${card('batch','机构验收','20 行供应商差异,先处理哪一行?','按证据等级分流批量差异,建立待复核清单。')}${card('statements','规则实验','你来改一个数,看关系在哪里断开','注入 30 亿元现金流错误,观察三表勾稽。')}</section></div>`,
vote:()=>`<div class="shell"><div class="crumb">首页 / 60 秒投票陷阱</div><section class="panel"><div class="eyebrow">大众挑战 · 直觉测试</div><h2>5 个来源都说一样,就等于正确吗?</h2><p class="sub">先凭直觉选答案,再看 Alioth 为什么坚持寻找披露依据。</p><div class="choice-grid"><button class="choice" data-vote="yes"><div class="letter">A · 直觉答案</div><strong>是,少数服从多数</strong><small>5 个来源一致,应该可以直接使用</small></button><button class="choice" data-vote="no"><div class="letter">B · 验真答案</div><strong>不一定,还要查基准</strong><small>多个来源可能共同复制同一个错误</small></button></div>${s.vote?`<div class="result"><h3>${s.vote==='yes'?'这是常见但危险的判断':'这是 Alioth 的判断'}</h3><p>来源之间的一致,只能说明它们彼此一致,不能证明它们符合财报原文。</p><p class="tip">下一步:进入主线挑战,看一个真实案例中“多数一致”如何偏离约 2543 万。</p><button class="btn primary" data-go="challenge">进入主线挑战 →</button></div>`:''}</section></div>`,
challenge:()=>`<div class="shell"><div class="crumb">首页 / 大众挑战</div><section class="panel"><div class="eyebrow">历史案例 · ${C.company} ${C.period}</div><h2>下面哪一个数字可以直接引用?</h2><p class="sub">归母净利润 · 单位:元(展示时可按亿元阅读)</p><div class="choice-grid"><button class="choice ${s.choice==='a'?'selected':''}" data-choice="a"><div class="letter">A · 数仓来源</div><strong>−85.921024 亿</strong><small>两个来源曾给出相同结果</small></button><button class="choice ${s.choice==='b'?'selected':''}" data-choice="b"><div class="letter">B · 审计基准</div><strong>−86.175285 亿</strong><small>项目预录的审计核验值</small></button></div>${s.choice?(s.verifying?`<div class="result"><h3>正在核验披露依据…</h3><p>归一化指标、对齐报告期、比对历史审计基准。</p></div>`:`<div class="result"><h3>${s.choice==='a'?'发现差异:A 的数字少计了约 2543 万':'选择正确,但仍建议查看依据'}</h3><p>输入值:${fmt(C.reported)} 基准值:${fmt(C.truth)}</p><p>相对偏差:<b>0.295%</b> 判定:<span class="badge ${s.choice==='a'?'red':'green'}">${s.choice==='a'?'错':'对'}</span></p><details class="evidence"><summary>查看依据与判定过程</summary><p>本案例依据项目预录审计基准,报告期为 2024-12-31。本页面为历史案例回放,未在此刻重新拉取公告 PDF。</p></details><div class="foot-actions"><span class="tip">继续把问题放回研报</span><button class="btn primary" data-go="report">继续检查研报 →</button></div></div>`):''}</section></div>`,
report:()=>`<div class="shell"><div class="crumb">首页 / 投研审阅</div><div class="split"><section class="report"><div class="eyebrow" style="font-family:inherit">项目样稿 · 光伏与白酒</div><h2>隆基绿能:光伏出清,亏损加深</h2><p>隆基绿能(601012)2024 年归母净利润为 <span class="mark-error" data-repair>−85.921024 亿元</span>,由盈转亏、且亏损幅度较大。</p><p>公司作为一体化组件龙头,虽然具备成本与技术优势,但行业整体处于产能出清阶段。</p>${s.repair?`<div class="repair"><b>修订预览</b><br><del>−85.921024 亿元</del> → <strong>−86.1753 亿元</strong><br><span class="tip">依据:项目预录审计基准 · 2024-12-31</span></div>`:''}</section><aside><div class="panel"><div class="eyebrow">已抽取 1 项关键数字</div><h2 style="font-size:22px">核验结果</h2><div class="metric-item"><div><span>归母净利润 · 2024 年报</span><br><strong>${s.repair?'−86.1753':'−85.9210'} 亿</strong></div><span class="badge ${s.repair?'green':'red'}">${s.repair?'已修订':'发现差异'}</span></div><div class="evidence"><b>为什么需要修订?</b><p>当前文本与项目基准相差约 2543 万(0.295%)。</p><p class="tip">结果只覆盖已抽取并核验的数字。</p></div>${!s.repair?'<button class="btn primary large" data-repair style="width:100%;margin-top:18px">采用这处修订</button>':'<button class="btn primary large" data-go="home" style="width:100%;margin-top:18px">生成核验摘要并结束</button>'}</div></aside></div></div>`,
logic:()=>`<div class="shell"><div class="crumb">首页 / 逻辑校验</div><section class="panel"><div class="eyebrow">京东方 2026Q1 · 规则实验</div><h2>这段同比叙述,算得通吗?</h2><p class="sub">把文字变成算式,检查文档内部是否自洽。</p><div class="report"><p>2026 年第一季度,京东方实现营业收入 <b>61.001 亿元</b>,较同期 <b>505.99 亿元</b>增长 <b>0.8%</b>。</p></div><div class="formula">505.99 × (1 + 0.8%) = <b>510.04 亿元</b></div><div class="result"><h3>发现文档内不自洽</h3><p>叙述推导值约 510.04 亿元,与文中 61.001 亿元不一致。</p><p class="tip">这是算式推导结果,不代替官方营收值;仍需外部数据核验。</p></div><button class="btn primary" data-go="home">返回场景选择</button></section></div>`,
caliber:()=>`<div class="shell"><div class="crumb">首页 / 口径理解</div><section class="panel"><div class="eyebrow">案例拆解 · 统计范围</div><h2>同名指标,为什么差了 637 万?</h2><p class="sub">两方都写“其他应收款”,但统计范围并不相同。</p><div class="formula">7,293,894.32 − 6,375,781.80 = <b>918,112.52 元</b></div><table class="table"><tr><th>组成项</th><th>金额</th><th>是否纳入纯科目</th></tr><tr><td>其他应收款合计</td><td>7,293,894.32</td><td>含在合计中</td></tr><tr><td>应收股利</td><td>6,375,781.80</td><td>需要扣除</td></tr><tr><td>纯其他应收款</td><td>918,112.52</td><td class="ok">供应商值</td></tr></table><div class="result"><h3>口径差异,不等于数据错误</h3><p>先统一统计边界,才能判断两个数是否一致。</p></div><button class="btn primary" data-go="home">返回场景选择</button></section></div>`,
batch:()=>`<div class="shell"><div class="crumb">首页 / 机构验收</div><section class="panel"><div class="eyebrow">20 行历史差异样本 · 批量验收</div><h2>先处理哪一行?</h2><p class="sub">按证据等级分流,优先处理需要判断的差异。</p><table class="table"><tr><th>指标</th><th>供应商 A</th><th>供应商 B</th><th>处理建议</th></tr><tr><td>拆入资金净增加额</td><td>12.00 亿</td><td>9.00 亿</td><td><span class="badge amber">待复核</span></td></tr><tr><td>总负债</td><td>28,798,691,092.15</td><td>28,798,691,092.14</td><td><span class="badge green">精度差异</span></td></tr><tr><td>在建工程</td><td>9,621,336.08</td><td>9,800,000.00</td><td><span class="badge red">优先处理</span></td></tr></table><div class="result"><h3>批量验收的价值</h3><p>每一行保留输入、证据等级和待办原因,避免把单源支持误写成权威裁决。</p></div><button class="btn primary" data-go="home">返回场景选择</button></section></div>`,
statements:()=>`<div class="shell"><div class="crumb">首页 / 规则实验</div><section class="panel"><div class="eyebrow">三大报表勾稽 · 模拟错误实验</div><h2>你来改一个数,看关系在哪里断开</h2><p class="sub">样本:贵州茅台 2024 年报。点击注入错误。</p><div class="formula">现金净增加额 = 经营 + 投资 + 筹资 + 汇率影响</div><button class="btn primary large" data-inject>注入测试错误:筹资现金流 +30 亿</button>${s.inject?'<div class="result"><h3>勾稽关系被破坏</h3><p>筹资现金流被人为增加 30 亿元,现金净增加额与三流合计不一致。</p><p class="tip">规则能发现关系断裂,但不能仅凭勾稽关系确定是哪一个字段错。</p></div>':''}<br><button class="btn" data-go="home" style="margin-top:20px">返回场景选择</button></section></div>`};
function render(){document.querySelector('#modeLabel').textContent=s.page==='statements'?'模拟错误实验':s.page==='vote'?'直觉测试':'历史案例回放';app.innerHTML=pages[s.page]();document.querySelectorAll('[data-go]').forEach(b=>b.onclick=()=>{s.page=b.dataset.go;render()});document.querySelectorAll('[data-choice]').forEach(b=>b.onclick=()=>{s.choice=b.dataset.choice;s.verifying=true;render();setTimeout(()=>{s.verifying=false;render()},850)});document.querySelectorAll('[data-vote]').forEach(b=>b.onclick=()=>{s.vote=b.dataset.vote;render()});document.querySelectorAll('[data-repair]').forEach(b=>b.onclick=()=>{s.repair=true;render()});document.querySelectorAll('[data-inject]').forEach(b=>b.onclick=()=>{s.inject=true;render()})}document.querySelector('#resetBtn').onclick=()=>{s={page:'home',choice:null,repair:false,inject:false,vote:null,verifying:false};render()};setInterval(()=>document.querySelector('#clock').textContent=new Date().toLocaleTimeString('zh-CN',{hour12:false}),1000);render();
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Alioth · 金融数据验真挑战</title><link rel="stylesheet" href="styles.css"></head><body><header class="topbar"><div class="brand"><span class="mark">A</span><span>ALIOTH</span><small>金融数据确定性引擎</small></div><div class="mode"><span class="live-dot"></span><span id="modeLabel">历史案例回放</span><button id="resetBtn" class="text-btn">重置体验</button></div></header><main id="app"></main><footer><span>数据依据:项目已核验公开案例 · 展示模式</span><span id="clock"></span></footer><script src="app.js"></script></body></html>
#!/bin/sh
cd "$(dirname "$0")"
echo "Alioth exhibit: opening index.html"
open "$(pwd)/index.html" 2>/dev/null || true
:root{--ink:#17212b;--muted:#697684;--line:#dce3e8;--paper:#f5f7f8;--blue:#1769ff;--blue-soft:#eaf1ff;--red:#d83b3b;--red-soft:#fff0f0;--green:#147a54;--green-soft:#e9f7f0;--amber:#9a6500;--amber-soft:#fff7df}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:18px}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:800;letter-spacing:2px}.brand small{font-size:13px;color:var(--muted);font-weight:400;letter-spacing:0;margin-left:8px}.mark{background:var(--blue);color:#fff;border-radius:9px;width:34px;height:34px;display:grid;place-items:center}.mode{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.text-btn{border:0;background:none;color:var(--blue);font-size:14px;cursor:pointer;margin-left:20px}.shell{max-width:1280px;margin:0 auto;padding:46px 42px 88px}.eyebrow{color:var(--blue);font-size:14px;font-weight:700;letter-spacing:1px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}.hero h1{font-size:54px;line-height:1.12;letter-spacing:-2px;margin:16px 0}.hero p{font-size:22px;color:var(--muted);line-height:1.6;margin:20px 0 34px}.cta{display:flex;gap:14px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:16px 23px;font-size:18px;cursor:pointer}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.large{padding:19px 30px;font-size:20px}.hero-visual,.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}.visual-head{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);margin-bottom:25px}.mini-row{padding:18px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.mini-row strong{font-size:24px}.badge{font-size:13px;padding:5px 9px;border-radius:5px;font-weight:700}.badge.red{color:var(--red);background:var(--red-soft)}.badge.green{color:var(--green);background:var(--green-soft)}.badge.amber{color:var(--amber);background:var(--amber-soft)}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:62px}.principle{background:#fff;border-top:3px solid var(--blue);padding:22px 24px}.principle h3{margin:0 0 9px;font-size:19px}.principle p,.tip{margin:0;color:var(--muted);line-height:1.5;font-size:15px}.crumb{color:var(--muted);font-size:14px;margin-bottom:27px}.panel{border-radius:12px;padding:30px}.panel h2{font-size:30px;margin:5px 0 11px}.sub{color:var(--muted);margin:0 0 26px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0}.choice{border:2px solid var(--line);border-radius:10px;background:#fff;padding:24px;text-align:left;cursor:pointer}.choice:hover,.choice.selected{border-color:var(--blue)}.choice.selected{background:var(--blue-soft)}.choice .letter{color:var(--blue);font-weight:800;margin-bottom:14px}.choice strong{font-size:28px;display:block}.choice small{color:var(--muted);display:block;margin-top:8px}.result{margin-top:26px;border-left:4px solid var(--red);background:var(--red-soft);padding:22px 24px}.result h3{margin:0 0 10px}.result p{margin:7px 0;line-height:1.5}.evidence{border:1px solid var(--line);padding:18px;margin-top:18px;background:#fff}.evidence summary{cursor:pointer;color:var(--blue);font-weight:700}.steps{display:flex;margin:4px 0 30px}.step{flex:1;text-align:center;color:var(--muted);font-size:14px;border-bottom:3px solid var(--line);padding:10px}.step.active{color:var(--blue);border-color:var(--blue);font-weight:700}.report{background:#fff;border:1px solid var(--line);padding:28px;font-family:Georgia,"Songti SC",serif;line-height:1.9;font-size:19px}.mark-error{background:#ffe5e5;color:#a82323;padding:2px 5px;border-radius:3px;cursor:pointer}.repair{background:var(--blue-soft);padding:22px;margin-top:18px;border-left:4px solid var(--blue);font-family:inherit}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:24px}.metric-list{display:grid;gap:10px}.metric-item{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);padding:16px;background:#fff}.metric-item span{color:var(--muted);font-size:14px}.metric-item strong{font-size:20px}.foot-actions{display:flex;justify-content:space-between;align-items:center;margin-top:26px}footer{position:fixed;bottom:0;left:0;right:0;height:37px;background:#17212b;color:#c5ced8;display:flex;justify-content:space-between;align-items:center;padding:0 28px;font-size:12px}@media(max-width:850px){.hero,.split{grid-template-columns:1fr}.hero h1{font-size:42px}.principles,.choice-grid{grid-template-columns:1fr}.shell{padding:28px 20px 70px}.topbar{padding:0 18px}.brand small{display:none}}
.scene-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:38px}.scene-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;cursor:pointer;text-align:left}.scene-card:hover{border-color:var(--blue)}.scene-card h3{margin:11px 0 8px;font-size:20px}.scene-card p{color:var(--muted);font-size:15px;line-height:1.5;margin:0 0 17px}.scene-tag{font-size:12px;color:var(--blue);font-weight:700}.scene-card .btn{font-size:15px;padding:10px 14px}.table{width:100%;border-collapse:collapse;background:#fff;margin:20px 0}.table th,.table td{padding:15px;border-bottom:1px solid var(--line);text-align:left}.table th{color:var(--muted);font-size:14px;font-weight:500}.table td{font-size:16px}.formula{font-size:24px;background:#f8fafc;border:1px solid var(--line);padding:23px;text-align:center;margin:20px 0}.ok{color:var(--green)}
.hero-visual{position:relative;overflow:hidden}.hero-visual:after{content:"";position:absolute;left:0;right:0;height:3px;top:0;background:var(--blue);box-shadow:0 0 24px var(--blue);animation:scan 3.2s ease-in-out infinite}.hero-visual .mini-row{animation:rise .55s both}.hero-visual .mini-row:nth-child(2){animation-delay:.15s}.hero-visual .mini-row:nth-child(3){animation-delay:.3s}.hero-visual .mini-row:nth-child(4){animation-delay:.45s}.scene-card{transition:transform .2s,border-color .2s,background .2s}.scene-card:hover{transform:translateY(-6px);background:#fbfdff}.scene-card:active{transform:scale(.985)}.panel,.report{animation:rise .45s ease-out both}.result{animation:reveal .5s ease-out both}.formula{position:relative;overflow:hidden}.formula:before{content:"";position:absolute;left:-40%;top:0;width:30%;height:100%;background:linear-gradient(90deg,transparent,rgba(23,105,255,.12),transparent);animation:sheen 2.8s infinite}.choice.selected{animation:select .35s ease-out}.table tr{animation:rise .4s both}.table tr:nth-child(2){animation-delay:.1s}.table tr:nth-child(3){animation-delay:.2s}.table tr:nth-child(4){animation-delay:.3s}@keyframes scan{0%,100%{transform:translateY(0);opacity:.25}50%{transform:translateY(330px);opacity:1}}@keyframes rise{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}@keyframes reveal{from{transform:scale(.98);opacity:0}to{transform:scale(1);opacity:1}}@keyframes sheen{to{left:120%}}@keyframes select{50%{transform:scale(1.025)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}
import pptxgen from 'pptxgenjs';
const pptx=new pptxgen(); pptx.layout='LAYOUT_WIDE'; pptx.author='Alioth'; pptx.subject='展会交互案例'; pptx.title='Alioth 金融数据验真';
const blue='1769FF', ink='17212B', muted='697684', red='D83B3B', pale='F5F7F8';
function slide(title,sub){let s=pptx.addSlide();s.background={color:pale};s.addText(title,{x:.65,y:.55,w:12,h:.55,fontFace:'Arial',fontSize:28,bold:true,color:ink});if(sub)s.addText(sub,{x:.67,y:1.2,w:11.8,h:.35,fontSize:14,color:muted});s.addText('ALIOTH · 金融数据确定性引擎',{x:.67,y:7.05,w:5,h:.2,fontSize:9,color:muted});return s}
let s=pptx.addSlide();s.background={color:ink};s.addText('AI 给你的金融数字',{x:.75,y:1.55,w:11.8,h:.75,fontSize:42,bold:true,color:'FFFFFF'});s.addText('你敢直接用吗?',{x:.75,y:2.45,w:11.8,h:.75,fontSize:42,bold:true,color:'FFFFFF'});s.addText('Alioth 金融数据验真挑战',{x:.8,y:3.65,w:10,h:.35,fontSize:22,color:'BFD2FF'});s.addText('展会交互案例演示 · 历史案例回放',{x:.8,y:6.7,w:8,h:.25,fontSize:12,color:'AAB7C4'});
s=slide('三个问题,一套确定性校验','从观众直觉开始,走到机构数据验收');[['数字','多个来源一致,是否就正确?'],['口径','同名指标,是否真的是同一个数?'],['逻辑','一段话里的数字,是否彼此说得通?']].forEach((a,i)=>{s.addText(a[0],{x:.85+i*4.1,y:2.25,w:2.7,h:.5,fontSize:24,bold:true,color:blue});s.addText(a[1],{x:.85+i*4.1,y:3.05,w:3.3,h:.8,fontSize:18,color:ink})});
s=slide('60 秒投票陷阱','大众入口:先挑战直觉,再解释为什么需要基准');s.addText('5 个来源都说一样,就等于正确吗?',{x:.9,y:2,w:11,h:.6,fontSize:30,bold:true,color:ink});s.addText('不一定。来源之间的一致,只能说明它们彼此一致。',{x:.9,y:3.1,w:11,h:.4,fontSize:22,color:red});s.addText('Alioth 会继续寻找可追溯的披露依据。',{x:.9,y:4.05,w:11,h:.4,fontSize:22,color:muted});
s=slide('主线挑战:找出隐藏的 2543 万','隆基绿能 · 2024 年归母净利润 · 历史核验案例');[['数仓来源','−85.921024 亿'],['审计基准','−86.175285 亿'],['差额','约 2543 万']].forEach((a,i)=>{s.addText(a[0],{x:1,y:2+i*1.05,w:2.5,h:.35,fontSize:17,color:muted});s.addText(a[1],{x:4,y:2+i*1.05,w:4.5,h:.4,fontSize:25,bold:true,color:i===2?red:ink})});s.addText('结论:多数一致不能代替事实,最终要回到披露依据。',{x:1,y:5.6,w:11,h:.4,fontSize:20,color:blue});
s=slide('投研审阅:关键数字能否直接交付','把发现的差异放回研报,形成修订前后对照');s.addText('原文:归母净利润为 −85.921024 亿元',{x:1,y:2.05,w:11,h:.45,fontSize:24,color:ink});s.addText('修订:归母净利润为 −86.1753 亿元',{x:1,y:3.2,w:11,h:.45,fontSize:24,bold:true,color:blue});s.addText('输出:输入值、基准值、差额、依据、修订记录',{x:1,y:4.55,w:11,h:.4,fontSize:20,color:muted});
s=slide('逻辑校验:数字拼在一起也要成立','京东方 2026Q1 · 文档内部一致性实验');s.addText('505.99 × (1 + 0.8%) = 510.04 亿元',{x:1,y:2.2,w:11,h:.6,fontSize:28,bold:true,color:blue});s.addText('文中本期营收写成 61.001 亿元,叙述不自洽。',{x:1,y:3.45,w:11,h:.45,fontSize:22,color:red});s.addText('推导值用于发现矛盾,不代替官方营收核验。',{x:1,y:4.55,w:11,h:.35,fontSize:18,color:muted});
s=slide('口径拆解:同名指标不一定同范围','其他应收款案例 · 先统一统计边界,再判断谁对谁错');s.addText('7,293,894.32 − 6,375,781.80 = 918,112.52 元',{x:1,y:2.2,w:11,h:.6,fontSize:28,bold:true,color:blue});s.addText('合计项含应收股利,纯科目需要扣除。',{x:1,y:3.5,w:11,h:.4,fontSize:22,color:ink});s.addText('结论:口径差异,不等于数据错误。',{x:1,y:4.7,w:11,h:.4,fontSize:22,color:muted});
s=slide('机构验收:20 行差异如何分流','批量任务按证据等级进入处理队列');[['拆入资金净增加额','12 亿 vs 9 亿','待复核'],['总负债','差 0.01 元','精度差异'],['在建工程','9,621,336.08 vs 9,800,000','优先处理']].forEach((a,i)=>{s.addText(a[0],{x:1,y:1.9+i*1.1,w:3.3,h:.3,fontSize:17,bold:true,color:ink});s.addText(a[1],{x:4.5,y:1.9+i*1.1,w:4.5,h:.3,fontSize:17,color:muted});s.addText(a[2],{x:10,y:1.9+i*1.1,w:2,h:.3,fontSize:17,bold:true,color:i===2?red:blue})});s.addText('每一行都保留输入、证据等级与待办原因。',{x:1,y:5.65,w:11,h:.4,fontSize:20,color:blue});
s=slide('一次核验,下一次直接复用','公开案例沉淀为可追溯记录,人工确认决定是否进入复用链路');s.addText('发现问题 → 查看依据 → 人工确认 → 历史记录复用',{x:1,y:2.25,w:11,h:.6,fontSize:27,bold:true,color:blue});s.addText('Alioth 复用的是已审核的判定与证据,不把未经确认的存疑结果当成真理。',{x:1,y:3.65,w:11,h:.55,fontSize:20,color:ink});s.addText('数字人负责邀请与解释,屏幕负责证据与操作。',{x:1,y:5,w:11,h:.4,fontSize:20,color:muted});
await pptx.writeFile({fileName:'alioth-exhibit-demo.pptx'});
<!doctype html><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Alioth 展会演示视频</title><style>body{margin:0;background:#17212b;color:white;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;height:100vh;display:grid;place-items:center}.stage{width:min(92vw,1280px);aspect-ratio:16/9;background:#f5f7f8;color:#17212b;position:relative;overflow:hidden}.slide{padding:8vw 7vw;display:none;height:100%;box-sizing:border-box}.slide.active{display:block}.kicker{color:#1769ff;font-size:18px;font-weight:700}.title{font-size:clamp(32px,4vw,60px);font-weight:800;margin:20px 0}.body{font-size:clamp(20px,2.3vw,34px);line-height:1.5;color:#697684}.sub{position:absolute;left:5%;right:5%;bottom:5%;background:rgba(23,33,43,.93);color:white;padding:15px 20px;text-align:center;font-size:clamp(16px,1.6vw,24px)}.progress{position:absolute;left:0;top:0;height:5px;background:#1769ff;transition:width .2s}.hint{position:absolute;right:18px;top:15px;color:#697684;font-size:13px}</style><div class="stage"><div class="progress" id="p"></div><div class="hint">点击或按空格暂停 / 继续</div><section class="slide active"><div class="kicker">ALIOTH · 展会演示</div><div class="title">AI 给你的金融数字<br>你敢直接用吗?</div><div class="body">金融数据验真挑战</div></section><section class="slide"><div class="kicker">三个问题</div><div class="title">数字 · 口径 · 逻辑</div><div class="body">从“看起来正确”,走到“经得起追问”。</div></section><section class="slide"><div class="kicker">60 秒投票陷阱</div><div class="title">5 个来源一致<br>也可能一起错</div><div class="body">一致性不能代替可追溯的披露依据。</div></section><section class="slide"><div class="kicker">主线挑战</div><div class="title">找出隐藏的<br><span style="color:#d83b3b">2543 万</span></div><div class="body">−85.921024 亿 vs −86.175285 亿</div></section><section class="slide"><div class="kicker">投研审阅</div><div class="title">发现差异,完成修订</div><div class="body">输入值 · 基准值 · 差额 · 依据 · 修订记录</div></section><section class="slide"><div class="kicker">逻辑校验</div><div class="title">数字拼在一起<br>也要算得通</div><div class="body">把同比叙述转成算式,发现文档内部矛盾。</div></section><section class="slide"><div class="kicker">口径拆解</div><div class="title">同名指标<br>不一定同范围</div><div class="body">先统一统计边界,再判断数据是否一致。</div></section><section class="slide"><div class="kicker">机构验收</div><div class="title">20 行差异<br>按证据等级分流</div><div class="body">优先处理需要判断的行,保留每一条待办原因。</div></section><section class="slide"><div class="kicker">复用闭环</div><div class="title">一次核验<br>下一次直接复用</div><div class="body">确认后的记录成为下一次检查的起点。</div></section><div class="sub" id="sub"></div></div><script>const texts=['AI 给你的金融数字,你敢直接用吗?这是 Alioth 金融数据验真挑战。','Alioth 关注三个问题:数字是否可靠,指标口径是否一致,文档逻辑是否自洽。','五个来源都说一样,就等于正确吗?来源一致,不能代替披露依据。','隆基绿能案例中,两个来源相差约 2543 万元。Alioth 把输入值与审计基准对齐。','发现差异后,系统把问题放回研报,展示修订前后的数字与核验依据。','文档里的数字也要彼此说得通。同比叙述可以先转成算式,再进入外部核验。','同名指标可能有不同统计范围。统一口径之后,才能判断谁对谁错。','面对供应商差异,Alioth 按证据等级分流,优先处理真正需要判断的行。','一次核验留下可追溯记录,经过确认后,下一次同类问题可以直接复用。'];let i=0,run=true,t=0,slides=document.querySelectorAll('.slide');function paint(){slides.forEach((x,n)=>x.classList.toggle('active',n===i));document.querySelector('#sub').textContent=texts[i];document.querySelector('#p').style.width=((i+1)/slides.length*100)+'%'}function next(){i=(i+1)%slides.length;paint()}paint();setInterval(()=>{if(run){t++;if(t>=6){t=0;next()}}},1000);document.querySelector('.stage').onclick=()=>run=!run;document.addEventListener('keydown',e=>{if(e.code==='Space')run=!run;if(e.code==='ArrowRight'){t=0;next()}})</script>
/Users/carywu/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/node_modules
\ No newline at end of file
1
00:00:00,000 --> 00:00:06,000
AI 给你的金融数字,你敢直接用吗?这是 Alioth 金融数据验真挑战。
2
00:00:06,000 --> 00:00:12,000
Alioth 关注三个问题:数字是否可靠,指标口径是否一致,文档逻辑是否自洽。
3
00:00:12,000 --> 00:00:18,000
五个来源都说一样,就等于正确吗?来源一致,不能代替披露依据。
4
00:00:18,000 --> 00:00:25,000
隆基绿能案例中,两个来源相差约 2543 万元。Alioth 把输入值与审计基准对齐。
5
00:00:25,000 --> 00:00:32,000
发现差异后,系统把问题放回研报,展示修订前后的数字与核验依据。
6
00:00:32,000 --> 00:00:39,000
文档里的数字也要彼此说得通。同比叙述可以先转成算式,再进入外部核验。
7
00:00:39,000 --> 00:00:46,000
同名指标可能有不同统计范围。统一口径之后,才能判断谁对谁错。
8
00:00:46,000 --> 00:00:53,000
面对供应商差异,Alioth 按证据等级分流,优先处理真正需要判断的行。
9
00:00:53,000 --> 00:01:00,000
一次核验留下可追溯记录,经过确认后,下一次同类问题可以直接复用。
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论