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`。
差异被折叠。 点击展开。
<!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 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论