commit 5319769c09d411b9d7c1c673ef7cc17bcdef622b Author: freedakgmail Date: Sun Jul 12 16:53:33 2026 +0800 初始提交:用户交流技术实现方案及31张SVG/JPG图 diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..3494482 Binary files /dev/null and b/.DS_Store differ diff --git a/V1.0.md b/V1.0.md new file mode 100644 index 0000000..81600ac --- /dev/null +++ b/V1.0.md @@ -0,0 +1,284 @@ + + +# 延安精神(大湾区)学习展示中心项目报告 +## 总述 +延安精神是中国共产党的核心精神内核,是我党百年奋斗积淀的宝贵 +精神财富。立足数字经济新时代,运用人工智能、元宇宙等前沿技术创新 +阐释、传播延安精神,既是坚守正确政治方向、落实解放思想实事求是思 +想路线的重要实践,也是延安精神创造性转化、创新性发展,建设新时代 +思想文化建设的标杆工程,兼具政治性、前瞻性和时代性。 +本项目依托粤港澳大湾区位、产业和人口优势,打造集理论研究、党 +性实训、数字沉浸体验、思政研学、IP 孵化于一体的延安精神数智化展 +示枢纽。 +项目突破传统红色展馆静态展陈、单向宣讲短板,以数字技术焕活延 +安精神,构建涵盖党政、校园、社会三级常态化必修教育体系,覆盖党员 +干部、师生、港澳青年、企业职工、社区群众的延安精神一站式全业态学 +习综合体。 +## 一、项目总览 +### 1.2 核心定位 +立足广东、辐射全国、联动港澳,建成两大核心载体: +1. 数智化展示枢纽:打造集理论研究、党性实训、数字沉浸体验、思 +政研学、IP 产业孵化于一体的延安精神数智化展示枢纽; +2. 复合型学习综合体:构建涵盖党政党性教育、大中小学思政培育、 +全民红色普及的延安精神一站式全业态学习综合体。 + +### 1.3 项目目标 +#### 1. 补齐湾区延安精神专属阵地短板 +严格对标总书记贺信精神与全国红色文化建设工作要求,填补大湾区 +大型数字化延安精神专属教育阵地的空白,搭建标准化、常态化学习实践 +平台。 +#### 2. 打造全国可复制样板 +以AI、VR/AR/MR、8K 超高清数字技术重构红色学习场景,建成可 +复制、可对外输出的延安精神数字化标杆。 +#### 3. 打造岭南红色叙事 +融合延安根脉,深度挖掘东江纵队革命历史、广东改革开放历程、 +XXX 自贸片区发展实践,构建岭南地域特色的红色教育内容体系。 +#### 4. 实现青少年群体全覆盖 +搭建分龄分层研学课程,打通线下实体场馆+线上3D 云展馆双通道, +推动延安精神年轻化传播。 +#### 5. 筑牢港澳青年家国认同 +依托毗邻港澳区位优势,搭建港澳青年专属国情教育平台,以轻量化、 +双语化、数字化体验降低认知门槛,增强港澳青年国家认同、民族认同、 +文化认同。 +## 二、六大核心功能板块规划 +### 2.1 延安革命文物展示中心(项目核心实物载体) +调配延安革命文物原件长期驻馆展出,实现“实物展陈+数字复原”双 +线展示。 +#### 1. 实物展陈 +陈列延安时期生产生活器具、革命手稿、报刊文献、军装武器、领导 +人书信、大生产运动实物等一、二级革命文物,完整还原延安十三年艰苦 +奋斗历史图景;同步配套展出东江纵队华南抗战文物,打通“延安根脉— +华南红色实践”完整叙事脉络。 +#### 2. 数字化配套 +配套AI 智能讲解、全息文物复原;配套恒温恒湿专业文物库房,实 +现文物数字化建档,搭建和开放线上数字馆藏库。 +#### 3. 专题文物临展机制 +联动全国各大红色纪念馆开展革命文物展巡回展,打造华南唯一常态 +化延安革命文物固定展示窗口,兼具文物保护、党史研究、公众科普多重 +功能。 +### 2.2 权威党建思政宣教平台 +构建“干部党性锤炼+校园思政教学+红色师资培育”三位一体必修教育 +体系,全部内容由中国延安精神研究会编审。 +#### 1. 党政党性教育主阵地 +作为全省机关、国企、两新组织(新经济组织、新社会组织)主题教 +育、组织生活会、入党宣誓固定点位;围绕延安精神四大内涵,开发廉政 +教育、湾区发展专题党课,承接各单位集中轮训、主题党日活动。 +#### 2. 分层青少年思政研学基地 +联合中国人民大学,分层研发梯度课程: +• 小学段:红色故事沉浸式互动体验,侧重情感熏陶; +• 中学段:系统梳理革命历史脉络,强化历史逻辑认知; +• 高校段:延安精神理论深度研讨、社会实践课题研究。 +同步申报省级、国家级研学基地,与全省千余所院校签订长期研学合 +作框架。 +#### 3. 华南红色师资培育总部 +面向党务干部、思政教师、讲解员开设持证研修班;建立红色师资人 +才库,输出标准化课件与数字化教学工具。 +### 2.3 AI+XR 数字红色沉浸式体验中心(项目标志性特色板块) +布局一层14.3 米超高无柱核心空间,搭建专属延安精神AI 大模型、 +VR/AR/MR、8K 影音、全身动态体感交互设备。 +#### 1. VR 实景体验舱 +1:1 复原南泥湾大生产、敌后根据地、延安窑洞生活、东江纵队游击 +战场,游客沉浸式参与纺线、开荒、战地送信等情景互动,实现由“被动 +观看”向“主动亲历”转变,强化历史共情。 +#### 2. AI 智能党史互动馆 +设置中英双语AI 宣讲人,实时解答党史理论问题;布设多点触控大 +屏,可开展党史竞赛、红色剧本演绎、云端党史连线对话,适配团体研学 +互动教学需求。 +#### 3. 6 座标准化环幕影院矩阵 +分区设置多规格环幕放映厅,循环播放延安精神纪录片、广东改革开 +放纪实、自贸区发展专题片、港澳青年家国主题短片。 +#### 4. 全国云端演播基地 +永久上线3D 云展馆,常态化开展云端党课、线上公益微课、粤港澳 +青年线上沙龙,打破地域限制。 +### 2.4 延安精神与国家级非遗太极融合传播区 +坚持延安精神与中华优秀传统文化双向融合,打造特色修身文化空间。 +#### 1. AI+太极教学空间 +配备骨骼动作捕捉、AI 动作矫正系统、虚拟太极数字大屏,面向党员 +干部、青少年、社区群众开设公益课程;将自力更生、坚韧不拔的延安奋 +斗精神融入太极教学。 +#### 2. 非遗太极主题系列活动 +定期举办大湾区非遗太极交流赛、党员修身研学营;联动港澳社团开 +展跨境太极交流,柔性拉近港澳青年情感距离。 +#### 3. 融合IP 开发 +开发“延安精神+太极”融合数字课程、短视频,纳入云端内容矩阵, +形成差异化特色IP。 +### 2.5 人工智能通识研学与数字创作实训空间 +依托北京邮电大学,聚焦AI 通识与数字创作。 +#### 1. AI 通识科普课堂 +面向中小学生、港澳青年开设人工智能、元宇宙、数字建模等通识课 +程。 +#### 2. 数字创作实训工坊 +配备专业数字创作设备,组织创作红色短视频、AI 党史绘画、虚拟党 +史宣讲脚本,优质原创数字作品同步上云展示。 +#### 3. 分层实训教室集群 +划分小型研讨室、中型阶梯教室、团体实训教室,支持粤港澳三地同 +步线上研讨交流。 +### 2.6 文献典藏、文创巡展综合配套区 +作为场馆基础配套支撑板块,布局二层模块化灵活配套空间,承载史 +料保存、廉政教育、文创开发、临时展览功能。 +#### 1. 党史文献典藏馆 +落地延安精神理论著作、华南革命史料、港澳国情教育文献,面向专 +家学者、思政教师、党员开放查阅,打造华南红色理论研究核心资料中心。 +配套恒温恒湿革命文物数字化库房,完成文物数字化采集、修复、归档全 +流程管理。 +#### 2. 廉政与党务实训展厅 +结合延安时期从严治党历史与新时代党风廉政建设典型案例开展警示 +教育;配套党务模拟实训空间,提供入党流程、组织生活、党务材料规范 +实操教学。 +#### 3. 红色文创与青少年手工工坊 +开发延安精神、东江纵队、大湾区、港澳家国主题文创产品;设立青 +少年红色泥塑、版画手作研学活动,轻量化、生活化传播红色文化。 +#### 4. 移动临时巡展厅 +采用模块化可移动展墙,承接全国红色巡展、地方党史专题展、港澳 +青年艺术展、时代楷模事迹展,提升场馆内容更新活力。 +#### 5. 多功能报告厅与读书空间 +设置党史读书会客厅,常态化开展红色读书会;配备大中型报告厅承 +办全国理论论坛、省级延安精神宣讲大会、年度主题教育集中轮训、红色 +师资长期研修班。 +## 三、13000 ㎡空间分区与专属参观动线 +一层平面图 + +二层平面图 +### 3.1 面积与功能分配(适配弧形中空建筑结构) +功能分区 +面积 +楼层位置 +核心承载业态 +序厅党员宣誓集散区 +1500 ㎡ +一层入口 +智能票务、AI 导览、千人宣誓大 +厅、人员前置分流 +延安精神主题主展馆 +4500 ㎡ +一二层连通 +革命文物常设展、历史叙事展区、 +湾区楷模展厅 +沉浸式研学体验区 +3500 ㎡ +一层高区核心 +VR 体验舱、AI 互动馆、环幕影院、 +云端演播中心 +党建研学教育培训区 +2000 ㎡ +二层独立分区 +师资研修教室、廉政实训、AI 通识 +课堂、报告厅 +文献典藏文创巡展区 +1000 ㎡ +二层边角配套 +党史图书馆、文创工坊、太极教 +学、临时巡展厅 +AI 运维保障后勤区 +500 ㎡ +一层附属后勤 +中控机房、安防消防、办公仓储、 +应急医疗点 +### 3.2 4 条独立闭环参观动线(错峰分流,互不交叉) +依托建筑多独立分区、中央中空通道布局,规划4 条互不交叉的独立 +闭环参观动线,适配不同群体学习需求,实现错峰高效运营: +1. 中小学研学专线:序厅→延安精神主题主展馆→AI 数字沉浸式体验 +区→二层AI 研学教室(专题授课+结业仪式+红色手工工坊+非遗太极体验 +区)。 +2. 党政党建培训专线:序厅→千人宣誓大厅→主题主展馆→二层多功 +能报告厅→廉政与党务模拟实训空间。 +3. 散客游览专线:序厅→精简主线展厅→二层文创。 +4. 专家教研专线:二层党史文献图书馆→小型专题研讨室→数字课程 +研发基地。 +## 四、运营管理核心原则 +### 4.2 AI 客流分区管控 +全面实行线上分时预约、分区分流、错峰授课数字化管理;全域部署 +AI 客流实时监控系统,设置人流超标自动限流;配套专职安保、应急医疗, +定期开展安全疏散演练。 +### 4.4 模块化动态迭代更新原则 +建立标准化年度展陈改版更新机制,线上数字内容按月更新;空间采 +用标准化模块化展陈、可移动隔断设计,可快速适配重大主题宣传、临时 +专题巡展、新兴研学业态拓展需求,有效延长场馆全生命周期,持续保持 +内容时代性与新鲜感。 +## 五、港澳青年国情教育专项体系(湾区特色板块) +依托毗邻港澳独特区位优势,打造面向港澳青年的国情教育平台: +#### 1. 全场景双域数字化适配 +全域配置中英双语AI 宣讲、双语史料库、轻量化沉浸式红色体验课 +程,简化理论表述、适配港澳青年认知习惯。 +#### 2. 跨境研学专属闭环线路 +联动港澳爱国社团、院校定制研学行程,配套双语专人接待、跨境交 +通协调、轻量化定制数字体验课程。 +#### 3. 常态化粤港澳青年交流品牌活动 +定期举办延安精神交流论坛、AI+创作大赛、非遗太极跨境交流营; +搭建线上常态化交流平台,促进粤港澳青年文化交融、思想认同,持续厚 +植家国情怀。 +## 六、项目实施计划 +### 6.1 前期筹备阶段(第1-8 个月) +1. 签订多方合作协议,落实资源、政策、资金条款; +2. 场地勘测、建筑结构、消防荷载评估,完成全空间功能、机电、文 +物库房专项设计; +3. 党史内容编审、AI 数字脚本研发、展陈方案专家评审、专项资金申 +报、港澳渠道前期对接。 +### 6.2 场地改造与设备进场阶段(第9-20 个月) +1. 一层高区结构加固、VR / 环幕基建;二层展厅、教室、库房、太极 +空间装修,同步完成恒温恒湿、消防专项工程; + +2. AI 大模型、XR 体感、全域监控、双语导览全套软硬件采购、安装、 +联调; +3. 革命文物数字化修复、实物馆藏运输入库、党史图书馆文献征集、 +太极数字课程开发。 +### 6.3 试运营与内容迭代阶段(第21-26 个月) +1. 党政单位封闭内测,优化党性培训流程、史实内容; +2. 中小学研学专场测试,迭代分龄课程、数字互动体验; +3. 港澳青年专场优化双语系统、跨境研学配套; +同步完成:首期红色师资研修班开班、3D 云展馆上线、港澳预约通 +道开通;申报国家级/ 省级研学基地、红色文化专项资金,完成XXX 示 +范基地授牌。 +### 6.4 正式运营阶段(第27-48 个月) +1. 全业态对外开放:党政培训、校园研学、散客参观、港澳跨境研学、 +论坛会务、师资研修; +2. 每年更新数字内容、增设临时专题巡展,持续举办粤港澳青年交流 +活动; +3. 对外输出标准化红色场馆解决方案,开展技术输出、数字课程定制、 +全国师资共建,延伸红色产业。 +### 6.5 中长期迭代升级阶段(第49 个月及以后) +每3 年组织一次场馆整体展陈改版升级;持续拓展延安精神数字IP +开发、全国研学联盟运营、跨境文化交流,不断丰富业态,实现项目长期 +可持续发展。 +## 八、项目战略价值与时代意义 +#### 1. 行业创新样板价值:全国首个AI 深度融合延安精神学习展示标杆 +工程,打破传统展馆单向宣讲模式,形成可全国复制的红色思政数字化转 +型标准范式。 +#### 2. 大湾区区位战略价值:填补XXX 乃至大湾区延安精神专属教育阵 +地空白,联动港澳打造对外开放前沿国情交流窗口,服务粤港澳融合发展。 +#### 3. 多业态融合产业价值:整合党史理论、党性培训、校园思政、数字 +科创、中华非遗五大业态,构建国内政产学研培一体化发展生态圈。 +#### 4. 全国示范辐射价值:依托XXX 统筹指导,建成大湾区延安精神宣 +传、研学、师资培训核心枢纽,为延安精神传承提供落地范本。 +#### 5. 港澳统战育人价值:以轻量化、双语化、数字化研学降低港澳青年 +认知门槛,持续强化国家认同、民族认同,助力“一国两制” 行稳致远。 +## 九、全维度风控保障机制 +#### 1. 政治合规风控:建立史料溯源、分级审核、年度内容巡检制度,严 +守史实底线与宣传政治标准。 +#### 2. 客流安全运营风控:政企校合作锁定稳定客源;AI 预约限流、分 +线参观杜绝拥堵;常态化消防、人流疏散应急演练。 +#### 3. 可持续经营风控:双轨收益模式降低单一收入依赖;模块化空间适 +配政策主题动态调整;拓展IP 授权、技术输出长效增收业务对冲客流波 + +动。 +#### 4. 场地运维风控:依托文化体育中心成熟标准化物业;申请XXX 5 +年及以上场地租金全免政策,长期压缩场地固定成本。 +## 十、项目所需配套与支持 +### 10.1 政策支持 +1.将本中心定为全省党政机关、企事业单位、大中小学延安精神必修 +定点阵地,统筹全省党建、研学资源定向导入; +2.开通专项资金申报绿色通道,优先申报红色文化、思政教育、数字 +文旅、文物保护各级扶持资金。 +### 10.2 属地场地与资金配套 +1.给予7# 配套楼5 年及以上全额租金减免,配套场地改造、物业、 +能耗专项补贴; +2.纳入大湾区重点文化标杆工程,拨付属地专项发展资金。 +### 10.3 属地交通、治安保障配套 +1.交通配套:交通局优化沿线公交、潮汐车道,划定临时停车区、配 +置摆渡接驳车,大型活动制定专项疏导方案; +2.治安安保配套:区公安统筹交警、派出所、专业安保定点值守、全 +域巡逻;落实1/3/5 分钟快速出警机制,联动街道、志愿者现场引导,完 +善人流踩踏、极端天气、突发纠纷全套应急预案。 diff --git a/V1.0.pdf b/V1.0.pdf new file mode 100644 index 0000000..314b5c8 Binary files /dev/null and b/V1.0.pdf differ diff --git a/build_professional_docx.py b/build_professional_docx.py new file mode 100644 index 0000000..4d064f0 --- /dev/null +++ b/build_professional_docx.py @@ -0,0 +1,180 @@ +from pathlib import Path +import re, os +from docx import Document +from docx.shared import Inches, Pt, RGBColor +from docx.enum.text import WD_ALIGN_PARAGRAPH +from docx.enum.section import WD_SECTION_START +from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT +from docx.oxml import OxmlElement +from docx.oxml.ns import qn +from PIL import Image, ImageDraw, ImageFont + +ROOT=Path(__file__).parent +SRC=ROOT/'终极目标导向创新升级方案.md' +OUT=ROOT/'延安精神(大湾区)学习展示中心—终极目标导向创新升级方案.docx' +AS=ROOT/'docx_assets'; AS.mkdir(exist_ok=True) +RED='9E1B1B'; DARK='4A0F12'; GOLD='C59B53'; INK='252525'; MUTED='666666'; PALE='F7F2EC'; GRID='D8CCC0' + +def shade(cell, fill): + pr=cell._tc.get_or_add_tcPr(); x=pr.find(qn('w:shd')) + if x is None: x=OxmlElement('w:shd'); pr.append(x) + x.set(qn('w:fill'),fill) +def margins(cell,t=90,b=90,s=120,e=120): + pr=cell._tc.get_or_add_tcPr(); tc=pr.first_child_found_in('w:tcMar') + if tc is None: tc=OxmlElement('w:tcMar'); pr.append(tc) + for k,v in [('top',t),('bottom',b),('start',s),('end',e)]: + n=tc.find(qn('w:'+k)) + if n is None: n=OxmlElement('w:'+k); tc.append(n) + n.set(qn('w:w'),str(v)); n.set(qn('w:type'),'dxa') +def set_repeat(row): + trPr=row._tr.get_or_add_trPr(); e=OxmlElement('w:tblHeader'); e.set(qn('w:val'),'true'); trPr.append(e) +def cant_split(row): + trPr=row._tr.get_or_add_trPr(); trPr.append(OxmlElement('w:cantSplit')) +def set_cell_width(cell,dxa): + tcPr=cell._tc.get_or_add_tcPr(); tcW=tcPr.find(qn('w:tcW')) + if tcW is None: tcW=OxmlElement('w:tcW'); tcPr.append(tcW) + tcW.set(qn('w:w'),str(dxa)); tcW.set(qn('w:type'),'dxa') +def font(run,name='Arial Unicode MS',size=None,bold=None,color=None): + run.font.name=name + rf=run._element.get_or_add_rPr().rFonts + for key in ('ascii','hAnsi','eastAsia','cs'): rf.set(qn('w:'+key),name) + if size: run.font.size=Pt(size) + if bold is not None: run.bold=bold + if color: run.font.color.rgb=RGBColor.from_string(color) +def keep(p,next_=False): + pr=p._p.get_or_add_pPr(); pr.append(OxmlElement('w:keepNext' if next_ else 'w:keepLines')) +def add_runs(p,text,base_size=10.5,color=INK): + parts=re.split(r'(\*\*.*?\*\*)',text) + for x in parts: + if not x: continue + bold=x.startswith('**') and x.endswith('**'); val=x[2:-2] if bold else x + r=p.add_run(val); font(r,size=base_size,bold=bold,color=(RED if bold else color)) +def border_bottom(p,color=GOLD,size='16'): + pPr=p._p.get_or_add_pPr(); pbdr=OxmlElement('w:pBdr'); b=OxmlElement('w:bottom') + for k,v in [('val','single'),('sz',size),('space','5'),('color',color)]: b.set(qn('w:'+k),v) + pbdr.append(b); pPr.append(pbdr) + +def diagram(lines,idx): + items=[] + raw='\n'.join(lines).strip() + if ':' in raw and '→' in raw and '\n' in raw: + for ln in lines: + if ':' in ln: items.append((ln.split(':',1)[0], [x.strip() for x in ln.split(':',1)[1].split('→')])) + else: + toks=[x.strip() for x in re.split(r'→|↓|\n\s*\+\s*|\n',raw) if x.strip() and x.strip()!='+'] + items=[('',toks)] + W=1400; pad=70; boxh=74; gap=30; titleh=38 + H=pad*2+sum((titleh if a else 0)+len(b)*(boxh+gap) for a,b in items) + im=Image.new('RGB',(W,H),'white'); d=ImageDraw.Draw(im) + candidates=['/System/Library/Fonts/PingFang.ttc','/System/Library/Fonts/STHeiti Light.ttc'] + fp=next((x for x in candidates if os.path.exists(x)),None) + f=ImageFont.truetype(fp,28) if fp else ImageFont.load_default(); fs=ImageFont.truetype(fp,24) if fp else f + y=pad + for label,seq in items: + if label: d.text((pad,y),label,fill='#9E1B1B',font=f); y+=titleh + n=len(seq); bw=min(1120,max(400,1000)); x=(W-bw)//2 + for j,t in enumerate(seq): + fill='#9E1B1B' if j==0 else ('#4A0F12' if j==n-1 else '#F7F2EC') + tc='white' if j in (0,n-1) else '#252525' + d.rounded_rectangle((x,y,x+bw,y+boxh),radius=16,fill=fill,outline='#C59B53',width=3) + bb=d.textbbox((0,0),t,font=fs); d.text((W/2-(bb[2]-bb[0])/2,y+(boxh-(bb[3]-bb[1]))/2-3),t,fill=tc,font=fs) + if j'): + vals=[] + while i'): vals.append(lines[i].lstrip('> ').strip()); i+=1 + t=doc.add_table(rows=1,cols=1); t.alignment=WD_TABLE_ALIGNMENT.LEFT; t.autofit=False; set_cell_width(t.cell(0,0),9360); margins(t.cell(0,0),170,170,220,220); shade(t.cell(0,0),PALE) + p=t.cell(0,0).paragraphs[0]; p.paragraph_format.space_after=Pt(0); p.paragraph_format.line_spacing=1.3; add_runs(p,' '.join(vals),11,DARK) + for r in p.runs: r.bold=True + continue + lm=re.match(r'^\s*(-|\d+\.)\s+(.*)',ln) + if lm: + style='List Bullet' if lm.group(1)=='-' else 'List Number'; p=doc.add_paragraph(style=style); add_runs(p,lm.group(2)); p.paragraph_format.left_indent=Inches(.28); p.paragraph_format.first_line_indent=Inches(-.18); p.paragraph_format.space_after=Pt(3); i+=1; continue + p=doc.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.JUSTIFY; add_runs(p,ln); keep(p); i+=1 + +# header/footer +for s in doc.sections: + hp=s.header.paragraphs[0]; hp.alignment=WD_ALIGN_PARAGRAPH.RIGHT; r=hp.add_run('延安精神(大湾区)学习展示中心 · 创新升级方案'); font(r,size=8.5,color=MUTED); border_bottom(hp,GRID,'6') + fp=s.footer.paragraphs[0]; fp.alignment=WD_ALIGN_PARAGRAPH.CENTER + r=fp.add_run('— '); font(r,size=8,color=MUTED) + fld=OxmlElement('w:fldSimple'); fld.set(qn('w:instr'),'PAGE'); fp._p.append(fld) + r=fp.add_run(' —'); font(r,size=8,color=MUTED) + +# cover no header +doc.sections[0].different_first_page_header_footer=True +doc.core_properties.title='延安精神(大湾区)学习展示中心—终极目标导向创新升级方案' +doc.core_properties.subject='专业创新升级方案' +doc.save(OUT) +print(OUT) diff --git a/build_technical_docx.py b/build_technical_docx.py new file mode 100644 index 0000000..16d0a4c --- /dev/null +++ b/build_technical_docx.py @@ -0,0 +1,238 @@ +from pathlib import Path +import re, os, subprocess, html +from docx import Document +from docx.shared import Inches, Pt, RGBColor +from docx.enum.text import WD_ALIGN_PARAGRAPH +from docx.enum.section import WD_SECTION_START +from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT +from docx.oxml import OxmlElement +from docx.oxml.ns import qn +from PIL import Image, ImageDraw, ImageFont + +ROOT=Path(__file__).parent +SRC=ROOT/'用户交流技术实现方案.md' +OUT=ROOT/'延安精神(大湾区)学习展示中心—技术实现方案.docx' +AS=ROOT/'docx_assets'; AS.mkdir(exist_ok=True) +RED='9E1B1B'; DARK='4A0F12'; GOLD='C59B53'; INK='252525'; MUTED='666666'; PALE='F7F2EC'; GRID='D8CCC0' + +def shade(cell, fill): + pr=cell._tc.get_or_add_tcPr(); x=pr.find(qn('w:shd')) + if x is None: x=OxmlElement('w:shd'); pr.append(x) + x.set(qn('w:fill'),fill) +def margins(cell,t=90,b=90,s=120,e=120): + pr=cell._tc.get_or_add_tcPr(); tc=pr.first_child_found_in('w:tcMar') + if tc is None: tc=OxmlElement('w:tcMar'); pr.append(tc) + for k,v in [('top',t),('bottom',b),('start',s),('end',e)]: + n=tc.find(qn('w:'+k)) + if n is None: n=OxmlElement('w:'+k); tc.append(n) + n.set(qn('w:w'),str(v)); n.set(qn('w:type'),'dxa') +def set_repeat(row): + trPr=row._tr.get_or_add_trPr(); e=OxmlElement('w:tblHeader'); e.set(qn('w:val'),'true'); trPr.append(e) +def cant_split(row): + trPr=row._tr.get_or_add_trPr(); trPr.append(OxmlElement('w:cantSplit')) +def set_cell_width(cell,dxa): + tcPr=cell._tc.get_or_add_tcPr(); tcW=tcPr.find(qn('w:tcW')) + if tcW is None: tcW=OxmlElement('w:tcW'); tcPr.append(tcW) + tcW.set(qn('w:w'),str(dxa)); tcW.set(qn('w:type'),'dxa') +def font(run,name='Arial Unicode MS',size=None,bold=None,color=None): + run.font.name=name + rf=run._element.get_or_add_rPr().rFonts + for key in ('ascii','hAnsi','eastAsia','cs'): rf.set(qn('w:'+key),name) + if size: run.font.size=Pt(size) + if bold is not None: run.bold=bold + if color: run.font.color.rgb=RGBColor.from_string(color) +def keep(p,next_=False): + pr=p._p.get_or_add_pPr(); pr.append(OxmlElement('w:keepNext' if next_ else 'w:keepLines')) +def add_runs(p,text,base_size=10.5,color=INK): + parts=re.split(r'(\*\*.*?\*\*)',text) + for x in parts: + if not x: continue + bold=x.startswith('**') and x.endswith('**'); val=x[2:-2] if bold else x + r=p.add_run(val); font(r,size=base_size,bold=bold,color=(RED if bold else color)) +def border_bottom(p,color=GOLD,size='16'): + pPr=p._p.get_or_add_pPr(); pbdr=OxmlElement('w:pBdr'); b=OxmlElement('w:bottom') + for k,v in [('val','single'),('sz',size),('space','5'),('color',color)]: b.set(qn('w:'+k),v) + pbdr.append(b); pPr.append(pbdr) + +def diagram(lines,idx): + items=[] + raw='\n'.join(lines).strip() + if any(ch in raw for ch in '┌┐└┘├┤│─'): + clean=[x.rstrip() for x in lines] + maxw=max((len(x) for x in clean),default=40) + W=min(1900,max(1100,maxw*21+140)); H=max(300,len(clean)*34+120) + title=next((re.sub(r'[┌┐─│├┤└┘]','',x).strip() for x in clean if re.sub(r'[┌┐─│├┤└┘]','',x).strip()),'系统架构图') + texts=[] + for n,line in enumerate(clean): + texts.append(f'{html.escape(line)}') + svg=f''' + + + + {html.escape(title[:36])} + + + {''.join(texts)}''' + sp=AS/f'diagram_{idx}.svg'; pp=AS/f'diagram_{idx}.png'; path=AS/f'diagram_{idx}.jpg' + sp.write_text(svg,encoding='utf-8') + subprocess.run(['rsvg-convert','-w',str(W*2),'-h',str(H*2),'-o',str(pp),str(sp)],check=True) + subprocess.run(['convert',str(pp),'-quality','94',str(path)],check=True) + return path + if ':' in raw and '→' in raw and '\n' in raw: + for ln in lines: + if ':' in ln: items.append((ln.split(':',1)[0], [x.strip() for x in ln.split(':',1)[1].split('→')])) + else: + toks=[x.strip() for x in re.split(r'→|↓|\n\s*\+\s*|\n',raw) if x.strip() and x.strip()!='+'] + items=[('',toks)] + W=1400; pad=70; boxh=74; gap=30; titleh=38 + H=pad*2+sum((titleh if a else 0)+len(b)*(boxh+gap) for a,b in items) + y=pad; nodes=[]; arrows=[] + for label,seq in items: + if label: nodes.append(f'{html.escape(label)}'); y+=titleh + n=len(seq); bw=min(1120,max(400,1000)); x=(W-bw)//2 + for j,t in enumerate(seq): + fill='#9E1B1B' if j==0 else ('#4A0F12' if j==n-1 else '#F7F2EC') + tc='white' if j in (0,n-1) else '#252525' + nodes.append(f'{html.escape(t)}') + if j') + y+=boxh+gap + svg=f'''{''.join(arrows)}{''.join(nodes)}''' + sp=AS/f'diagram_{idx}.svg'; pp=AS/f'diagram_{idx}.png'; path=AS/f'diagram_{idx}.jpg'; sp.write_text(svg,encoding='utf-8') + subprocess.run(['rsvg-convert','-w',str(W*2),'-h',str(H*2),'-o',str(pp),str(sp)],check=True) + subprocess.run(['convert',str(pp),'-quality','94',str(path)],check=True) + return path + +def diagram2(lines,idx): + raw='\n'.join(lines).strip() + def clean(s): + s=re.sub(r'[┌┐└┘├┤┬┴┼│─╭╮╰╯]', ' ', s) + return re.sub(r'\s+', ' ', s).strip(' -+→↓') + rows=[] + for ln in lines: + if not ln.strip(): continue + s=clean(ln) + if not s: continue + parts=[clean(x) for x in re.split(r'\s{2,}|\s*\|\s*|\s*→\s*|\s*↓\s*',s) if clean(x)] + if parts: rows.append(parts) + if not rows: rows=[['技术架构']] + is_flow=('→' in raw or '↓' in raw) and len(rows)>=3 + if not is_flow and len(rows)>6: + merged=[]; k=0 + while k=1 and len(rows[k][0])<=18: + merged.append([rows[k][0]+'|'+'|'.join(rows[k+1])]); k+=2 + else: + merged.append(rows[k]); k+=1 + rows=merged + if is_flow: rows=[[x] for row in rows for x in row if x not in ('+','-')] + title=next((x for row in rows for x in row if len(x)>2), '技术架构') + W=1500; margin=70; card_h=86; gap=28; maxcols=max(len(r) for r in rows) + col_w=(W-2*margin-(maxcols-1)*24)//maxcols; H=112+len(rows)*(card_h+gap) + def wrap(t,n=18): return [t[i:i+n] for i in range(0,len(t),n)] or [''] + out=[f'', '', '', f'{html.escape(title[:32])}', ''] + y=94 + for ri,row in enumerate(rows): + if ri>0: out.append(f'') + for ci,t in enumerate(row): + x=margin+ci*(col_w+24); fill='#F2E6D4' if ri%2==0 else '#FFFFFF' + out.append(f'') + for k,tx in enumerate(wrap(t,max(12,int(col_w/19)))[:3]): out.append(f'{html.escape(tx)}') + y+=card_h+gap + out.append(''); sp=AS/f'diagram_{idx}.svg'; pp=AS/f'diagram_{idx}.png'; path=AS/f'diagram_{idx}.jpg'; sp.write_text(''.join(out),encoding='utf-8') + subprocess.run(['rsvg-convert','-w',str(W*2),'-h',str(H*2),'-o',str(pp),str(sp)],check=True); subprocess.run(['convert',str(pp),'-quality','94',str(path)],check=True); return path + +doc=Document(); sec=doc.sections[0] +sec.page_width=Inches(8.27); sec.page_height=Inches(11.69) +sec.top_margin=Inches(.78); sec.bottom_margin=Inches(.72); sec.left_margin=Inches(.85); sec.right_margin=Inches(.75) +sec.header_distance=Inches(.35); sec.footer_distance=Inches(.35) +styles=doc.styles +normal=styles['Normal']; normal.font.name='Arial Unicode MS'; normal._element.rPr.rFonts.set(qn('w:eastAsia'),'Arial Unicode MS'); normal.font.size=Pt(10.5) +normal.paragraph_format.space_after=Pt(6); normal.paragraph_format.line_spacing=1.35 +for nm,sz,col,bef,aft in [('Title',25,DARK,0,14),('Heading 1',17,RED,18,9),('Heading 2',13.5,DARK,13,6),('Heading 3',11.5,RED,9,4),('Heading 4',10.5,DARK,7,3)]: + s=styles[nm]; s.font.name='Arial Unicode MS'; s._element.rPr.rFonts.set(qn('w:eastAsia'),'Arial Unicode MS'); s.font.size=Pt(sz); s.font.bold=True; s.font.color.rgb=RGBColor.from_string(col) + s.paragraph_format.space_before=Pt(bef); s.paragraph_format.space_after=Pt(aft); s.paragraph_format.keep_with_next=True + +# Cover +p=doc.add_paragraph(); p.paragraph_format.space_before=Pt(72); p.alignment=WD_ALIGN_PARAGRAPH.CENTER +r=p.add_run('延安精神(大湾区)\n学习展示中心'); font(r,size=29,bold=True,color=DARK) +p=doc.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.CENTER; border_bottom(p,GOLD,'22') +r=p.add_run('技术实现方案'); font(r,size=23,bold=True,color=RED) +p.paragraph_format.space_before=Pt(22); p.paragraph_format.space_after=Pt(22) +p=doc.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.CENTER +r=p.add_run('业务旅程 · AI能力 · 平台架构 · VR/XR · 安全与实施'); font(r,size=12,color=MUTED) +p=doc.add_paragraph(); p.paragraph_format.space_before=Pt(155); p.alignment=WD_ALIGN_PARAGRAPH.CENTER +r=p.add_run('专业方案文本 · 2026年7月'); font(r,size=10.5,color=MUTED) +doc.add_page_break() + +# contents +p=doc.add_paragraph('目录',style='Heading 1'); border_bottom(p) +for n,t in [('一','系统总体架构'),('二','AI可信知识引擎'),('三','三引擎技术架构'),('四','八个旗舰产品技术架构与场景'),('五','VR/XR沉浸体验技术架构'),('六','公共平台技术架构'),('七','安全与隐私保护'),('八','最小可行原型'),('九','技术风险与应对'),('十','技术团队与外部协作'),('十一','总结')]: + p=doc.add_paragraph(); p.paragraph_format.space_after=Pt(5); r=p.add_run(f'{n} {t}'); font(r,size=11,bold=True if n in ('一','三','八') else False,color=DARK) +doc.add_page_break() + +lines=SRC.read_text(encoding='utf-8').splitlines(); i=0; dnum=0; first_title=True +while i'): + vals=[] + while i'): vals.append(lines[i].lstrip('> ').strip()); i+=1 + t=doc.add_table(rows=1,cols=1); t.alignment=WD_TABLE_ALIGNMENT.LEFT; t.autofit=False; set_cell_width(t.cell(0,0),9360); margins(t.cell(0,0),170,170,220,220); shade(t.cell(0,0),PALE) + p=t.cell(0,0).paragraphs[0]; p.paragraph_format.space_after=Pt(0); p.paragraph_format.line_spacing=1.3; add_runs(p,' '.join(vals),11,DARK) + for r in p.runs: r.bold=True + continue + lm=re.match(r'^\s*(-|\d+\.)\s+(.*)',ln) + if lm: + style='List Bullet' if lm.group(1)=='-' else 'List Number'; p=doc.add_paragraph(style=style); add_runs(p,lm.group(2)); p.paragraph_format.left_indent=Inches(.28); p.paragraph_format.first_line_indent=Inches(-.18); p.paragraph_format.space_after=Pt(3); i+=1; continue + p=doc.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.JUSTIFY; add_runs(p,ln); keep(p); i+=1 + +# header/footer +for s in doc.sections: + hp=s.header.paragraphs[0]; hp.alignment=WD_ALIGN_PARAGRAPH.RIGHT; r=hp.add_run('延安精神(大湾区)学习展示中心 · 创新升级方案'); font(r,size=8.5,color=MUTED); border_bottom(hp,GRID,'6') + fp=s.footer.paragraphs[0]; fp.alignment=WD_ALIGN_PARAGRAPH.CENTER + r=fp.add_run('— '); font(r,size=8,color=MUTED) + fld=OxmlElement('w:fldSimple'); fld.set(qn('w:instr'),'PAGE'); fp._p.append(fld) + r=fp.add_run(' —'); font(r,size=8,color=MUTED) + +# cover no header +doc.sections[0].different_first_page_header_footer=True +doc.core_properties.title='延安精神(大湾区)学习展示中心—技术实现方案' +doc.core_properties.subject='专业技术实现方案' +doc.save(OUT) +print(OUT) diff --git a/docx_assets/diagram_1.jpg b/docx_assets/diagram_1.jpg new file mode 100644 index 0000000..84718bb Binary files /dev/null and b/docx_assets/diagram_1.jpg differ diff --git a/docx_assets/diagram_1.png b/docx_assets/diagram_1.png new file mode 100644 index 0000000..dc11390 Binary files /dev/null and b/docx_assets/diagram_1.png differ diff --git a/docx_assets/diagram_1.svg b/docx_assets/diagram_1.svg new file mode 100644 index 0000000..48a770e --- /dev/null +++ b/docx_assets/diagram_1.svg @@ -0,0 +1 @@ +用户触达层|线下终端(触屏/VR/环幕/UWB/RFID) 线上用户触达层|线下终端(触屏/VR/环幕/UWB/RFID) 线上(Web/小程序/H5) 节点终端应用服务层|F1自适应叙事 F2情境任务 F3文物数字生命 F4成长护照F5云上共同体 F6青年共创 F7行动实验室 F8星火节点OS公共平台层|X1体验编排引擎 X2成长护照档案 X3内容治理中心 S9节点协同AI能力层|可信叙事引擎 学习成长引擎 编审助手引擎 策展助手引擎数据资产层|知识图谱 向量检索库 内容资源仓 业务数据库时序分析库 实时缓存 消息总线|基础设施层私有云容器编排 GPU推理集群 5G专网 IoT网关 CDN 安防网络 \ No newline at end of file diff --git a/docx_assets/diagram_10.jpg b/docx_assets/diagram_10.jpg new file mode 100644 index 0000000..e723bdf Binary files /dev/null and b/docx_assets/diagram_10.jpg differ diff --git a/docx_assets/diagram_10.png b/docx_assets/diagram_10.png new file mode 100644 index 0000000..402c663 Binary files /dev/null and b/docx_assets/diagram_10.png differ diff --git a/docx_assets/diagram_10.svg b/docx_assets/diagram_10.svg new file mode 100644 index 0000000..0be0e8d --- /dev/null +++ b/docx_assets/diagram_10.svg @@ -0,0 +1 @@ +F2 情境任务剧场系统|任务引擎 团队协作终端 AI复盘引擎F2 情境任务剧场系统|任务引擎 团队协作终端 AI复盘引擎(剧本+状态机) (多屏互动) (学习教练API)任务定义: 协作方式: 复盘内容:|历史问题 - 主屏: 情境展示 - 团队方案 vs 历史角色分配 - 分屏: 证据查看 - AI追问(史料引用)资源约束 - 个人终端: 决策 - 证据使用分析证据集 - 团队屏: 方案汇总 - 现实连接问题历史事实|评价维度 \ No newline at end of file diff --git a/docx_assets/diagram_11.jpg b/docx_assets/diagram_11.jpg new file mode 100644 index 0000000..e33c019 Binary files /dev/null and b/docx_assets/diagram_11.jpg differ diff --git a/docx_assets/diagram_11.png b/docx_assets/diagram_11.png new file mode 100644 index 0000000..b4b4633 Binary files /dev/null and b/docx_assets/diagram_11.png differ diff --git a/docx_assets/diagram_11.svg b/docx_assets/diagram_11.svg new file mode 100644 index 0000000..4906d47 --- /dev/null +++ b/docx_assets/diagram_11.svg @@ -0,0 +1 @@ +F3 文物数字生命系统F3 文物数字生命系统数字采集管理 五层内容管理 关系星图引擎3D扫描: 五层结构: 可视化:激光扫描任务 L1看见: 图像/3D - 力导向图渲染摄影测量任务 L2知道: 元数据 - 交互式星图质量检测 L3理解: 关联网络 - 时间轴元数据录入 L4研究: 档案 - 点击节点展开L5连接: 课程/任务数字修复工作台 展示终端 组件生成器(3D建模工具) (扫码星图) (一物一课/短片) \ No newline at end of file diff --git a/docx_assets/diagram_12.jpg b/docx_assets/diagram_12.jpg new file mode 100644 index 0000000..8cc8f1b Binary files /dev/null and b/docx_assets/diagram_12.jpg differ diff --git a/docx_assets/diagram_12.png b/docx_assets/diagram_12.png new file mode 100644 index 0000000..c1aefc6 Binary files /dev/null and b/docx_assets/diagram_12.png differ diff --git a/docx_assets/diagram_12.svg b/docx_assets/diagram_12.svg new file mode 100644 index 0000000..b1f9906 --- /dev/null +++ b/docx_assets/diagram_12.svg @@ -0,0 +1 @@ +展柜前扫描二维码展柜前扫描二维码手机加载文物星图H5默认显示L1:3D模型 + 基本信息上滑L2:元数据卡片点击星图节点L3:关联网络可视化点击"深度研究"L4:档案文献点击"相关课程"L5:课程推荐点击"做一做"跳转到F7行动选择 \ No newline at end of file diff --git a/docx_assets/diagram_13.jpg b/docx_assets/diagram_13.jpg new file mode 100644 index 0000000..004e266 Binary files /dev/null and b/docx_assets/diagram_13.jpg differ diff --git a/docx_assets/diagram_13.png b/docx_assets/diagram_13.png new file mode 100644 index 0000000..5b225ca Binary files /dev/null and b/docx_assets/diagram_13.png differ diff --git a/docx_assets/diagram_13.svg b/docx_assets/diagram_13.svg new file mode 100644 index 0000000..6a214fc --- /dev/null +++ b/docx_assets/diagram_13.svg @@ -0,0 +1 @@ +F4 成长护照系统F4 成长护照系统参观前导学 参观中记录 离馆后回访(小程序/H5) (终端+UWB+RFID) (定时推送+反馈)人群选择 - 文物查看记录 - 第7天推送回顾问题选择 - 任务完成记录 - 第30天进展反馈团队目标创建 - AI问答记录 - 第90天成果提交参观建议生成 - 理解表达记录 - 后续课程推荐导学材料推送 - 行动选择记录 - 临展/活动提醒X2 统一成长档案跨系统数据同步GraphQL统一查询 \ No newline at end of file diff --git a/docx_assets/diagram_14.jpg b/docx_assets/diagram_14.jpg new file mode 100644 index 0000000..af919a1 Binary files /dev/null and b/docx_assets/diagram_14.jpg differ diff --git a/docx_assets/diagram_14.png b/docx_assets/diagram_14.png new file mode 100644 index 0000000..9604ce1 Binary files /dev/null and b/docx_assets/diagram_14.png differ diff --git a/docx_assets/diagram_14.svg b/docx_assets/diagram_14.svg new file mode 100644 index 0000000..f5c8e01 --- /dev/null +++ b/docx_assets/diagram_14.svg @@ -0,0 +1 @@ +F5 云上学习共同体|Web3D云展馆 云端课程平台 协作任务平F5 云上学习共同体|Web3D云展馆 云端课程平台 协作任务平台3D渲染引擎 视频点播/直播 实时音视频协作虚拟漫游 课程管理 多人同堂任务|AI导览 学时记录 粤港澳三地同步文物3D展示 证书发放 在线研讨室|8分钟精华模式 一节课模式 协作任务模式(轻量H5) (视频+互动) (实时协作+白板)深度研究模式 同步在场模式|(文献检索+图谱) (直播+弹幕+连麦) \ No newline at end of file diff --git a/docx_assets/diagram_15.jpg b/docx_assets/diagram_15.jpg new file mode 100644 index 0000000..afecddd Binary files /dev/null and b/docx_assets/diagram_15.jpg differ diff --git a/docx_assets/diagram_15.png b/docx_assets/diagram_15.png new file mode 100644 index 0000000..ced0c02 Binary files /dev/null and b/docx_assets/diagram_15.png differ diff --git a/docx_assets/diagram_15.svg b/docx_assets/diagram_15.svg new file mode 100644 index 0000000..9e42ef1 --- /dev/null +++ b/docx_assets/diagram_15.svg @@ -0,0 +1 @@ +F6 湾区青年共创平台|共创项目管理 AI辅助创作工具集 三级审F6 湾区青年共创平台|共创项目管理 AI辅助创作工具集 三级审核与展示年度主题发布 - AI辅助写作 - AI编审自动检查混合小组组建 - AI辅助绘画 - 编辑复审(人工)专家工作坊预约 - 短视频编辑 - 专家终审进度跟踪 - 声音档案录制 - 线上专区展示资源库访问 - 互动网页制作 - 优秀作品入临展 \ No newline at end of file diff --git a/docx_assets/diagram_16.jpg b/docx_assets/diagram_16.jpg new file mode 100644 index 0000000..080f559 Binary files /dev/null and b/docx_assets/diagram_16.jpg differ diff --git a/docx_assets/diagram_16.png b/docx_assets/diagram_16.png new file mode 100644 index 0000000..484f06c Binary files /dev/null and b/docx_assets/diagram_16.png differ diff --git a/docx_assets/diagram_16.svg b/docx_assets/diagram_16.svg new file mode 100644 index 0000000..a1cff57 --- /dev/null +++ b/docx_assets/diagram_16.svg @@ -0,0 +1 @@ +F7 现实行动实验室|行动选择终端 行动跟踪系统 成果回流系统F7 现实行动实验室|行动选择终端 行动跟踪系统 成果回流系统行动方向展示 - 行动卡片生成 - 成果提交入口智能推荐 - 7/30/90天跟踪 - 成果墙展示行动模板选择 - 进展提醒推送 - 课程案例转化自定义行动 - 反馈表单 - 年度优秀评选团队行动创建 \ No newline at end of file diff --git a/docx_assets/diagram_17.jpg b/docx_assets/diagram_17.jpg new file mode 100644 index 0000000..d338903 Binary files /dev/null and b/docx_assets/diagram_17.jpg differ diff --git a/docx_assets/diagram_17.png b/docx_assets/diagram_17.png new file mode 100644 index 0000000..4ef04c1 Binary files /dev/null and b/docx_assets/diagram_17.png differ diff --git a/docx_assets/diagram_17.svg b/docx_assets/diagram_17.svg new file mode 100644 index 0000000..3e42156 --- /dev/null +++ b/docx_assets/diagram_17.svg @@ -0,0 +1 @@ +F8 星火节点网络|L4 旗舰中心 (13000㎡)F8 星火节点网络|L4 旗舰中心 (13000㎡)完整私有云 + GPU推理集群|完整知识图谱 + 向量库 + 内容仓全国节点调度中心|权威内容生产与发布L3 城市节点 (院校/区县基地)|本地服务器 + 完整展陈系统本地知识图谱子集 + 向量库子集|独立运营 + 数据上报云端连线能力|L2 标准节点 (高校/企事业单位)触屏终端 + 边缘AI推理 + VR设备本地内容缓存 + 云端AI增强|成长护照接入7天标准化部署|L1 微节点 (一体机)一块触屏交互一体机|离线内容包 + AI问答轻量版定期WiFi/4G同步更新 \ No newline at end of file diff --git a/docx_assets/diagram_18.jpg b/docx_assets/diagram_18.jpg new file mode 100644 index 0000000..463b324 Binary files /dev/null and b/docx_assets/diagram_18.jpg differ diff --git a/docx_assets/diagram_18.png b/docx_assets/diagram_18.png new file mode 100644 index 0000000..49c9f55 Binary files /dev/null and b/docx_assets/diagram_18.png differ diff --git a/docx_assets/diagram_18.svg b/docx_assets/diagram_18.svg new file mode 100644 index 0000000..e3fdf65 --- /dev/null +++ b/docx_assets/diagram_18.svg @@ -0,0 +1 @@ +VR/XR 沉浸体验系统|内容生产层 运行时引擎 设备与体感层VR/XR 沉浸体验系统|内容生产层 运行时引擎 设备与体感层Unity场景工程 场景管理器 VR头显(Pico 4 Enterprise)3D资产管线 多人同步引擎 MR设备(Meta Quest 3)交互逻辑脚本 编排对接层 体感座椅(6DOF动态平台)AI NPC驱动 安全监控守护 手部追踪(Leap Motion)场景烘焙渲染 性能监控 触觉反馈背心|定位基站环绕音响(5.1/7.1)|风效/热效/气味发生器 \ No newline at end of file diff --git a/docx_assets/diagram_19.jpg b/docx_assets/diagram_19.jpg new file mode 100644 index 0000000..1a929fd Binary files /dev/null and b/docx_assets/diagram_19.jpg differ diff --git a/docx_assets/diagram_19.png b/docx_assets/diagram_19.png new file mode 100644 index 0000000..e71ee03 Binary files /dev/null and b/docx_assets/diagram_19.png differ diff --git a/docx_assets/diagram_19.svg b/docx_assets/diagram_19.svg new file mode 100644 index 0000000..36e80f2 --- /dev/null +++ b/docx_assets/diagram_19.svg @@ -0,0 +1 @@ +多人协同VR架构|VR座位1 VR座位2 VR座位3 VR座位4多人协同VR架构|VR座位1 VR座位2 VR座位3 VR座位4(队长) (队员) (队员) (队员)状态同步服务器|(Photon Fusion)房间管理服务|X1编排引擎(任务推送) \ No newline at end of file diff --git a/docx_assets/diagram_2.jpg b/docx_assets/diagram_2.jpg new file mode 100644 index 0000000..ed920a5 Binary files /dev/null and b/docx_assets/diagram_2.jpg differ diff --git a/docx_assets/diagram_2.png b/docx_assets/diagram_2.png new file mode 100644 index 0000000..7705160 Binary files /dev/null and b/docx_assets/diagram_2.png differ diff --git a/docx_assets/diagram_2.svg b/docx_assets/diagram_2.svg new file mode 100644 index 0000000..db53f41 --- /dev/null +++ b/docx_assets/diagram_2.svg @@ -0,0 +1 @@ +公网入口|WAF + SLB公网入口|WAF + SLB线上云区 线下场馆区|(公有云) (私有云)Web/小程序 AI推理GPU集群 IoT/安防/VRAPI网关 容器集群 设备网络|CDN节点 数据库集群 边缘计算盒子 \ No newline at end of file diff --git a/docx_assets/diagram_20.jpg b/docx_assets/diagram_20.jpg new file mode 100644 index 0000000..2aa614b Binary files /dev/null and b/docx_assets/diagram_20.jpg differ diff --git a/docx_assets/diagram_20.png b/docx_assets/diagram_20.png new file mode 100644 index 0000000..eed59ab Binary files /dev/null and b/docx_assets/diagram_20.png differ diff --git a/docx_assets/diagram_20.svg b/docx_assets/diagram_20.svg new file mode 100644 index 0000000..73c6734 --- /dev/null +++ b/docx_assets/diagram_20.svg @@ -0,0 +1 @@ +F2情境任务剧场|非VR模式: 多屏互动终端 + AI复盘F2情境任务剧场|非VR模式: 多屏互动终端 + AI复盘VR模式: 沉浸场景 + 体感设备 + 多人协同 + AI复盘共享层:|同一任务定义同一证据集(从知识图谱检索)|同一历史事实揭示同一AI学习教练复盘|同一成长护照记录 \ No newline at end of file diff --git a/docx_assets/diagram_21.jpg b/docx_assets/diagram_21.jpg new file mode 100644 index 0000000..bb0e7a9 Binary files /dev/null and b/docx_assets/diagram_21.jpg differ diff --git a/docx_assets/diagram_21.png b/docx_assets/diagram_21.png new file mode 100644 index 0000000..5190a49 Binary files /dev/null and b/docx_assets/diagram_21.png differ diff --git a/docx_assets/diagram_21.svg b/docx_assets/diagram_21.svg new file mode 100644 index 0000000..8027f12 --- /dev/null +++ b/docx_assets/diagram_21.svg @@ -0,0 +1 @@ +排队区(3分钟)排队区(3分钟)观看历史背景视频查看分配到的角色和资源约束学习VR手柄操作和交互方式了解安全须知和紧急退出方法查看排队位置和预计等待时间进入VR工位佩戴VR头显 + 触觉背心系统加载场景(按人群类型适配内容)4人同步进入同一历史场景沉浸体验(8-15分钟)在虚拟场景中执行任务抓取文物、查看证据与AI NPC对话(可提问,NPC用史料回答)4人语音讨论+手势交互体感设备同步场景事件团队做出决策退出VRAI复盘(学习教练分析方案vs历史)现实连接问题学习记录写入成长护照设备复位+消毒(3分钟) \ No newline at end of file diff --git a/docx_assets/diagram_22.jpg b/docx_assets/diagram_22.jpg new file mode 100644 index 0000000..2b7a115 Binary files /dev/null and b/docx_assets/diagram_22.jpg differ diff --git a/docx_assets/diagram_22.png b/docx_assets/diagram_22.png new file mode 100644 index 0000000..728cb67 Binary files /dev/null and b/docx_assets/diagram_22.png differ diff --git a/docx_assets/diagram_22.svg b/docx_assets/diagram_22.svg new file mode 100644 index 0000000..2ef1a25 --- /dev/null +++ b/docx_assets/diagram_22.svg @@ -0,0 +1 @@ +L2/L3节点 (轻量硬件) 旗舰中心/区域云端 (GPU集群)L2/L3节点 (轻量硬件) 旗舰中心/区域云端 (GPU集群)VR头显 ← 视频流云端渲染服务器WiFi/5G ← 音频流Unity应用实例解码显示 输入流串流编码H.265手柄/头显数据 超低延迟传输 \ No newline at end of file diff --git a/docx_assets/diagram_23.jpg b/docx_assets/diagram_23.jpg new file mode 100644 index 0000000..7151f5c Binary files /dev/null and b/docx_assets/diagram_23.jpg differ diff --git a/docx_assets/diagram_23.png b/docx_assets/diagram_23.png new file mode 100644 index 0000000..d6fb339 Binary files /dev/null and b/docx_assets/diagram_23.png differ diff --git a/docx_assets/diagram_23.svg b/docx_assets/diagram_23.svg new file mode 100644 index 0000000..b47e30f --- /dev/null +++ b/docx_assets/diagram_23.svg @@ -0,0 +1 @@ +事件源 处理引擎 输出目标事件源 处理引擎 输出目标UWB位置流(10Hz)客流计数(实时)实时流式计算编排决策设备控制指令设备状态(实时) (复杂事件处理) (规则+AI) (实时消息推送)用户路线(API)任务状态(API) \ No newline at end of file diff --git a/docx_assets/diagram_24.jpg b/docx_assets/diagram_24.jpg new file mode 100644 index 0000000..3c16a72 Binary files /dev/null and b/docx_assets/diagram_24.jpg differ diff --git a/docx_assets/diagram_24.png b/docx_assets/diagram_24.png new file mode 100644 index 0000000..6a35c9c Binary files /dev/null and b/docx_assets/diagram_24.png differ diff --git a/docx_assets/diagram_24.svg b/docx_assets/diagram_24.svg new file mode 100644 index 0000000..0899865 --- /dev/null +++ b/docx_assets/diagram_24.svg @@ -0,0 +1 @@ +票务系统票务系统教研系统港澳专项X2成长护照统一API统一学习档案数据中台 (GraphQL查询) (全生命周期)线下终端 \ No newline at end of file diff --git a/docx_assets/diagram_25.jpg b/docx_assets/diagram_25.jpg new file mode 100644 index 0000000..7476c7d Binary files /dev/null and b/docx_assets/diagram_25.jpg differ diff --git a/docx_assets/diagram_25.png b/docx_assets/diagram_25.png new file mode 100644 index 0000000..a89c8d4 Binary files /dev/null and b/docx_assets/diagram_25.png differ diff --git a/docx_assets/diagram_25.svg b/docx_assets/diagram_25.svg new file mode 100644 index 0000000..50c389c --- /dev/null +++ b/docx_assets/diagram_25.svg @@ -0,0 +1 @@ +内容创建/修改内容创建/修改AI编审助手自动检查事实校验: 与知识图谱交叉验证来源检查: 是否标注史料来源合规检查: 政治安全规则引擎版权检查: 素材授权验证自动检查通过编辑复审 (人工)自动检查未通过退回修改编辑复审通过专家终审 (关键内容)版本发布 (带版本号,可回滚)同步到: 展陈系统 / 云展馆 / 课程平台 / 全国节点使用反馈收集定期巡检需要时触发修订 \ No newline at end of file diff --git a/docx_assets/diagram_26.jpg b/docx_assets/diagram_26.jpg new file mode 100644 index 0000000..ab7b0e0 Binary files /dev/null and b/docx_assets/diagram_26.jpg differ diff --git a/docx_assets/diagram_26.png b/docx_assets/diagram_26.png new file mode 100644 index 0000000..d133208 Binary files /dev/null and b/docx_assets/diagram_26.png differ diff --git a/docx_assets/diagram_26.svg b/docx_assets/diagram_26.svg new file mode 100644 index 0000000..3dbca75 --- /dev/null +++ b/docx_assets/diagram_26.svg @@ -0,0 +1 @@ +互联网|WAF (Web应用防火墙)互联网|WAF (Web应用防火墙)DMZ区|负载均衡 + API网关应用区 (容器集群)|微服务集群 (服务网格 + 自动扩缩容)数据区 (隔离)|业务数据库 知识图谱 向量库 内容仓GPU推理集群|设备区 (VLAN隔离)IoT/安防/VR/灯光音频 (独立VLAN) \ No newline at end of file diff --git a/docx_assets/diagram_27.jpg b/docx_assets/diagram_27.jpg new file mode 100644 index 0000000..d41e4a5 Binary files /dev/null and b/docx_assets/diagram_27.jpg differ diff --git a/docx_assets/diagram_27.png b/docx_assets/diagram_27.png new file mode 100644 index 0000000..2d9a19c Binary files /dev/null and b/docx_assets/diagram_27.png differ diff --git a/docx_assets/diagram_27.svg b/docx_assets/diagram_27.svg new file mode 100644 index 0000000..403c2e6 --- /dev/null +++ b/docx_assets/diagram_27.svg @@ -0,0 +1 @@ +用户输入用户输入第一层: 输入过滤 拦截不当提问第二层: 事实校验 AI回答与知识图谱比对,发现事实错误则拦截第三层: 输出过滤 拦截不当表述安全回答 + 史料来源 + 审计日志 \ No newline at end of file diff --git a/docx_assets/diagram_28.jpg b/docx_assets/diagram_28.jpg new file mode 100644 index 0000000..0d93d34 Binary files /dev/null and b/docx_assets/diagram_28.jpg differ diff --git a/docx_assets/diagram_28.png b/docx_assets/diagram_28.png new file mode 100644 index 0000000..2d213a9 Binary files /dev/null and b/docx_assets/diagram_28.png differ diff --git a/docx_assets/diagram_28.svg b/docx_assets/diagram_28.svg new file mode 100644 index 0000000..cde03e9 --- /dev/null +++ b/docx_assets/diagram_28.svg @@ -0,0 +1 @@ +最小原型 = 1件文物3D展示 + 1个情境任务 + 1个AI问最小原型 = 1件文物3D展示 + 1个情境任务 + 1个AI问答入口1个成长护照H5 + 1个行动选择页 + 1个30天回访推送 \ No newline at end of file diff --git a/docx_assets/diagram_29.jpg b/docx_assets/diagram_29.jpg new file mode 100644 index 0000000..2fc9213 Binary files /dev/null and b/docx_assets/diagram_29.jpg differ diff --git a/docx_assets/diagram_29.png b/docx_assets/diagram_29.png new file mode 100644 index 0000000..f828a0d Binary files /dev/null and b/docx_assets/diagram_29.png differ diff --git a/docx_assets/diagram_29.svg b/docx_assets/diagram_29.svg new file mode 100644 index 0000000..e1d075d --- /dev/null +++ b/docx_assets/diagram_29.svg @@ -0,0 +1 @@ +用户在触屏终端开始用户在触屏终端开始查看一件文物3D模型(可旋转缩放)参与一个情境任务(阅读证据团队讨论提交方案历史揭示AI复盘)向AI提问(获得带史料引用的回答)打开手机H5查看成长护照选择一个行动方向30天后收到微信推送提交行动反馈 \ No newline at end of file diff --git a/docx_assets/diagram_3.jpg b/docx_assets/diagram_3.jpg new file mode 100644 index 0000000..4c247c4 Binary files /dev/null and b/docx_assets/diagram_3.jpg differ diff --git a/docx_assets/diagram_3.png b/docx_assets/diagram_3.png new file mode 100644 index 0000000..0677ccf Binary files /dev/null and b/docx_assets/diagram_3.png differ diff --git a/docx_assets/diagram_3.svg b/docx_assets/diagram_3.svg new file mode 100644 index 0000000..9552951 --- /dev/null +++ b/docx_assets/diagram_3.svg @@ -0,0 +1 @@ +AI可信知识引擎AI可信知识引擎知识图谱 RAG检索增强 大模型微调事件/人物/ 用户提问 延安精神文物/概念/语义检索 专属语料地点及关系召回史料LoRA微调生成回答人群适配史实锚点安全护栏层输入过滤事实校验输出过滤审计追溯 \ No newline at end of file diff --git a/docx_assets/diagram_30.jpg b/docx_assets/diagram_30.jpg new file mode 100644 index 0000000..70e92b5 Binary files /dev/null and b/docx_assets/diagram_30.jpg differ diff --git a/docx_assets/diagram_30.png b/docx_assets/diagram_30.png new file mode 100644 index 0000000..df8084a Binary files /dev/null and b/docx_assets/diagram_30.png differ diff --git a/docx_assets/diagram_30.svg b/docx_assets/diagram_30.svg new file mode 100644 index 0000000..09ef465 --- /dev/null +++ b/docx_assets/diagram_30.svg @@ -0,0 +1 @@ +单服务器部署 (原型阶段):单服务器部署 (原型阶段):1台 GPU服务器AI推理 + 向量检索1台 应用服务器业务服务 + 缓存1台 前端服务器3D展示 + 小程序后端1台 互动终端情境任务 + AI问答界面 \ No newline at end of file diff --git a/docx_assets/diagram_31.jpg b/docx_assets/diagram_31.jpg new file mode 100644 index 0000000..668d0d9 Binary files /dev/null and b/docx_assets/diagram_31.jpg differ diff --git a/docx_assets/diagram_31.png b/docx_assets/diagram_31.png new file mode 100644 index 0000000..839fcae Binary files /dev/null and b/docx_assets/diagram_31.png differ diff --git a/docx_assets/diagram_31.svg b/docx_assets/diagram_31.svg new file mode 100644 index 0000000..66d4794 --- /dev/null +++ b/docx_assets/diagram_31.svg @@ -0,0 +1 @@ +再传播提问体验理解行动反馈再传播 \ No newline at end of file diff --git a/docx_assets/diagram_4.jpg b/docx_assets/diagram_4.jpg new file mode 100644 index 0000000..b22f121 Binary files /dev/null and b/docx_assets/diagram_4.jpg differ diff --git a/docx_assets/diagram_4.png b/docx_assets/diagram_4.png new file mode 100644 index 0000000..5f1f963 Binary files /dev/null and b/docx_assets/diagram_4.png differ diff --git a/docx_assets/diagram_4.svg b/docx_assets/diagram_4.svg new file mode 100644 index 0000000..1a3cf0d --- /dev/null +++ b/docx_assets/diagram_4.svg @@ -0,0 +1 @@ +用户提问(繁体中文)用户提问(繁体中文)意图识别 + 人群类型判断(港澳中学生)RAG检索(史料库语义检索,召回相关文献)大模型生成(适配港澳中学生理解水平,繁体中文输出)安全护栏(事实校验 + 输出过滤)TTS语音合成(粤语发音可选)回答 + 史料来源 + 追问建议 \ No newline at end of file diff --git a/docx_assets/diagram_5.jpg b/docx_assets/diagram_5.jpg new file mode 100644 index 0000000..b96dd6d Binary files /dev/null and b/docx_assets/diagram_5.jpg differ diff --git a/docx_assets/diagram_5.png b/docx_assets/diagram_5.png new file mode 100644 index 0000000..d26f8a7 Binary files /dev/null and b/docx_assets/diagram_5.png differ diff --git a/docx_assets/diagram_5.svg b/docx_assets/diagram_5.svg new file mode 100644 index 0000000..e2972cd --- /dev/null +++ b/docx_assets/diagram_5.svg @@ -0,0 +1 @@ +可信叙事引擎可信叙事引擎内容组件仓库 叙事路线算法已审核的: 输入:文字片段人群类型影像素材 - 学习问题3D模型 - 可用时长互动任务 - 语言偏好AI讲解词 - 实时客流每个组件标注: 输出:适用人群 - 节点序列时长估算 - 每节点内容审核状态 - 适配方案关键原则: 不生成新内容,只编排已审核组件 \ No newline at end of file diff --git a/docx_assets/diagram_6.jpg b/docx_assets/diagram_6.jpg new file mode 100644 index 0000000..71775e6 Binary files /dev/null and b/docx_assets/diagram_6.jpg differ diff --git a/docx_assets/diagram_6.png b/docx_assets/diagram_6.png new file mode 100644 index 0000000..9132837 Binary files /dev/null and b/docx_assets/diagram_6.png differ diff --git a/docx_assets/diagram_6.svg b/docx_assets/diagram_6.svg new file mode 100644 index 0000000..f46fdec --- /dev/null +++ b/docx_assets/diagram_6.svg @@ -0,0 +1 @@ +学习成长引擎学习成长引擎参观前导学 参观中记录 离馆后回访人群选择 UWB自动 7天回顾问题选择 记录位置 30天进展路线生成 任务记录 90天成果导学推送 AI问答 行动评估理解表达 案例入库统一成长档案 (X2护照)跨系统同步 · 全程陪伴 · 闭环追踪 \ No newline at end of file diff --git a/docx_assets/diagram_7.jpg b/docx_assets/diagram_7.jpg new file mode 100644 index 0000000..2df32c3 Binary files /dev/null and b/docx_assets/diagram_7.jpg differ diff --git a/docx_assets/diagram_7.png b/docx_assets/diagram_7.png new file mode 100644 index 0000000..43a46c1 Binary files /dev/null and b/docx_assets/diagram_7.png differ diff --git a/docx_assets/diagram_7.svg b/docx_assets/diagram_7.svg new file mode 100644 index 0000000..a514eb2 --- /dev/null +++ b/docx_assets/diagram_7.svg @@ -0,0 +1 @@ +复制运营引擎复制运营引擎旗舰中心 (L4)权威内容生产组件包打包版本发布全国节点调度远程监控数据回收组件包分发L3 城市 L2 标准 L1 微型节点 节点 节点独立运营 7天部署 一体机本地化 本地AI 即开即用组件包内容: 知识图谱子集 + 史料向量 + 课程任务剧本 + VR场景 + 运营SOP \ No newline at end of file diff --git a/docx_assets/diagram_8.jpg b/docx_assets/diagram_8.jpg new file mode 100644 index 0000000..b34ae36 Binary files /dev/null and b/docx_assets/diagram_8.jpg differ diff --git a/docx_assets/diagram_8.png b/docx_assets/diagram_8.png new file mode 100644 index 0000000..acf2e29 Binary files /dev/null and b/docx_assets/diagram_8.png differ diff --git a/docx_assets/diagram_8.svg b/docx_assets/diagram_8.svg new file mode 100644 index 0000000..7e7d5fe --- /dev/null +++ b/docx_assets/diagram_8.svg @@ -0,0 +1 @@ +F1 自适应叙事空间系统|入馆选择终端 空间联动控制 学习脉络生F1 自适应叙事空间系统|入馆选择终端 空间联动控制 学习脉络生成(自助机/小程序) (X1编排引擎) (离馆报告)用户画像采集: 设备联动: 报告内容:人群类型(选择) - 屏幕内容切换 - 路线节点列表学习问题(选择) - 灯光场景切换 - 查看过的文物可用时长(选择) - 音频导览切换 - 完成的任务语言(选择) - AI讲解适配 - AI问答记录互动任务推送 - 个人理解表达|客流实时感知 - 推荐后续学习 \ No newline at end of file diff --git a/docx_assets/diagram_9.jpg b/docx_assets/diagram_9.jpg new file mode 100644 index 0000000..313386c Binary files /dev/null and b/docx_assets/diagram_9.jpg differ diff --git a/docx_assets/diagram_9.png b/docx_assets/diagram_9.png new file mode 100644 index 0000000..f79259f Binary files /dev/null and b/docx_assets/diagram_9.png differ diff --git a/docx_assets/diagram_9.svg b/docx_assets/diagram_9.svg new file mode 100644 index 0000000..f2e4b09 --- /dev/null +++ b/docx_assets/diagram_9.svg @@ -0,0 +1 @@ +X1 体验编排引擎X1 体验编排引擎输入:用户路线(来自可信叙事引擎)实时位置(UWB定位 10Hz更新)实时客流(摄像头+IoT传感器)设备状态(监控系统)编排逻辑 (实时流式计算):1. 用户进入区域匹配路线节点2. 查询该节点对应的内容组件3. 下发指令到对应设备:屏幕: 播放对应内容灯光: 切换场景灯光音频: 播放对应导览AI终端: 加载对应讲解上下文互动设备: 激活对应任务4. 客流拥挤切换备选节点重新下发指令输出:设备控制指令(实时消息推送)用户学习记录(写入成长护照)客流调度信号(反馈给智慧场馆) \ No newline at end of file diff --git a/docx_render/page-1.png b/docx_render/page-1.png new file mode 100644 index 0000000..ba382dc Binary files /dev/null and b/docx_render/page-1.png differ diff --git a/docx_render/page-10.png b/docx_render/page-10.png new file mode 100644 index 0000000..01d3a26 Binary files /dev/null and b/docx_render/page-10.png differ diff --git a/docx_render/page-11.png b/docx_render/page-11.png new file mode 100644 index 0000000..4a308ae Binary files /dev/null and b/docx_render/page-11.png differ diff --git a/docx_render/page-12.png b/docx_render/page-12.png new file mode 100644 index 0000000..9d9120b Binary files /dev/null and b/docx_render/page-12.png differ diff --git a/docx_render/page-13.png b/docx_render/page-13.png new file mode 100644 index 0000000..448a8dd Binary files /dev/null and b/docx_render/page-13.png differ diff --git a/docx_render/page-14.png b/docx_render/page-14.png new file mode 100644 index 0000000..11bf179 Binary files /dev/null and b/docx_render/page-14.png differ diff --git a/docx_render/page-15.png b/docx_render/page-15.png new file mode 100644 index 0000000..c27455c Binary files /dev/null and b/docx_render/page-15.png differ diff --git a/docx_render/page-16.png b/docx_render/page-16.png new file mode 100644 index 0000000..547138e Binary files /dev/null and b/docx_render/page-16.png differ diff --git a/docx_render/page-17.png b/docx_render/page-17.png new file mode 100644 index 0000000..c9c447a Binary files /dev/null and b/docx_render/page-17.png differ diff --git a/docx_render/page-18.png b/docx_render/page-18.png new file mode 100644 index 0000000..f0bf6d3 Binary files /dev/null and b/docx_render/page-18.png differ diff --git a/docx_render/page-19.png b/docx_render/page-19.png new file mode 100644 index 0000000..b4a7420 Binary files /dev/null and b/docx_render/page-19.png differ diff --git a/docx_render/page-2.png b/docx_render/page-2.png new file mode 100644 index 0000000..9128a3c Binary files /dev/null and b/docx_render/page-2.png differ diff --git a/docx_render/page-20.png b/docx_render/page-20.png new file mode 100644 index 0000000..1fdc6ee Binary files /dev/null and b/docx_render/page-20.png differ diff --git a/docx_render/page-21.png b/docx_render/page-21.png new file mode 100644 index 0000000..db7ca1e Binary files /dev/null and b/docx_render/page-21.png differ diff --git a/docx_render/page-22.png b/docx_render/page-22.png new file mode 100644 index 0000000..cc74d5d Binary files /dev/null and b/docx_render/page-22.png differ diff --git a/docx_render/page-3.png b/docx_render/page-3.png new file mode 100644 index 0000000..d3bb72c Binary files /dev/null and b/docx_render/page-3.png differ diff --git a/docx_render/page-4.png b/docx_render/page-4.png new file mode 100644 index 0000000..f8d0826 Binary files /dev/null and b/docx_render/page-4.png differ diff --git a/docx_render/page-5.png b/docx_render/page-5.png new file mode 100644 index 0000000..6e46825 Binary files /dev/null and b/docx_render/page-5.png differ diff --git a/docx_render/page-6.png b/docx_render/page-6.png new file mode 100644 index 0000000..12066ad Binary files /dev/null and b/docx_render/page-6.png differ diff --git a/docx_render/page-7.png b/docx_render/page-7.png new file mode 100644 index 0000000..b57ecf9 Binary files /dev/null and b/docx_render/page-7.png differ diff --git a/docx_render/page-8.png b/docx_render/page-8.png new file mode 100644 index 0000000..2a471d2 Binary files /dev/null and b/docx_render/page-8.png differ diff --git a/docx_render/page-9.png b/docx_render/page-9.png new file mode 100644 index 0000000..be3f750 Binary files /dev/null and b/docx_render/page-9.png differ diff --git a/docx_render/延安精神(大湾区)学习展示中心—终极目标导向创新升级方案.pdf b/docx_render/延安精神(大湾区)学习展示中心—终极目标导向创新升级方案.pdf new file mode 100644 index 0000000..2325c3e Binary files /dev/null and b/docx_render/延安精神(大湾区)学习展示中心—终极目标导向创新升级方案.pdf differ diff --git a/generate_svgs.py b/generate_svgs.py new file mode 100644 index 0000000..b19957a --- /dev/null +++ b/generate_svgs.py @@ -0,0 +1,1340 @@ +#!/usr/bin/env python3 +""" +为用户交流技术实现方案.md中的架构图生成SVG并转为JPG +""" +import os +import subprocess + +OUTPUT_DIR = os.path.join(os.path.dirname(__file__), "images") +os.makedirs(OUTPUT_DIR, exist_ok=True) + +# ─── 颜色方案 ─── +C_BG = "#ffffff" +C_TITLE = "#1a1a2e" +C_LAYER1 = "#e3f2fd" # 浅蓝 +C_LAYER1_B = "#1565c0" +C_LAYER2 = "#e8f5e9" # 浅绿 +C_LAYER2_B = "#2e7d32" +C_LAYER3 = "#fff3e0" # 浅橙 +C_LAYER3_B = "#e65100" +C_LAYER4 = "#f3e5f5" # 浅紫 +C_LAYER4_B = "#6a1b9a" +C_LAYER5 = "#fce4ec" # 浅粉 +C_LAYER5_B = "#c62828" +C_LAYER6 = "#e0f7fa" # 浅青 +C_LAYER6_B = "#00838f" +C_BOX = "#f5f5f5" +C_BOX_B = "#616161" +C_ARROW = "#424242" +C_HIGHLIGHT = "#ffd54f" +C_AI = "#e8eaf6" +C_AI_B = "#283593" +C_VR = "#ede7f6" +C_VR_B = "#4527a0" +C_SECURITY = "#ffebee" +C_SECURITY_B = "#b71c1c" +C_DEPLOY = "#e0f2f1" +C_DEPLOY_B = "#00695c" + +FONT = "Microsoft YaHei, PingFang SC, Heiti SC, SimHei, sans-serif" + +def svg_header(w, h): + return f'' + +def svg_text(x, y, text, size=14, color=C_TITLE, bold=False, anchor="middle", font=FONT): + weight = "bold" if bold else "normal" + return f'{text}' + +def svg_rect(x, y, w, h, fill=C_BOX, stroke=C_BOX_B, rx=8, sw=1.5, opacity=1.0): + return f'' + +def svg_box(x, y, w, h, text, fill=C_BOX, stroke=C_BOX_B, ts=13, tc=C_TITLE, bold=False, rx=8): + cx = x + w/2 + cy = y + h/2 + return svg_rect(x, y, w, h, fill, stroke, rx) + svg_text(cx, cy, text, ts, tc, bold) + +import math as _math + +def svg_arrow(x1, y1, x2, y2, color=C_ARROW, sw=2, al=14, aw=0.55): + """绘制带箭头的线段。箭头在(x2,y2)端。 + al: 箭头长度, aw: 箭头半角(弧度) + """ + angle = _math.atan2(y2-y1, x2-x1) + # 箭头三角形的两个底点 + bx = x2 - al * _math.cos(angle) + by = y2 - al * _math.sin(angle) + ax1 = bx + al * _math.sin(angle) * _math.tan(aw) + ay1 = by - al * _math.cos(angle) * _math.tan(aw) + ax2 = bx - al * _math.sin(angle) * _math.tan(aw) + ay2 = by + al * _math.cos(angle) * _math.tan(aw) + # 线段缩短到箭头底部 + return (f'' + f'') + +def svg_line(x1, y1, x2, y2, color=C_ARROW, sw=1.5, dash=None): + d = f' stroke-dasharray="{dash}"' if dash else '' + return f'' + +def svg_arrow_dashed(x1, y1, x2, y2, color=C_ARROW, sw=1.5, dash='6,4', al=12, aw=0.5): + """绘制带箭头的虚线段。""" + angle = _math.atan2(y2-y1, x2-x1) + bx = x2 - al * _math.cos(angle) + by = y2 - al * _math.sin(angle) + ax1 = bx + al * _math.sin(angle) * _math.tan(aw) + ay1 = by - al * _math.cos(angle) * _math.tan(aw) + ax2 = bx - al * _math.sin(angle) * _math.tan(aw) + ay2 = by + al * _math.cos(angle) * _math.tan(aw) + return (f'' + f'') + +def svg_arrow_down(cx, y1, y2, color=C_ARROW, sw=2, al=14): + """绘制垂直向下的箭头。""" + return svg_arrow(cx, y1, cx, y2, color, sw, al) + +def svg_h_branch(x1, y1, x2_left, x2_right, y2, color=C_ARROW, sw=2): + """从(x1,y1)向下到y2,然后水平分叉到x2_left和x2_right,各带箭头。""" + s = f'' + s += f'' + s += svg_arrow(x2_left, y2, x2_left, y2+18, color, sw) + s += svg_arrow(x2_right, y2, x2_right, y2+18, color, sw) + return s + +def save_svg_and_jpg(svg_content, name): + svg_path = os.path.join(OUTPUT_DIR, f"{name}.svg") + png_path = os.path.join(OUTPUT_DIR, f"{name}.png") + jpg_path = os.path.join(OUTPUT_DIR, f"{name}.jpg") + if not svg_content.rstrip().endswith(""): + svg_content += "\n" + with open(svg_path, "w", encoding="utf-8") as f: + f.write(svg_content) + # SVG → PNG (rsvg-convert支持中文字体) + result = subprocess.run( + ["/usr/local/bin/rsvg-convert", "-d", "200", "-p", "200", + "-f", "png", "-o", png_path, svg_path], + capture_output=True, text=True + ) + if result.returncode != 0: + print(f" ✗ {name} rsvg-convert失败: {result.stderr[:200]}") + return + # PNG → JPG (sips是macOS自带工具) + result2 = subprocess.run( + ["sips", "-s", "format", "jpeg", "-s", "formatOptions", "95", + png_path, "--out", jpg_path], + capture_output=True, text=True + ) + if result2.returncode != 0: + print(f" ✗ {name} sips失败: {result2.stderr[:200]}") + return + os.remove(png_path) + print(f" ✓ {name}.jpg") + +# ═══════════════════════════════════════════════════════════════ +# 图1: 六层技术架构 +# ═══════════════════════════════════════════════════════════════ +def gen_01_six_layer(): + W, H = 900, 620 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "六层技术架构", 22, C_TITLE, True) + layers = [ + ("用户触达层", "线下终端(触屏/VR/环幕/UWB/RFID) | 线上(Web/小程序/H5) | 节点终端", C_LAYER1, C_LAYER1_B), + ("应用服务层", "F1自适应叙事 F2情境任务 F3文物数字生命 F4成长护照 F5云上共同体 F6青年共创 F7行动实验室 F8星火节点", C_LAYER2, C_LAYER2_B), + ("公共平台层", "X1体验编排引擎 X2成长护照档案 X3内容治理中心 S9节点协同", C_LAYER3, C_LAYER3_B), + ("AI能力层", "可信叙事引擎 学习成长引擎 编审助手引擎 策展助手引擎", C_LAYER4, C_LAYER4_B), + ("数据资产层", "知识图谱 向量检索库 内容资源仓 业务数据库 时序分析库 实时缓存 消息总线", C_LAYER5, C_LAYER5_B), + ("基础设施层", "私有云容器编排 GPU推理集群 5G专网 IoT网关 CDN 安防网络", C_LAYER6, C_LAYER6_B), + ] + y = 60 + lh = 80 + for i, (title, content, fill, stroke) in enumerate(layers): + s += svg_rect(40, y, W-80, lh-10, fill, stroke, 10, 2) + s += svg_text(130, y+22, title, 15, stroke, True) + s += svg_text(W/2, y+50, content, 12, "#333") + if i < len(layers) - 1: + s += svg_arrow_down(W/2, y+lh-12, y+lh, "#bbb", 1.5, 8) + y += lh + save_svg_and_jpg(s, "01_six_layer_architecture") + +# ═══════════════════════════════════════════════════════════════ +# 图2: 系统部署拓扑 +# ═══════════════════════════════════════════════════════════════ +def gen_02_deployment(): + W, H = 880, 560 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "系统部署拓扑", 22, C_TITLE, True) + # 公网入口 + s += svg_box(300, 60, 280, 50, "公网入口 WAF + 负载均衡", C_SECURITY, C_SECURITY_B, 13, C_SECURITY_B, True) + # 分叉到两个区域 — 用h_branch + s += svg_h_branch(W/2, 110, 180, 700, 155, C_ARROW, 2) + # 线上云区 + s += svg_box(60, 175, 240, 160, "", C_LAYER1, C_LAYER1_B, 13, C_LAYER1_B, True, 10) + s += svg_text(180, 200, "线上云区 (公有云)", 14, C_LAYER1_B, True) + s += svg_text(180, 230, "Web/小程序", 12, "#333") + s += svg_text(180, 255, "API网关", 12, "#333") + s += svg_text(180, 280, "CDN节点", 12, "#333") + s += svg_text(180, 305, "港澳加速", 12, "#333") + # 线下场馆区 + s += svg_box(580, 175, 240, 160, "", C_LAYER2, C_LAYER2_B, 13, C_LAYER2_B, True, 10) + s += svg_text(700, 200, "线下场馆区 (私有云)", 14, C_LAYER2_B, True) + s += svg_text(700, 230, "AI推理GPU集群", 12, "#333") + s += svg_text(700, 255, "容器集群", 12, "#333") + s += svg_text(700, 280, "数据库集群", 12, "#333") + s += svg_text(700, 305, "知识图谱+向量库", 12, "#333") + # VPN连线 — 双向虚线箭头 + s += svg_arrow_dashed(300, 255, 580, 255, "#888", 1.5, "6,4") + s += svg_arrow_dashed(580, 255, 300, 255, "#888", 1.5, "6,4") + s += svg_text(440, 245, "VPN专线互联", 11, "#888") + # 设备区 — 从线下场馆区底部出发 + s += svg_box(350, 380, 200, 60, "IoT/安防/VR\n设备网络 (VLAN隔离)", C_LAYER6, C_LAYER6_B, 12, C_LAYER6_B, True) + s += svg_arrow(700, 335, 550, 380, C_ARROW, 2) + # 全国节点 — 从线上云区底部出发 + s += svg_box(60, 380, 240, 60, "全国星火节点\n(远程组件包分发)", C_LAYER3, C_LAYER3_B, 12, C_LAYER3_B, True) + s += svg_arrow(180, 335, 180, 380, C_ARROW, 2) + s += svg_text(W/2, 490, "AI推理+核心数据部署在场馆私有云,保证安全与低延迟", 12, "#666") + s += svg_text(W/2, 515, "Web/小程序/云展馆部署在公有云,CDN加速港澳访问", 12, "#666") + s += svg_text(W/2, 540, "全国节点通过S9节点协同系统远程部署,断网不失能", 12, "#666") + save_svg_and_jpg(s, "02_deployment_topology") + +# ═══════════════════════════════════════════════════════════════ +# 图3: AI可信知识引擎架构 +# ═══════════════════════════════════════════════════════════════ +def gen_03_ai_engine(): + W, H = 860, 580 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "AI可信知识引擎架构", 22, C_TITLE, True) + # 外框 + s += svg_rect(30, 55, W-60, 490, "#fafafa", C_AI_B, 12, 2) + # 三列 + cols = [ + ("知识图谱", "事件/人物/文物/\n概念/地点及关系\n\n史实锚点\n\n交叉验证", C_LAYER4, C_LAYER4_B), + ("RAG检索增强", "用户提问\n → 语义检索\n → 召回史料\n → 生成回答\n\n读史料后回答\n非凭记忆回答", C_LAYER1, C_LAYER1_B), + ("大模型微调", "延安精神\n专属语料\n → LoRA微调\n → 人群适配\n\n懂延安·懂党史·懂教育", C_LAYER3, C_LAYER3_B), + ] + cw = 230 + gap = 20 + x0 = 50 + for i, (title, content, fill, stroke) in enumerate(cols): + x = x0 + i * (cw + gap) + s += svg_rect(x, 80, cw, 280, fill, stroke, 10, 2) + s += svg_text(x + cw/2, 110, title, 16, stroke, True) + for j, line in enumerate(content.split("\n")): + s += svg_text(x + cw/2, 145 + j*22, line, 12, "#333") + if i < 2: + s += svg_arrow(x + cw, 220, x + cw + gap, 220, "#999", 2, 12) + # 汇聚箭头 + s += svg_arrow_down(W/2, 360, 380, "#999", 2) + # 安全护栏 + s += svg_rect(150, 380, W-300, 140, C_SECURITY, C_SECURITY_B, 10, 2) + s += svg_text(W/2, 410, "安全护栏层", 15, C_SECURITY_B, True) + steps = ["输入过滤", "事实校验", "输出过滤", "审计追溯"] + for i, step in enumerate(steps): + sx = 200 + i * 130 + s += svg_rect(sx, 430, 110, 35, "#fff", C_SECURITY_B, 6, 1.5) + s += svg_text(sx + 55, 448, step, 12, C_SECURITY_B, True) + if i < 3: + s += svg_arrow(sx + 110, 448, sx + 130, 448, C_SECURITY_B, 2, 10) + save_svg_and_jpg(s, "03_ai_knowledge_engine") + +# ═══════════════════════════════════════════════════════════════ +# 图4: 可信叙事引擎 +# ═══════════════════════════════════════════════════════════════ +def gen_04_narrative_engine(): + W, H = 860, 480 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "可信叙事引擎", 22, C_TITLE, True) + s += svg_rect(30, 55, W-60, 400, "#fafafa", C_LAYER3_B, 12, 2) + # 内容组件仓库 + s += svg_rect(50, 80, 320, 220, C_LAYER3, C_LAYER3_B, 10, 2) + s += svg_text(210, 110, "内容组件仓库", 15, C_LAYER3_B, True) + items = ["已审核的文字片段", "影像素材", "3D模型", "互动任务", "AI讲解词", "每个组件标注: 适用人群/时长/审核状态"] + for i, item in enumerate(items): + s += svg_text(210, 140 + i*25, item, 12, "#333") + # 箭头 — 从内容仓库到叙事算法 + s += svg_arrow(370, 190, 440, 190, C_ARROW, 2, 14) + # 叙事路线算法 + s += svg_rect(440, 80, 360, 220, C_LAYER1, C_LAYER1_B, 10, 2) + s += svg_text(620, 110, "叙事路线算法", 15, C_LAYER1_B, True) + inputs = ["输入: 人群类型 + 学习问题", " 可用时长 + 语言偏好", " 实时客流状态"] + s += svg_text(620, 145, inputs[0], 12, "#333") + s += svg_text(620, 170, inputs[1], 12, "#333") + s += svg_text(620, 195, inputs[2], 12, "#333") + s += svg_text(620, 225, "输出: 节点序列 + 每节点内容", 12, C_LAYER1_B, True) + s += svg_text(620, 250, " 适配方案 + 时长估算", 12, C_LAYER1_B, True) + # 底部原则 + s += svg_rect(50, 330, W-100, 50, C_HIGHLIGHT, "#f57f17", 8, 2) + s += svg_text(W/2, 355, "关键原则: 不生成新内容,只编排已审核组件 — 像乐高积木一样编排", 13, "#e65100", True) + s += svg_text(W/2, 420, "同一空间千人千面: 小学生看动画+游戏 | 党员干部看文献+分析 | 港澳青年看繁体+湾区视角", 12, "#666") + save_svg_and_jpg(s, "04_narrative_engine") + +# ═══════════════════════════════════════════════════════════════ +# 图5: 学习成长引擎 +# ═══════════════════════════════════════════════════════════════ +def gen_05_growth_engine(): + W, H = 860, 420 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "学习成长引擎", 22, C_TITLE, True) + # 三个阶段 + stages = [ + ("参观前导学", ["人群选择", "问题选择", "路线生成", "导学推送"], C_LAYER1, C_LAYER1_B), + ("参观中记录", ["UWB自动记录位置", "任务完成记录", "AI问答记录", "理解表达记录"], C_LAYER2, C_LAYER2_B), + ("离馆后回访", ["第7天回顾推送", "第30天进展反馈", "第90天成果提交", "行动评估+案例入库"], C_LAYER3, C_LAYER3_B), + ] + sw = 240 + gap = 20 + x0 = 40 + for i, (title, items, fill, stroke) in enumerate(stages): + x = x0 + i * (sw + gap) + s += svg_rect(x, 60, sw, 220, fill, stroke, 10, 2) + s += svg_text(x + sw/2, 90, title, 15, stroke, True) + for j, item in enumerate(items): + s += svg_text(x + sw/2, 125 + j*30, item, 12, "#333") + if i < 2: + s += svg_arrow(x + sw, 170, x + sw + gap, 170, "#999", 2, 14) + # 统一档案 + s += svg_arrow_down(W/2, 280, 310, "#999", 2) + s += svg_rect(120, 310, W-240, 60, C_LAYER4, C_LAYER4_B, 10, 2) + s += svg_text(W/2, 332, "统一成长档案 (X2护照)", 15, C_LAYER4_B, True) + s += svg_text(W/2, 352, "跨系统同步 · 全程陪伴 · 闭环追踪 · 北极星指标可计算", 12, "#333") + save_svg_and_jpg(s, "05_growth_engine") + +# ═══════════════════════════════════════════════════════════════ +# 图6: 复制运营引擎 +# ═══════════════════════════════════════════════════════════════ +def gen_06_replication_engine(): + W, H = 860, 520 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "复制运营引擎", 22, C_TITLE, True) + # 旗舰中心 + s += svg_rect(180, 60, 500, 100, C_LAYER5, C_LAYER5_B, 10, 2) + s += svg_text(W/2, 90, "L4 旗舰中心 (13000㎡)", 15, C_LAYER5_B, True) + s += svg_text(W/2, 115, "权威内容生产 → 组件包打包 → 版本发布", 12, "#333") + s += svg_text(W/2, 138, "全国节点调度 → 远程监控 → 数据回收", 12, "#333") + # 分发线 — 从旗舰中心向下到水平分发线 + s += svg_line(W/2, 160, W/2, 180, C_ARROW, 2) + s += svg_text(W/2 + 55, 175, "组件包分发", 10, "#999") + s += svg_line(130, 180, 730, 180, C_ARROW, 2) + # 四级节点 + nodes = [ + ("L1 微节点", "一体机\n即开即用\n定期WiFi同步", C_LAYER6, C_LAYER6_B), + ("L2 标准节点", "7天部署\n本地AI推理\nVR串流", C_LAYER1, C_LAYER1_B), + ("L3 城市节点", "独立运营\n本地服务器\n内容本地化", C_LAYER2, C_LAYER2_B), + ("L4 旗舰中心", "全量系统\n内容生产\n全国调度", C_LAYER5, C_LAYER5_B), + ] + nw = 180 + gap = 20 + x0 = 40 + for i, (title, desc, fill, stroke) in enumerate(nodes): + x = x0 + i * (nw + gap) + s += svg_arrow(x + nw/2, 180, x + nw/2, 200) + s += svg_rect(x, 200, nw, 130, fill, stroke, 10, 2) + s += svg_text(x + nw/2, 225, title, 13, stroke, True) + for j, line in enumerate(desc.split("\n")): + s += svg_text(x + nw/2, 250 + j*22, line, 11, "#333") + # 组件包内容 + s += svg_rect(50, 370, W-100, 50, C_HIGHLIGHT, "#f57f17", 8, 2) + s += svg_text(W/2, 395, "组件包: 知识图谱子集 + 史料向量 + 课程 + 任务剧本 + VR场景 + 运营SOP", 12, "#e65100", True) + s += svg_text(W/2, 460, "断网不失能: 各节点本地有AI推理和内容缓存,网络恢复后自动同步", 12, "#666") + s += svg_text(W/2, 485, "内容可回流: 各节点优秀作品可提交旗舰中心审核后全国共享", 12, "#666") + save_svg_and_jpg(s, "06_replication_engine") + +# ═══════════════════════════════════════════════════════════════ +# 图7: F1自适应叙事空间 + X1编排引擎 +# ═══════════════════════════════════════════════════════════════ +def gen_07_f1_x1(): + W, H = 900, 620 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F1自适应叙事空间 + X1体验编排引擎", 20, C_TITLE, True) + # F1三模块 + s += svg_rect(30, 55, W-60, 180, "#fafafa", C_LAYER1_B, 10, 2) + s += svg_text(W/2, 80, "F1 自适应叙事空间系统", 14, C_LAYER1_B, True) + modules = [ + ("入馆选择终端", "人群类型/学习问题\n可用时长/语言"), + ("空间联动控制", "屏幕/灯光/音频\nAI/互动设备"), + ("学习脉络生成", "路线节点/文物\n任务/AI问答/报告"), + ] + mw = 250 + for i, (title, desc) in enumerate(modules): + x = 50 + i * (mw + 15) + s += svg_rect(x, 95, mw, 120, C_LAYER1, C_LAYER1_B, 8, 1.5) + s += svg_text(x + mw/2, 120, title, 13, C_LAYER1_B, True) + for j, line in enumerate(desc.split("\n")): + s += svg_text(x + mw/2, 150 + j*22, line, 11, "#333") + # X1编排引擎 + s += svg_arrow_down(W/2, 240, 275, C_LAYER3_B, 2, 14) + s += svg_text(W/2, 258, "X1全场景体验编排引擎", 14, C_LAYER3_B, True) + s += svg_rect(30, 275, W-60, 280, "#fafafa", C_LAYER3_B, 10, 2) + # 输入 + s += svg_rect(50, 295, 200, 120, C_LAYER3, C_LAYER3_B, 8, 1.5) + s += svg_text(150, 320, "输入", 13, C_LAYER3_B, True) + inputs = ["用户路线", "UWB实时位置(10Hz)", "实时客流", "设备状态"] + for i, inp in enumerate(inputs): + s += svg_text(150, 345 + i*22, inp, 11, "#333") + # 箭头 — 输入到处理 + s += svg_arrow(250, 355, 320, 355, C_ARROW, 2, 14) + # 处理 + s += svg_rect(320, 295, 260, 120, C_HIGHLIGHT, "#f57f17", 8, 2) + s += svg_text(450, 320, "实时流式计算 (CEP)", 13, "#e65100", True) + s += svg_text(450, 350, "复杂事件处理引擎", 12, "#333") + s += svg_text(450, 375, "毫秒级复合条件判断", 12, "#333") + s += svg_text(450, 400, "规则 + AI编排决策", 12, "#333") + # 箭头 — 处理到输出 + s += svg_arrow(580, 355, 650, 355, C_ARROW, 2, 14) + # 输出 + s += svg_rect(650, 295, 200, 120, C_LAYER2, C_LAYER2_B, 8, 1.5) + s += svg_text(750, 320, "输出", 13, C_LAYER2_B, True) + outputs = ["设备控制指令", "用户学习记录", "客流调度信号"] + for i, out in enumerate(outputs): + s += svg_text(750, 345 + i*22, out, 11, "#333") + # 设备控制 + s += svg_text(W/2, 445, "六类设备统一编排", 13, C_TITLE, True) + devices = ["LED屏幕", "灯光系统", "音频系统", "VR设备", "互动终端", "AI数字人"] + dw = 120 + for i, dev in enumerate(devices): + x = 60 + i * (dw + 10) + s += svg_rect(x, 460, dw, 35, C_LAYER6, C_LAYER6_B, 6, 1.5) + s += svg_text(x + dw/2, 478, dev, 11, C_LAYER6_B, True) + s += svg_text(W/2, 530, "UWB厘米级室内定位 + 复杂事件处理 + 像指挥家指挥交响乐", 12, "#666") + s += svg_text(W/2, 555, "同一物理空间,数字内容随人而变", 12, C_LAYER3_B, True) + save_svg_and_jpg(s, "07_f1_x1_orchestration") + +# ═══════════════════════════════════════════════════════════════ +# 图8: F2情境任务剧场 +# ═══════════════════════════════════════════════════════════════ +def gen_08_f2_task(): + W, H = 860, 400 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F2 情境任务剧场系统", 22, C_TITLE, True) + modules = [ + ("任务引擎", "任务定义: 历史问题\n角色分配/资源约束\n证据集/历史事实\n评价维度\n状态机驱动(9状态)"), + ("团队协作终端", "主屏: 情境展示\n分屏: 证据查看\n个人终端: 决策\n团队屏: 方案汇总\nVR模式: 虚拟窑洞讨论"), + ("AI复盘引擎", "团队方案 vs 历史\nAI追问(史料引用)\n证据使用分析\n现实连接问题\n像历史导师一对一"), + ] + mw = 250 + for i, (title, desc) in enumerate(modules): + x = 30 + i * (mw + 15) + fill = [C_LAYER2, C_LAYER1, C_LAYER4][i] + stroke = [C_LAYER2_B, C_LAYER1_B, C_LAYER4_B][i] + s += svg_rect(x, 55, mw, 240, fill, stroke, 10, 2) + s += svg_text(x + mw/2, 82, title, 14, stroke, True) + for j, line in enumerate(desc.split("\n")): + s += svg_text(x + mw/2, 110 + j*22, line, 11, "#333") + if i < 2: + s += svg_arrow(x + mw, 175, x + mw + 15, 175, "#999", 2, 12) + # 底部 + s += svg_rect(30, 320, W-60, 50, C_HIGHLIGHT, "#f57f17", 8, 2) + s += svg_text(W/2, 345, "VR与非VR双模式共享同一剧本: 同一任务定义/证据集/历史揭示/AI复盘/护照记录", 12, "#e65100", True) + save_svg_and_jpg(s, "08_f2_task_theater") + +# ═══════════════════════════════════════════════════════════════ +# 图9: F3文物数字生命 +# ═══════════════════════════════════════════════════════════════ +def gen_09_f3_artifact(): + W, H = 860, 400 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F3 文物数字生命系统", 22, C_TITLE, True) + modules = [ + ("数字采集管理", "3D扫描任务\n摄影测量任务\n质量检测\n元数据录入"), + ("五层内容管理", "L1看见: 图像/3D\nL2知道: 元数据\nL3理解: 关联网络\nL4研究: 档案\nL5连接: 课程/任务"), + ("关系星图引擎", "力导向图渲染\n交互式星图\n时间轴\n点击节点展开"), + ] + mw = 250 + for i, (title, desc) in enumerate(modules): + x = 30 + i * (mw + 15) + fill = [C_LAYER3, C_LAYER4, C_LAYER1][i] + stroke = [C_LAYER3_B, C_LAYER4_B, C_LAYER1_B][i] + s += svg_rect(x, 55, mw, 200, fill, stroke, 10, 2) + s += svg_text(x + mw/2, 82, title, 14, stroke, True) + for j, line in enumerate(desc.split("\n")): + s += svg_text(x + mw/2, 110 + j*22, line, 11, "#333") + if i < 2: + s += svg_arrow(x + mw, 155, x + mw + 15, 155, "#999", 2, 12) + # 五层递进 + s += svg_text(W/2, 290, "一件文物 = 一个知识宇宙", 14, C_TITLE, True) + levels = ["看见", "知道", "理解", "研究", "连接"] + lw = 140 + for i, lv in enumerate(levels): + x = 50 + i * (lw + 10) + fill = [C_LAYER6, C_LAYER1, C_LAYER2, C_LAYER3, C_LAYER4][i] + stroke = [C_LAYER6_B, C_LAYER1_B, C_LAYER2_B, C_LAYER3_B, C_LAYER4_B][i] + s += svg_rect(x, 305, lw, 35, fill, stroke, 6, 1.5) + s += svg_text(x + lw/2, 323, lv, 12, stroke, True) + if i < 4: + s += svg_arrow(x + lw, 323, x + lw + 10, 323, "#999", 1.5, 10) + s += svg_text(W/2, 370, "推测性复原标识: 有争议部分用不同颜色边框区分「史实确认」和「推测复原」", 11, "#666") + save_svg_and_jpg(s, "09_f3_artifact_life") + +# ═══════════════════════════════════════════════════════════════ +# 图10: F4成长护照 +# ═══════════════════════════════════════════════════════════════ +def gen_10_f4_passport(): + W, H = 860, 380 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F4 成长护照系统", 22, C_TITLE, True) + stages = [ + ("参观前导学", ["人群/问题选择", "团队目标创建", "参观建议生成", "导学材料推送"]), + ("参观中记录", ["文物查看记录", "任务完成记录", "AI问答记录", "理解表达记录", "行动选择记录"]), + ("离馆后回访", ["第7天推送回顾", "第30天进展反馈", "第90天成果提交", "后续课程推荐"]), + ] + sw = 250 + for i, (title, items) in enumerate(stages): + x = 30 + i * (sw + 10) + fill = [C_LAYER1, C_LAYER2, C_LAYER3][i] + stroke = [C_LAYER1_B, C_LAYER2_B, C_LAYER3_B][i] + s += svg_rect(x, 55, sw, 200, fill, stroke, 10, 2) + s += svg_text(x + sw/2, 82, title, 14, stroke, True) + for j, item in enumerate(items): + s += svg_text(x + sw/2, 110 + j*25, item, 11, "#333") + if i < 2: + s += svg_arrow(x + sw, 155, x + sw + 10, 155, "#999", 2, 12) + # X2统一档案 + s += svg_arrow_down(W/2, 255, 275, "#999", 2) + s += svg_rect(100, 275, W-200, 50, C_LAYER4, C_LAYER4_B, 10, 2) + s += svg_text(W/2, 300, "X2 统一成长档案 — 跨系统数据同步 · GraphQL统一查询", 13, C_LAYER4_B, True) + s += svg_text(W/2, 350, "隐私保护是设计底线: 禁止采集人脸特征/情绪识别/政治倾向推断", 11, C_SECURITY_B) + save_svg_and_jpg(s, "10_f4_growth_passport") + +# ═══════════════════════════════════════════════════════════════ +# 图11: F5云上学习共同体 +# ═══════════════════════════════════════════════════════════════ +def gen_11_f5_cloud(): + W, H = 860, 400 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F5 云上学习共同体", 22, C_TITLE, True) + modules = [ + ("Web3D云展馆", "3D渲染引擎\n虚拟漫游\nAI导览\n文物3D展示"), + ("云端课程平台", "视频点播/直播\n课程管理\n学时记录\n证书发放"), + ("协作任务平台", "实时音视频协作\n多人同堂任务\n粤港澳三地同步\n在线研讨室"), + ] + mw = 250 + for i, (title, desc) in enumerate(modules): + x = 30 + i * (mw + 15) + fill = [C_LAYER1, C_LAYER2, C_LAYER3][i] + stroke = [C_LAYER1_B, C_LAYER2_B, C_LAYER3_B][i] + s += svg_rect(x, 55, mw, 160, fill, stroke, 10, 2) + s += svg_text(x + mw/2, 82, title, 14, stroke, True) + for j, line in enumerate(desc.split("\n")): + s += svg_text(x + mw/2, 110 + j*22, line, 11, "#333") + # 四种模式 + s += svg_text(W/2, 245, "四种访问模式", 13, C_TITLE, True) + modes = [("8分钟精华\n轻量H5", C_LAYER6, C_LAYER6_B), ("一节课模式\n视频+互动", C_LAYER1, C_LAYER1_B), + ("协作任务模式\n实时协作+白板", C_LAYER3, C_LAYER3_B), ("深度研究模式\n文献检索+图谱", C_LAYER4, C_LAYER4_B)] + mw2 = 190 + for i, (title, fill, stroke) in enumerate(modes): + x = 30 + i * (mw2 + 10) + s += svg_rect(x, 265, mw2, 55, fill, stroke, 8, 1.5) + for j, line in enumerate(title.split("\n")): + s += svg_text(x + mw2/2, 283 + j*18, line, 11, stroke, j==0) + s += svg_text(W/2, 365, "三档渲染自适应: 高端(WebGPU+PBR) → 轻量(WebGL+减面) → 极简(全景图片热点)", 11, "#666") + save_svg_and_jpg(s, "11_f5_cloud_community") + +# ═══════════════════════════════════════════════════════════════ +# 图12: F6湾区青年共创 +# ═══════════════════════════════════════════════════════════════ +def gen_12_f6_cocreation(): + W, H = 860, 350 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F6 湾区青年共创平台", 22, C_TITLE, True) + modules = [ + ("共创项目管理", "年度主题发布\n混合小组组建\n专家工作坊预约\n进度跟踪\n资源库访问"), + ("AI辅助创作工具集", "AI辅助写作(标注)\nAI辅助绘画\n短视频编辑\n声音档案录制\n互动网页制作"), + ("三级审核与展示", "AI编审自动检查\n编辑复审(人工)\n专家终审\n线上专区展示\n优秀作品入临展"), + ] + mw = 250 + for i, (title, desc) in enumerate(modules): + x = 30 + i * (mw + 15) + fill = [C_LAYER2, C_LAYER4, C_LAYER3][i] + stroke = [C_LAYER2_B, C_LAYER4_B, C_LAYER3_B][i] + s += svg_rect(x, 55, mw, 200, fill, stroke, 10, 2) + s += svg_text(x + mw/2, 82, title, 14, stroke, True) + for j, line in enumerate(desc.split("\n")): + s += svg_text(x + mw/2, 110 + j*22, line, 11, "#333") + if i < 2: + s += svg_arrow(x + mw, 155, x + mw + 15, 155, "#999", 2, 12) + s += svg_rect(30, 280, W-60, 40, C_HIGHLIGHT, "#f57f17", 8, 2) + s += svg_text(W/2, 300, "AI编审四项自动检查: 史实校验 + 来源完整性 + 版权合规 + 政治合规", 12, "#e65100", True) + s += svg_text(W/2, 335, "AI是工具不是作者,人的创造力是核心 — 所有AI生成内容强制标注", 11, "#666") + save_svg_and_jpg(s, "12_f6_cocreation") + +# ═══════════════════════════════════════════════════════════════ +# 图13: F7行动实验室 +# ═══════════════════════════════════════════════════════════════ +def gen_13_f7_action(): + W, H = 860, 350 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F7 现实行动实验室", 22, C_TITLE, True) + modules = [ + ("行动选择终端", "行动方向展示\n智能推荐(基于参观记录)\n行动模板选择\n自定义行动\n团队行动创建"), + ("行动跟踪系统", "行动卡片生成\n7/30/90天跟踪\n进展提醒推送\n反馈表单"), + ("成果回流系统", "成果提交入口\n成果墙展示\n课程案例转化\n年度优秀评选"), + ] + mw = 250 + for i, (title, desc) in enumerate(modules): + x = 30 + i * (mw + 15) + fill = [C_LAYER3, C_LAYER1, C_LAYER2][i] + stroke = [C_LAYER3_B, C_LAYER1_B, C_LAYER2_B][i] + s += svg_rect(x, 55, mw, 200, fill, stroke, 10, 2) + s += svg_text(x + mw/2, 82, title, 14, stroke, True) + for j, line in enumerate(desc.split("\n")): + s += svg_text(x + mw/2, 110 + j*22, line, 11, "#333") + if i < 2: + s += svg_arrow(x + mw, 155, x + mw + 15, 155, "#999", 2, 12) + s += svg_rect(30, 280, W-60, 40, C_HIGHLIGHT, "#f57f17", 8, 2) + s += svg_text(W/2, 300, "把「一次性参观」变成「持续性行动」 — 优秀成果成为系统内容资产", 12, "#e65100", True) + s += svg_text(W/2, 335, "三类行动: 个人7天(实事求是调查员) | 团队30天(南泥湾式创新) | 湾区90天(红色故事传播者)", 11, "#666") + save_svg_and_jpg(s, "13_f7_action_lab") + +# ═══════════════════════════════════════════════════════════════ +# 图14: F8星火节点网络 +# ═══════════════════════════════════════════════════════════════ +def gen_14_f8_nodes(): + W, H = 860, 520 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F8 星火节点全国复制网络", 22, C_TITLE, True) + nodes = [ + ("L4 旗舰中心", "13000㎡", "完整私有云 + GPU集群\n完整知识图谱+向量库+内容仓\n全国节点调度中心\n权威内容生产与发布", C_LAYER5, C_LAYER5_B), + ("L3 城市节点", "院校/区县基地", "本地服务器 + 完整展陈\n知识图谱子集 + 向量库子集\n独立运营 + 数据上报\n云端连线能力", C_LAYER2, C_LAYER2_B), + ("L2 标准节点", "高校/企事业单位", "触屏终端 + 边缘AI + VR\n本地内容缓存 + 云端AI增强\n成长护照接入\n7天标准化部署", C_LAYER1, C_LAYER1_B), + ("L1 微节点", "一体机", "一块触屏交互一体机\n离线内容包 + AI轻量版\n定期WiFi/4G同步更新", C_LAYER6, C_LAYER6_B), + ] + nh = 90 + for i, (title, scale, desc, fill, stroke) in enumerate(nodes): + y = 55 + i * (nh + 10) + s += svg_rect(40, y, W-80, nh, fill, stroke, 10, 2) + s += svg_text(160, y + 25, title, 14, stroke, True) + s += svg_text(160, y + 48, scale, 11, "#666") + for j, line in enumerate(desc.split("\n")): + s += svg_text(450, y + 20 + j*18, line, 11, "#333") + if i < 3: + s += svg_arrow_down(W/2, y + nh, y + nh + 10, "#999", 2, 10) + s += svg_text(W/2, 490, "组件包标准化分发 — 像App Store更新一样简单", 12, C_LAYER3_B, True) + save_svg_and_jpg(s, "14_f8_spark_nodes") + +# ═══════════════════════════════════════════════════════════════ +# 图15: VR/XR整体架构 +# ═══════════════════════════════════════════════════════════════ +def gen_15_vr_architecture(): + W, H = 900, 420 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "VR/XR 沉浸体验系统架构", 22, C_TITLE, True) + layers = [ + ("内容生产层", ["Unity场景工程", "3D资产管线", "交互逻辑脚本", "AI NPC驱动", "场景烘焙渲染"], C_VR, C_VR_B), + ("运行时引擎", ["场景管理器", "多人同步引擎", "编排对接层", "安全监控守护", "性能监控"], C_LAYER4, C_LAYER4_B), + ("设备与体感层", ["VR头显(Pico/Meta)", "6DOF动态座椅", "手部追踪", "触觉反馈背心", "风效/热效/气味"], C_LAYER3, C_LAYER3_B), + ] + lh = 100 + for i, (title, items, fill, stroke) in enumerate(layers): + y = 55 + i * (lh + 10) + s += svg_rect(30, y, W-60, lh, fill, stroke, 10, 2) + s += svg_text(130, y + 25, title, 14, stroke, True) + iw = 140 + for j, item in enumerate(items): + x = 240 + j * (iw + 10) + s += svg_rect(x, y + 45, iw, 35, "#fff", stroke, 6, 1) + s += svg_text(x + iw/2, y + 63, item, 10, "#333") + if i < 2: + s += svg_arrow_down(W/2, y + lh, y + lh + 10, "#999", 2, 10) + s += svg_text(W/2, 390, "Unity + XR Interaction Toolkit — 一次开发多设备运行 | 6DOF体感+五感同步沉浸", 12, C_VR_B, True) + save_svg_and_jpg(s, "15_vr_xr_architecture") + +# ═══════════════════════════════════════════════════════════════ +# 图16: 多人协同VR架构 +# ═══════════════════════════════════════════════════════════════ +def gen_16_vr_multiplayer(): + W, H = 700, 520 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "多人协同VR架构", 22, C_TITLE, True) + # 4个VR座位 + seats = ["VR座位1\n(队长)", "VR座位2\n(队员)", "VR座位3\n(队员)", "VR座位4\n(队员)"] + for i, label in enumerate(seats): + x = 60 + i * 150 + s += svg_rect(x, 60, 130, 60, C_VR, C_VR_B, 8, 2) + for j, line in enumerate(label.split("\n")): + s += svg_text(x + 65, 78 + j*18, line, 11, C_VR_B, j==0) + # 从座位底部到状态同步服务器顶部,用箭头 + s += svg_arrow(x + 65, 120, 350, 170, C_ARROW, 1.5, 10) + # 状态同步服务器 + s += svg_rect(200, 170, 300, 60, C_LAYER4, C_LAYER4_B, 10, 2) + s += svg_text(W/2, 195, "状态同步服务器", 14, C_LAYER4_B, True) + s += svg_text(W/2, 215, "Photon Fusion — 头像/手部/任务进度实时同步", 11, "#333") + s += svg_arrow_down(W/2, 230, 250, C_ARROW, 2, 12) + # 房间管理 + s += svg_rect(200, 250, 300, 50, C_LAYER3, C_LAYER3_B, 10, 2) + s += svg_text(W/2, 275, "房间管理服务 — 4人同场,场次调度", 12, C_LAYER3_B, True) + s += svg_arrow_down(W/2, 300, 320, C_ARROW, 2, 12) + # X1编排 + s += svg_rect(200, 320, 300, 50, C_LAYER1, C_LAYER1_B, 10, 2) + s += svg_text(W/2, 345, "X1编排引擎 — 任务剧本推送", 12, C_LAYER1_B, True) + # 底部说明 + s += svg_rect(50, 400, W-100, 90, C_HIGHLIGHT, "#f57f17", 8, 2) + s += svg_text(W/2, 425, "技术亮点", 13, "#e65100", True) + s += svg_text(W/2, 448, "• Photon Fusion状态同步: 4人虚拟化身和手势实时可见", 11, "#333") + s += svg_text(W/2, 468, "• 角色与F2任务对应: 各有专属资源和约束,真正的团队协作", 11, "#333") + s += svg_text(W/2, 488, "• VR内AI NPC: 由AI可信知识引擎驱动,可对话的AI角色", 11, "#333") + save_svg_and_jpg(s, "16_vr_multiplayer") + +# ═══════════════════════════════════════════════════════════════ +# 图17: 云端VR串流 +# ═══════════════════════════════════════════════════════════════ +def gen_17_vr_cloud_streaming(): + W, H = 860, 400 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "云端VR串流方案", 22, C_TITLE, True) + # 左侧: 节点 + s += svg_rect(40, 70, 300, 200, C_LAYER1, C_LAYER1_B, 10, 2) + s += svg_text(190, 100, "L2/L3节点 (轻量硬件)", 14, C_LAYER1_B, True) + items_l = ["VR头显", "WiFi/5G传输", "解码显示", "手柄/头显数据"] + for i, item in enumerate(items_l): + s += svg_text(190, 130 + i*30, item, 12, "#333") + if i < 3: + s += svg_arrow_down(190, 140 + i*30, 150 + i*30, "#bbb", 1.5, 8) + # 中间: 数据流 — 双向箭头 + s += svg_arrow(340, 130, 460, 130, C_VR_B, 2, 12) + s += svg_arrow(460, 130, 340, 130, C_VR_B, 2, 12) + s += svg_text(400, 118, "视频流", 10, C_VR_B, True) + s += svg_arrow(340, 160, 460, 160, C_VR_B, 2, 12) + s += svg_arrow(460, 160, 340, 160, C_VR_B, 2, 12) + s += svg_text(400, 148, "音频流", 10, C_VR_B, True) + s += svg_arrow(340, 190, 460, 190, C_VR_B, 2, 12) + s += svg_text(400, 178, "输入流", 10, C_VR_B, True) + s += svg_text(400, 220, "H.265超低延迟传输", 11, "#999") + # 右侧: 云端 + s += svg_rect(520, 70, 300, 200, C_LAYER5, C_LAYER5_B, 10, 2) + s += svg_text(670, 100, "旗舰中心/区域云端 (GPU集群)", 14, C_LAYER5_B, True) + items_r = ["云端渲染服务器", "Unity应用实例", "串流编码H.265", "超低延迟传输"] + for i, item in enumerate(items_r): + s += svg_text(670, 130 + i*30, item, 12, "#333") + # 方案表 + s += svg_text(W/2, 310, "四种方案对比", 13, C_TITLE, True) + schemes = [("CloudXR\n15-30ms\nL3城市节点", C_LAYER2, C_LAYER2_B), + ("ALVR开源\n20-40ms\nL2标准节点", C_LAYER1, C_LAYER1_B), + ("本地渲染\n<10ms\nL4旗舰中心", C_LAYER5, C_LAYER5_B), + ("WebXR\n30-80ms\nF5云展馆", C_LAYER6, C_LAYER6_B)] + sw = 190 + for i, (label, fill, stroke) in enumerate(schemes): + x = 30 + i * (sw + 10) + s += svg_rect(x, 325, sw, 55, fill, stroke, 8, 1.5) + for j, line in enumerate(label.split("\n")): + s += svg_text(x + sw/2, 343 + j*16, line, 10, stroke, j==0) + save_svg_and_jpg(s, "17_vr_cloud_streaming") + +# ═══════════════════════════════════════════════════════════════ +# 图18: X1编排数据流 +# ═══════════════════════════════════════════════════════════════ +def gen_18_x1_dataflow(): + W, H = 860, 320 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "X1体验编排引擎 — 数据流", 22, C_TITLE, True) + # 事件源 + sources = ["UWB位置流\n(10Hz)", "客流计数\n(实时)", "设备状态\n(实时)", "用户路线\n(API)", "任务状态\n(API)"] + s += svg_text(120, 75, "事件源", 13, C_TITLE, True) + for i, src in enumerate(sources): + y = 90 + i * 38 + s += svg_rect(40, y, 160, 32, C_LAYER1, C_LAYER1_B, 6, 1.5) + s += svg_text(120, y + 16, src.replace("\n", " "), 10, C_LAYER1_B, True) + # 从每个事件源到处理引擎的箭头 + s += svg_arrow(200, y + 16, 280, 175, C_ARROW, 1.5, 10) + # 处理引擎 + s += svg_rect(280, 130, 260, 90, C_HIGHLIGHT, "#f57f17", 10, 2) + s += svg_text(410, 160, "实时流式计算", 14, "#e65100", True) + s += svg_text(410, 185, "复杂事件处理(CEP)", 12, "#333") + s += svg_text(410, 205, "规则 + AI编排决策", 12, "#333") + s += svg_arrow(540, 175, 620, 175) + # 输出 + s += svg_text(700, 75, "输出目标", 13, C_TITLE, True) + outputs = ["设备控制指令\n(实时消息推送)", "用户学习记录\n(写入成长护照)", "客流调度信号\n(反馈智慧场馆)"] + for i, out in enumerate(outputs): + y = 90 + i * 55 + s += svg_rect(620, y, 200, 42, C_LAYER2, C_LAYER2_B, 6, 1.5) + for j, line in enumerate(out.split("\n")): + s += svg_text(720, y + 14 + j*16, line, 10, C_LAYER2_B, True) + # 从处理引擎到每个输出目标的箭头 + s += svg_arrow(540, 175, 620, y + 21, C_ARROW, 1.5, 10) + s += svg_text(W/2, 290, "五路数据流实时汇入 — 系统对全馆状态有「上帝视角」", 12, "#666") + save_svg_and_jpg(s, "18_x1_dataflow") + +# ═══════════════════════════════════════════════════════════════ +# 图19: X2跨系统同步 +# ═══════════════════════════════════════════════════════════════ +def gen_19_x2_sync(): + W, H = 700, 380 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "X2 成长护照 — 跨系统同步", 22, C_TITLE, True) + # 数据源 + sources = ["票务系统", "教研系统", "港澳专项", "数据中台", "线下终端"] + for i, src in enumerate(sources): + y = 70 + i * 45 + s += svg_rect(40, y, 160, 35, C_LAYER1, C_LAYER1_B, 8, 1.5) + s += svg_text(120, y + 18, src, 12, C_LAYER1_B, True) + # 从数据源到中心API的箭头 + s += svg_arrow(200, y + 17, 280, 200, C_ARROW, 1.5, 10) + # 中心 + s += svg_rect(280, 165, 200, 70, C_LAYER4, C_LAYER4_B, 10, 2) + s += svg_text(380, 190, "X2成长护照统一API", 13, C_LAYER4_B, True) + s += svg_text(380, 215, "GraphQL统一查询", 12, "#333") + # 输出 + s += svg_rect(520, 165, 140, 70, C_LAYER2, C_LAYER2_B, 10, 2) + s += svg_text(590, 190, "统一学习档案", 13, C_LAYER2_B, True) + s += svg_text(590, 215, "全生命周期", 12, "#333") + s += svg_arrow(480, 200, 520, 200, C_ARROW, 2, 14) + # 底部 + s += svg_text(W/2, 300, "从第一次预约到第90天行动成果,一个人的完整学习旅程在一本护照里", 12, "#666") + s += svg_text(W/2, 325, "对前端来说,所有数据来自一个「虚拟数据库」", 12, C_LAYER4_B, True) + s += svg_text(W/2, 355, "北极星指标可计算: 完成核心学习路径+理解验证+形成行动+产生反馈的完整闭环人数", 11, "#e65100") + save_svg_and_jpg(s, "19_x2_sync") + +# ═══════════════════════════════════════════════════════════════ +# 图20: X3审核工作流 +# ═══════════════════════════════════════════════════════════════ +def gen_20_x3_review(): + W, H = 700, 480 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "X3 权威内容治理中心 — 审核工作流", 20, C_TITLE, True) + steps = [ + ("内容创建/修改", C_LAYER6, C_LAYER6_B), + ("AI编审助手自动检查\n事实校验·来源检查·合规检查·版权检查", C_LAYER4, C_LAYER4_B), + ("编辑复审 (人工)", C_LAYER3, C_LAYER3_B), + ("专家终审 (关键内容)", C_SECURITY, C_SECURITY_B), + ("版本发布 (带版本号,可回滚)", C_LAYER2, C_LAYER2_B), + ("同步到: 展陈/云展馆/课程平台/全国节点", C_LAYER1, C_LAYER1_B), + ] + for i, (step, fill, stroke) in enumerate(steps): + y = 65 + i * 60 + s += svg_rect(100, y, W-200, 45, fill, stroke, 8, 2) + s += svg_text(W/2, y + 23, step, 12, stroke, True) + if i < len(steps) - 1: + s += svg_arrow_down(W/2, y + 45, y + 60, "#999", 2, 12) + # 底部 + s += svg_rect(50, 440, W-100, 30, C_HIGHLIGHT, "#f57f17", 6, 1.5) + s += svg_text(W/2, 456, "AI初审自动化把审核效率提升10倍,人工只做最关键的终审", 11, "#e65100", True) + save_svg_and_jpg(s, "20_x3_review_workflow") + +# ═══════════════════════════════════════════════════════════════ +# 图21: 网络安全架构 +# ═══════════════════════════════════════════════════════════════ +def gen_21_security(): + W, H = 700, 420 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "网络安全架构", 22, C_TITLE, True) + zones = [ + ("互联网", "WAF (Web应用防火墙)", C_SECURITY, C_SECURITY_B), + ("DMZ区", "负载均衡 + API网关", C_LAYER3, C_LAYER3_B), + ("应用区 (容器集群)", "微服务集群 (服务网格 + 自动扩缩容)", C_LAYER1, C_LAYER1_B), + ("数据区 (隔离)", "业务数据库 | 知识图谱 | 向量库 | 内容仓 | GPU推理集群", C_LAYER4, C_LAYER4_B), + ("设备区 (VLAN隔离)", "IoT/安防/VR/灯光音频 (独立VLAN)", C_LAYER6, C_LAYER6_B), + ] + for i, (zone, content, fill, stroke) in enumerate(zones): + y = 60 + i * 65 + s += svg_rect(50, y, W-100, 55, fill, stroke, 10, 2) + s += svg_text(180, y + 20, zone, 13, stroke, True) + s += svg_text(W/2, y + 40, content, 11, "#333") + if i < len(zones) - 1: + s += svg_arrow_down(W/2, y + 55, y + 65, "#999", 2, 12) + save_svg_and_jpg(s, "21_security_architecture") + +# ═══════════════════════════════════════════════════════════════ +# 图22: AI安全三层护栏 +# ═══════════════════════════════════════════════════════════════ +def gen_22_ai_guardrail(): + W, H = 600, 480 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "AI安全三层护栏", 22, C_TITLE, True) + # 用户输入 + s += svg_rect(200, 60, 200, 40, C_LAYER6, C_LAYER6_B, 8, 2) + s += svg_text(W/2, 80, "用户输入", 14, C_LAYER6_B, True) + s += svg_arrow_down(W/2, 100, 125, "#999", 2, 12) + # 第一层 + s += svg_rect(150, 125, 300, 50, C_SECURITY, C_SECURITY_B, 10, 2) + s += svg_text(W/2, 145, "第一层: 输入过滤", 13, C_SECURITY_B, True) + s += svg_text(W/2, 162, "拦截不当提问", 11, "#333") + s += svg_arrow_down(W/2, 175, 195, "#999", 2, 12) + # 第二层 + s += svg_rect(150, 195, 300, 50, C_SECURITY, C_SECURITY_B, 10, 2) + s += svg_text(W/2, 215, "第二层: 事实校验", 13, C_SECURITY_B, True) + s += svg_text(W/2, 232, "AI回答与知识图谱比对,发现错误则拦截", 11, "#333") + s += svg_arrow_down(W/2, 245, 265, "#999", 2, 12) + # 第三层 + s += svg_rect(150, 265, 300, 50, C_SECURITY, C_SECURITY_B, 10, 2) + s += svg_text(W/2, 285, "第三层: 输出过滤", 13, C_SECURITY_B, True) + s += svg_text(W/2, 302, "拦截不当表述", 11, "#333") + s += svg_arrow_down(W/2, 315, 335, "#999", 2, 12) + # 输出 + s += svg_rect(100, 335, 400, 50, C_LAYER2, C_LAYER2_B, 10, 2) + s += svg_text(W/2, 355, "安全回答 + 史料来源 + 审计日志", 13, C_LAYER2_B, True) + s += svg_text(W/2, 372, "100%不当内容拦截率", 11, "#333") + # 底部 + s += svg_text(W/2, 420, "NPC禁止模拟革命领袖发表新言论,仅复述已审核史料", 11, "#666") + s += svg_text(W/2, 445, "全部对话可审计追溯,支持质量回查", 11, "#666") + save_svg_and_jpg(s, "22_ai_guardrail") + +# ═══════════════════════════════════════════════════════════════ +# 图23: 多语言与多人群适配流程 +# ═══════════════════════════════════════════════════════════════ +def gen_23_multilang_flow(): + W, H = 520, 620 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "多语言与多人群适配流程", 20, C_TITLE, True) + steps = [ + ("用户提问(繁体中文)", C_LAYER6, C_LAYER6_B), + ("意图识别 + 人群类型判断(港澳中学生)", C_LAYER1, C_LAYER1_B), + ("RAG检索(史料库语义检索,召回相关文献)", C_LAYER4, C_LAYER4_B), + ("大模型生成(适配港澳中学生理解水平,繁体中文输出)", C_LAYER3, C_LAYER3_B), + ("安全护栏(事实校验 + 输出过滤)", C_SECURITY, C_SECURITY_B), + ("TTS语音合成(粤语发音可选)", C_LAYER2, C_LAYER2_B), + ("回答 + 史料来源 + 追问建议", C_LAYER5, C_LAYER5_B), + ] + bw = 420 + bh = 50 + x0 = (W - bw) // 2 + y0 = 55 + gap = 22 + for i, (step, fill, stroke) in enumerate(steps): + y = y0 + i * (bh + gap) + s += svg_rect(x0, y, bw, bh, fill, stroke, 10, 2) + s += svg_text(W/2, y + bh/2 + 5, step, 12, stroke, True) + if i < len(steps) - 1: + s += svg_arrow_down(W/2, y + bh, y + bh + gap, "#999", 2, 14) + s += svg_text(W/2, H - 20, "同一问题 · 不同人群 · 不同语言 · 不同深度", 11, "#666") + save_svg_and_jpg(s, "23_multilang_flow") + +# ═══════════════════════════════════════════════════════════════ +# 图24: X1体验编排引擎详细架构 +# ═══════════════════════════════════════════════════════════════ +def gen_24_x1_detail(): + W, H = 860, 680 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "X1 体验编排引擎 — 详细架构", 20, C_TITLE, True) + # 外框 + s += svg_rect(30, 50, W-60, H-70, "#fafafa", C_LAYER3_B, 12, 2) + # ── 输入区 ── + s += svg_text(60, 78, "输入", 14, C_LAYER3_B, True) + inputs = [ + ("用户路线", "来自可信叙事引擎"), + ("实时位置", "UWB定位 10Hz更新"), + ("实时客流", "摄像头+IoT传感器"), + ("设备状态", "监控系统"), + ] + iw = 180 + ih = 55 + ix0 = 50 + for i, (title, desc) in enumerate(inputs): + x = ix0 + i * (iw + 15) + s += svg_rect(x, 88, iw, ih, C_LAYER3, C_LAYER3_B, 8, 1.5) + s += svg_text(x + iw/2, 108, title, 12, C_LAYER3_B, True) + s += svg_text(x + iw/2, 128, desc, 10, "#666") + # 汇聚箭头 → 编排逻辑 + for i in range(4): + x = ix0 + i * (iw + 15) + iw/2 + s += svg_arrow(x, 143, W/2, 175, C_ARROW, 1.5, 10) + # ── 编排逻辑区 ── + s += svg_text(W/2, 168, "编排逻辑 (实时流式计算)", 14, "#e65100", True) + s += svg_rect(50, 175, W-100, 250, C_HIGHLIGHT, "#f57f17", 10, 2) + steps = [ + ("1. 用户进入区域", "匹配路线节点"), + ("2. 查询内容组件", "该节点对应的内容组件"), + ("3. 下发指令到设备", "屏幕/灯光/音频/AI终端/互动设备"), + ("4. 客流拥挤", "切换备选节点 → 重新下发指令"), + ] + sy = 190 + for i, (title, desc) in enumerate(steps): + y = sy + i * 55 + s += svg_rect(70, y, W-140, 42, "#fff", "#f57f17", 8, 1.5) + s += svg_text(90, y + 26, title, 12, "#e65100", True) + s += svg_text(280, y + 26, desc, 11, "#333") + if i < 3: + s += svg_arrow_down(W/2, y + 42, y + 55, "#f57f17", 1.5, 10) + # 设备指令细分 (第3步展开) + dev_cmds = ["屏幕: 播放对应内容", "灯光: 切换场景灯光", "音频: 播放对应导览", "AI终端: 加载讲解上下文", "互动设备: 激活对应任务"] + s += svg_text(W/2, 415, "第3步设备指令明细", 11, "#e65100", True) + dcw = 150 + for i, cmd in enumerate(dev_cmds): + x = 55 + i * (dcw + 5) + s += svg_rect(x, 425, dcw, 30, "#fff", "#f57f17", 6, 1) + s += svg_text(x + dcw/2, 444, cmd, 9, "#333") + # ── 输出区 ── + s += svg_arrow_down(W/2, 460, 475, C_ARROW, 2, 14) + s += svg_text(W/2, 470, "输出", 14, C_LAYER2_B, True) + outputs = [ + ("设备控制指令", "实时消息推送"), + ("用户学习记录", "写入成长护照"), + ("客流调度信号", "反馈智慧场馆"), + ] + ow = 220 + ox0 = (W - 3*ow - 2*20) // 2 + for i, (title, desc) in enumerate(outputs): + x = ox0 + i * (ow + 20) + s += svg_rect(x, 480, ow, 55, C_LAYER2, C_LAYER2_B, 8, 2) + s += svg_text(x + ow/2, 500, title, 12, C_LAYER2_B, True) + s += svg_text(x + ow/2, 520, desc, 10, "#666") + s += svg_text(W/2, H - 25, "实时事件驱动 · 毫秒级响应 · 同一空间千人千面", 12, C_LAYER3_B, True) + save_svg_and_jpg(s, "24_x1_detail") + +# ═══════════════════════════════════════════════════════════════ +# 图25: F3文物扫码体验流程 +# ═══════════════════════════════════════════════════════════════ +def gen_25_f3_scan_flow(): + W, H = 540, 660 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F3 文物扫码体验流程", 20, C_TITLE, True) + steps = [ + ("展柜前扫描二维码", C_LAYER6, C_LAYER6_B), + ("手机加载文物星图H5", C_LAYER1, C_LAYER1_B), + ("L1 看见: 3D模型 + 基本信息", C_LAYER6, C_LAYER6_B), + ("上滑 → L2 知道: 元数据卡片", C_LAYER1, C_LAYER1_B), + ("点击星图节点 → L3 理解: 关联网络可视化", C_LAYER2, C_LAYER2_B), + ('点击"深度研究" → L4 研究: 档案文献', C_LAYER3, C_LAYER3_B), + ('点击"相关课程" → L5 连接: 课程推荐', C_LAYER4, C_LAYER4_B), + ('点击"做一做" → 跳转F7行动选择', C_LAYER5, C_LAYER5_B), + ] + bw = 440 + bh = 48 + x0 = (W - bw) // 2 + y0 = 55 + gap = 26 + for i, (step, fill, stroke) in enumerate(steps): + y = y0 + i * (bh + gap) + s += svg_rect(x0, y, bw, bh, fill, stroke, 10, 2) + s += svg_text(W/2, y + bh/2 + 5, step, 12, stroke, True) + if i < len(steps) - 1: + s += svg_arrow_down(W/2, y + bh, y + bh + gap, "#999", 2, 14) + s += svg_text(W/2, H - 20, "一件文物 = 一个知识宇宙 · 从看见到行动", 11, "#666") + save_svg_and_jpg(s, "25_f3_scan_flow") + +# ═══════════════════════════════════════════════════════════════ +# 图26: F2情境任务剧场 VR/非VR双模式共享架构 +# ═══════════════════════════════════════════════════════════════ +def gen_26_f2_vr_share(): + W, H = 720, 560 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "F2 情境任务剧场 — VR/非VR双模式共享架构", 18, C_TITLE, True) + # 顶部: F2 + s += svg_rect(W/2-130, 50, 260, 45, C_LAYER3, C_LAYER3_B, 10, 2) + s += svg_text(W/2, 78, "F2 情境任务剧场", 15, C_LAYER3_B, True) + # 分叉箭头到两个模式 + s += svg_arrow(W/2, 95, W/2-160, 130, C_ARROW, 2, 12) + s += svg_arrow(W/2, 95, W/2+160, 130, C_ARROW, 2, 12) + # 左: 非VR模式 + s += svg_rect(60, 130, 280, 160, C_LAYER1, C_LAYER1_B, 10, 2) + s += svg_text(200, 155, "非VR模式", 14, C_LAYER1_B, True) + non_vr = ["多屏互动终端", "AI复盘"] + for i, item in enumerate(non_vr): + s += svg_rect(90, 170+i*50, 220, 38, "#fff", C_LAYER1_B, 8, 1.5) + s += svg_text(200, 193+i*50, item, 12, "#333") + # 右: VR模式 + s += svg_rect(380, 130, 280, 160, C_VR, C_VR_B, 10, 2) + s += svg_text(520, 155, "VR模式", 14, C_VR_B, True) + vr_items = ["沉浸场景", "体感设备", "多人协同", "AI复盘"] + for i, item in enumerate(vr_items): + s += svg_rect(410, 170+i*32, 220, 26, "#fff", C_VR_B, 6, 1.2) + s += svg_text(520, 188+i*32, item, 11, "#333") + # 汇聚箭头到共享层 + s += svg_arrow(200, 290, W/2, 330, C_ARROW, 2, 12) + s += svg_arrow(520, 290, W/2, 330, C_ARROW, 2, 12) + # 共享层 + s += svg_rect(80, 330, W-160, 200, C_LAYER5, C_LAYER5_B, 10, 2) + s += svg_text(W/2, 358, "共享层", 14, C_LAYER5_B, True) + shared = [ + "同一任务定义", + "同一证据集(从知识图谱检索)", + "同一历史事实揭示", + "同一AI学习教练复盘", + "同一成长护照记录", + ] + for i, item in enumerate(shared): + y = 375 + i * 28 + s += svg_rect(120, y, W-240, 22, "#fff", C_LAYER5_B, 6, 1) + s += svg_text(W/2, y+15, item, 11, "#333") + s += svg_text(W/2, H - 20, "不同体验通道 · 同一学习内核", 12, C_LAYER5_B, True) + save_svg_and_jpg(s, "26_f2_vr_share") + +# ═══════════════════════════════════════════════════════════════ +# 图27: VR体验全流程 +# ═══════════════════════════════════════════════════════════════ +def gen_27_vr_experience_flow(): + W, H = 720, 780 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "VR 体验全流程", 20, C_TITLE, True) + phases = [ + ("排队区(3分钟)", C_LAYER6, C_LAYER6_B, [ + "观看历史背景视频", + "查看分配到的角色和资源约束", + "学习VR手柄操作和交互方式", + "了解安全须知和紧急退出方法", + "查看排队位置和预计等待时间", + ]), + ("进入VR工位", C_LAYER1, C_LAYER1_B, [ + "佩戴VR头显 + 触觉背心", + "系统加载场景(按人群类型适配内容)", + "4人同步进入同一历史场景", + ]), + ("沉浸体验(8-15分钟)", C_VR, C_VR_B, [ + "在虚拟场景中执行任务", + "抓取文物、查看证据", + "与AI NPC对话(可提问,NPC用史料回答)", + "4人语音讨论 + 手势交互", + "体感设备同步场景事件", + "团队做出决策", + ]), + ("退出VR", C_LAYER5, C_LAYER5_B, [ + "AI复盘(学习教练分析方案vs历史)", + "现实连接问题", + "学习记录写入成长护照", + "设备复位 + 消毒(3分钟)", + ]), + ] + pw = 560 + x0 = (W - pw) // 2 + y = 55 + for pi, (title, fill, stroke, items) in enumerate(phases): + ph = 40 + len(items) * 26 + 10 + s += svg_rect(x0, y, pw, ph, fill, stroke, 10, 2) + s += svg_rect(x0, y, pw, 32, fill, stroke, 10, 2) + s += svg_text(W/2, y + 21, title, 14, stroke, True) + for i, item in enumerate(items): + iy = y + 42 + i * 26 + s += svg_text(x0 + 20, iy + 16, "• " + item, 11, "#333") + y += ph + if pi < len(phases) - 1: + s += svg_arrow_down(W/2, y, y + 20, C_ARROW, 2, 14) + y += 20 + s += svg_text(W/2, H - 18, "从排队到离场 · 全流程数据记录 · 无缝衔接成长护照", 11, "#666") + save_svg_and_jpg(s, "27_vr_experience_flow") + +# ═══════════════════════════════════════════════════════════════ +# 图28: 最小可行原型组成 +# ═══════════════════════════════════════════════════════════════ +def gen_28_mvp(): + W, H = 860, 420 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "最小可行原型 (MVP)", 20, C_TITLE, True) + # 左侧: 最小原型标签 + s += svg_rect(40, 140, 130, 140, C_LAYER3, C_LAYER3_B, 10, 2) + s += svg_text(105, 195, "最小原型", 16, C_LAYER3_B, True) + s += svg_text(105, 220, "MVP", 13, C_LAYER3_B) + s += svg_text(105, 250, "6个核心模块", 10, "#666") + # 等号 + s += svg_text(195, 210, "=", 28, C_LAYER3_B, True) + # 6个组件 (2行×3列) + comps = [ + ("文物3D展示", "1件", C_LAYER6, C_LAYER6_B), + ("情境任务", "1个", C_LAYER1, C_LAYER1_B), + ("AI问答入口", "1个", C_LAYER4, C_LAYER4_B), + ("成长护照H5", "1个", C_LAYER2, C_LAYER2_B), + ("行动选择页", "1个", C_LAYER5, C_LAYER5_B), + ("30天回访推送", "1个", C_VR, C_VR_B), + ] + cw = 175 + ch = 80 + cx0 = 235 + cy0 = 100 + gap_x = 20 + gap_y = 30 + for i, (title, qty, fill, stroke) in enumerate(comps): + col = i % 3 + row = i // 3 + x = cx0 + col * (cw + gap_x) + y = cy0 + row * (ch + gap_y) + s += svg_rect(x, y, cw, ch, fill, stroke, 10, 2) + s += svg_text(x + cw/2, y + 28, qty, 12, stroke, True) + s += svg_text(x + cw/2, y + 55, title, 14, stroke, True) + # + 号连接 (同行内) + if col < 2: + s += svg_text(x + cw + gap_x/2 - 5, y + ch/2 + 5, "+", 20, "#999", True) + # 第一行末到第二行首的连接箭头 + if i == 2: + s += svg_arrow(x + cw/2, y + ch, x + cw/2, y + ch + 10, "#999", 1.5, 10) + s += svg_arrow(x + cw/2, y + ch + 10, cx0 + cw/2, y + ch + gap_y, "#999", 1.5, 10) + s += svg_text(x + cw/2 + 15, y + ch + 12, "+", 16, "#999", True) + # 底部说明 + s += svg_text(W/2, H - 25, "6个模块 = 1条完整体验链路 · 从看到文物到行动反馈", 12, "#666") + save_svg_and_jpg(s, "28_mvp") + +# ═══════════════════════════════════════════════════════════════ +# 图29: MVP用户体验流程 +# ═══════════════════════════════════════════════════════════════ +def gen_29_mvp_flow(): + W, H = 860, 580 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "MVP 用户体验流程", 20, C_TITLE, True) + steps = [ + ("触屏终端开始", "用户入场", C_LAYER6, C_LAYER6_B), + ("查看文物3D模型", "可旋转缩放", C_LAYER1, C_LAYER1_B), + ("参与情境任务", "阅读证据 → 团队讨论 → 提交方案 → 历史揭示 → AI复盘", C_LAYER4, C_LAYER4_B), + ("向AI提问", "获得带史料引用的回答", C_LAYER3, C_LAYER3_B), + ("打开手机H5查看成长护照", "离馆后继续", C_LAYER2, C_LAYER2_B), + ("选择一个行动方向", "F7现实行动", C_LAYER5, C_LAYER5_B), + ("30天后收到微信推送", "提交行动反馈", C_VR, C_VR_B), + ] + bw = 680 + bh = 52 + x0 = (W - bw) // 2 + y0 = 55 + gap = 22 + for i, (title, desc, fill, stroke) in enumerate(steps): + y = y0 + i * (bh + gap) + s += svg_rect(x0, y, bw, bh, fill, stroke, 10, 2) + s += svg_text(x0 + 30, y + bh/2 + 5, title, 13, stroke, True) + s += svg_text(x0 + bw - 20, y + bh/2 + 5, desc, 11, "#666") + if i < len(steps) - 1: + s += svg_arrow_down(W/2, y + bh, y + bh + gap, C_ARROW, 2, 14) + s += svg_text(W/2, H - 18, "从入场到离馆后30天 · 一条完整的体验闭环", 11, "#666") + save_svg_and_jpg(s, "29_mvp_flow") + +# ═══════════════════════════════════════════════════════════════ +# 图30: MVP原型部署方案 +# ═══════════════════════════════════════════════════════════════ +def gen_30_mvp_deploy(): + W, H = 760, 460 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "MVP 原型部署方案", 20, C_TITLE, True) + s += svg_text(W/2, 55, "单服务器部署(原型阶段)", 13, "#666") + # 外框 + s += svg_rect(40, 75, W-80, 340, "#fafafa", C_LAYER6_B, 12, 2) + servers = [ + ("GPU服务器", "×1台", "AI推理 + 向量检索", C_LAYER3, C_LAYER3_B), + ("应用服务器", "×1台", "业务服务 + 缓存", C_LAYER1, C_LAYER1_B), + ("前端服务器", "×1台", "3D展示 + 小程序后端", C_LAYER4, C_LAYER4_B), + ("互动终端", "×1台", "情境任务 + AI问答界面", C_LAYER2, C_LAYER2_B), + ] + bw = 300 + bh = 60 + x0 = (W - bw) // 2 + y0 = 95 + gap = 20 + for i, (name, qty, desc, fill, stroke) in enumerate(servers): + y = y0 + i * (bh + gap) + s += svg_rect(x0, y, bw, bh, fill, stroke, 10, 2) + s += svg_text(x0 + 20, y + 25, name, 14, stroke, True) + s += svg_text(x0 + bw - 20, y + 25, qty, 12, stroke, True) + s += svg_text(x0 + 20, y + 48, desc, 11, "#333") + if i < len(servers) - 1: + s += svg_arrow_down(W/2, y + bh, y + bh + gap, "#bbb", 1.5, 10) + s += svg_text(W/2, H - 20, "4台设备 · 最小成本验证完整体验闭环", 12, C_LAYER6_B, True) + save_svg_and_jpg(s, "30_mvp_deploy") + +# ═══════════════════════════════════════════════════════════════ +# 图31: 核心体验闭环 +# ═══════════════════════════════════════════════════════════════ +def gen_31_core_loop(): + import math as _m + W, H = 760, 560 + s = svg_header(W, H) + s += f'' + s += svg_text(W/2, 30, "核心体验闭环", 20, C_TITLE, True) + stages = [ + ("提问", "参观前选择学习问题\nAI全程可问答", C_LAYER3, C_LAYER3_B), + ("体验", "自适应路线 + 沉浸VR\n情境任务 + 文物星图", C_VR, C_VR_B), + ("理解", "AI复盘 + 理解表达\n离馆报告", C_LAYER4, C_LAYER4_B), + ("行动", "行动选择\n7/30/90天跟踪", C_LAYER2, C_LAYER2_B), + ("反馈", "进展提交 + 成果回流\n优秀案例入库", C_LAYER5, C_LAYER5_B), + ("再传播", "青年共创 + 云展馆\n全国节点复制", C_LAYER1, C_LAYER1_B), + ] + n = len(stages) + cx, cy = W/2, 310 + r = 180 + bw, bh = 130, 60 + # 计算每个节点的位置 + pts = [] + for i in range(n): + angle = -_m.pi/2 + i * 2 * _m.pi / n # 从顶部开始顺时针 + x = cx + r * _m.cos(angle) + y = cy + r * _m.sin(angle) + pts.append((x, y, angle)) + # 先画弧形箭头连接 (相邻节点之间) + for i in range(n): + x1, y1, a1 = pts[i] + x2, y2, a2 = pts[(i+1) % n] + # 在圆弧上取中点偏移,画弧线 + mid_angle = (a1 + a2) / 2 if i < n-1 else (a1 + a2 + 2*_m.pi) / 2 + arc_r = r - 5 + mx = cx + arc_r * _m.cos(mid_angle) + my = cy + arc_r * _m.sin(mid_angle) + # 画曲线箭头 + s += f'' + # 箭头头在终点 + da = mid_angle - a2 if i < n-1 else mid_angle - a2 + 2*_m.pi + bx = x2 - 12 * _m.cos(a2 + _m.pi/2) + by = y2 - 12 * _m.sin(a2 + _m.pi/2) + s += svg_arrow(bx, by, x2, y2, C_ARROW, 2, 12) + # 画节点框和文字 (覆盖在线之上) + for i, (title, desc, fill, stroke) in enumerate(stages): + x, y, angle = pts[i] + rx = x - bw/2 + ry = y - bh/2 + s += svg_rect(rx, ry, bw, bh, fill, stroke, 10, 2) + s += svg_text(x, y - 5, title, 15, stroke, True) + # desc 多行 + lines = desc.split("\\n") + for j, line in enumerate(lines): + s += svg_text(x, y + 15 + j*14, line, 9, "#333") + # 中心文字 + s += svg_text(cx, cy - 5, "核心体验", 16, C_TITLE, True) + s += svg_text(cx, cy + 15, "闭环", 16, C_TITLE, True) + s += svg_text(cx, cy + 35, "一件文物 → 一次行动", 10, "#999") + save_svg_and_jpg(s, "31_core_loop") + +# ═══════════════════════════════════════════════════════════════ +# 主程序 +# ═══════════════════════════════════════════════════════════════ +if __name__ == "__main__": + print("开始生成SVG → JPG...") + gen_01_six_layer() + gen_02_deployment() + gen_03_ai_engine() + gen_04_narrative_engine() + gen_05_growth_engine() + gen_06_replication_engine() + gen_07_f1_x1() + gen_08_f2_task() + gen_09_f3_artifact() + gen_10_f4_passport() + gen_11_f5_cloud() + gen_12_f6_cocreation() + gen_13_f7_action() + gen_14_f8_nodes() + gen_15_vr_architecture() + gen_16_vr_multiplayer() + gen_17_vr_cloud_streaming() + gen_18_x1_dataflow() + gen_19_x2_sync() + gen_20_x3_review() + gen_21_security() + gen_22_ai_guardrail() + gen_23_multilang_flow() + gen_24_x1_detail() + gen_25_f3_scan_flow() + gen_26_f2_vr_share() + gen_27_vr_experience_flow() + gen_28_mvp() + gen_29_mvp_flow() + gen_30_mvp_deploy() + gen_31_core_loop() + print(f"\n全部完成! 共生成31张JPG,保存在: {OUTPUT_DIR}") diff --git a/images/01_six_layer_architecture.jpg b/images/01_six_layer_architecture.jpg new file mode 100644 index 0000000..053e6a3 Binary files /dev/null and b/images/01_six_layer_architecture.jpg differ diff --git a/images/01_six_layer_architecture.svg b/images/01_six_layer_architecture.svg new file mode 100644 index 0000000..18d4f28 --- /dev/null +++ b/images/01_six_layer_architecture.svg @@ -0,0 +1,2 @@ +六层技术架构用户触达层线下终端(触屏/VR/环幕/UWB/RFID) | 线上(Web/小程序/H5) | 节点终端应用服务层F1自适应叙事 F2情境任务 F3文物数字生命 F4成长护照 F5云上共同体 F6青年共创 F7行动实验室 F8星火节点公共平台层X1体验编排引擎 X2成长护照档案 X3内容治理中心 S9节点协同AI能力层可信叙事引擎 学习成长引擎 编审助手引擎 策展助手引擎数据资产层知识图谱 向量检索库 内容资源仓 业务数据库 时序分析库 实时缓存 消息总线基础设施层私有云容器编排 GPU推理集群 5G专网 IoT网关 CDN 安防网络 + \ No newline at end of file diff --git a/images/02_deployment_topology.jpg b/images/02_deployment_topology.jpg new file mode 100644 index 0000000..bc7972a Binary files /dev/null and b/images/02_deployment_topology.jpg differ diff --git a/images/02_deployment_topology.svg b/images/02_deployment_topology.svg new file mode 100644 index 0000000..8a6b96d --- /dev/null +++ b/images/02_deployment_topology.svg @@ -0,0 +1,4 @@ +系统部署拓扑公网入口 WAF + 负载均衡线上云区 (公有云)Web/小程序API网关CDN节点港澳加速线下场馆区 (私有云)AI推理GPU集群容器集群数据库集群知识图谱+向量库VPN专线互联IoT/安防/VR +设备网络 (VLAN隔离)全国星火节点 +(远程组件包分发)AI推理+核心数据部署在场馆私有云,保证安全与低延迟Web/小程序/云展馆部署在公有云,CDN加速港澳访问全国节点通过S9节点协同系统远程部署,断网不失能 + \ No newline at end of file diff --git a/images/03_ai_knowledge_engine.jpg b/images/03_ai_knowledge_engine.jpg new file mode 100644 index 0000000..fd51eb3 Binary files /dev/null and b/images/03_ai_knowledge_engine.jpg differ diff --git a/images/03_ai_knowledge_engine.svg b/images/03_ai_knowledge_engine.svg new file mode 100644 index 0000000..198bb57 --- /dev/null +++ b/images/03_ai_knowledge_engine.svg @@ -0,0 +1,2 @@ +AI可信知识引擎架构知识图谱事件/人物/文物/概念/地点及关系史实锚点交叉验证RAG检索增强用户提问 → 语义检索 → 召回史料 → 生成回答读史料后回答非凭记忆回答大模型微调延安精神专属语料 → LoRA微调 → 人群适配懂延安·懂党史·懂教育安全护栏层输入过滤事实校验输出过滤审计追溯 + \ No newline at end of file diff --git a/images/04_narrative_engine.jpg b/images/04_narrative_engine.jpg new file mode 100644 index 0000000..cc3ed9b Binary files /dev/null and b/images/04_narrative_engine.jpg differ diff --git a/images/04_narrative_engine.svg b/images/04_narrative_engine.svg new file mode 100644 index 0000000..727f7ff --- /dev/null +++ b/images/04_narrative_engine.svg @@ -0,0 +1,2 @@ +可信叙事引擎内容组件仓库已审核的文字片段影像素材3D模型互动任务AI讲解词每个组件标注: 适用人群/时长/审核状态叙事路线算法输入: 人群类型 + 学习问题 可用时长 + 语言偏好 实时客流状态输出: 节点序列 + 每节点内容 适配方案 + 时长估算关键原则: 不生成新内容,只编排已审核组件 — 像乐高积木一样编排同一空间千人千面: 小学生看动画+游戏 | 党员干部看文献+分析 | 港澳青年看繁体+湾区视角 + \ No newline at end of file diff --git a/images/05_growth_engine.jpg b/images/05_growth_engine.jpg new file mode 100644 index 0000000..f9c4087 Binary files /dev/null and b/images/05_growth_engine.jpg differ diff --git a/images/05_growth_engine.svg b/images/05_growth_engine.svg new file mode 100644 index 0000000..86d841e --- /dev/null +++ b/images/05_growth_engine.svg @@ -0,0 +1,2 @@ +学习成长引擎参观前导学人群选择问题选择路线生成导学推送参观中记录UWB自动记录位置任务完成记录AI问答记录理解表达记录离馆后回访第7天回顾推送第30天进展反馈第90天成果提交行动评估+案例入库统一成长档案 (X2护照)跨系统同步 · 全程陪伴 · 闭环追踪 · 北极星指标可计算 + \ No newline at end of file diff --git a/images/06_replication_engine.jpg b/images/06_replication_engine.jpg new file mode 100644 index 0000000..7f7716e Binary files /dev/null and b/images/06_replication_engine.jpg differ diff --git a/images/06_replication_engine.svg b/images/06_replication_engine.svg new file mode 100644 index 0000000..442ae45 --- /dev/null +++ b/images/06_replication_engine.svg @@ -0,0 +1,2 @@ +复制运营引擎L4 旗舰中心 (13000㎡)权威内容生产 → 组件包打包 → 版本发布全国节点调度 → 远程监控 → 数据回收组件包分发L1 微节点一体机即开即用定期WiFi同步L2 标准节点7天部署本地AI推理VR串流L3 城市节点独立运营本地服务器内容本地化L4 旗舰中心全量系统内容生产全国调度组件包: 知识图谱子集 + 史料向量 + 课程 + 任务剧本 + VR场景 + 运营SOP断网不失能: 各节点本地有AI推理和内容缓存,网络恢复后自动同步内容可回流: 各节点优秀作品可提交旗舰中心审核后全国共享 + \ No newline at end of file diff --git a/images/07_f1_x1_orchestration.jpg b/images/07_f1_x1_orchestration.jpg new file mode 100644 index 0000000..4d2032c Binary files /dev/null and b/images/07_f1_x1_orchestration.jpg differ diff --git a/images/07_f1_x1_orchestration.svg b/images/07_f1_x1_orchestration.svg new file mode 100644 index 0000000..99c122f --- /dev/null +++ b/images/07_f1_x1_orchestration.svg @@ -0,0 +1,2 @@ +F1自适应叙事空间 + X1体验编排引擎F1 自适应叙事空间系统入馆选择终端人群类型/学习问题可用时长/语言空间联动控制屏幕/灯光/音频AI/互动设备学习脉络生成路线节点/文物任务/AI问答/报告X1全场景体验编排引擎输入用户路线UWB实时位置(10Hz)实时客流设备状态实时流式计算 (CEP)复杂事件处理引擎毫秒级复合条件判断规则 + AI编排决策输出设备控制指令用户学习记录客流调度信号六类设备统一编排LED屏幕灯光系统音频系统VR设备互动终端AI数字人UWB厘米级室内定位 + 复杂事件处理 + 像指挥家指挥交响乐同一物理空间,数字内容随人而变 + \ No newline at end of file diff --git a/images/08_f2_task_theater.jpg b/images/08_f2_task_theater.jpg new file mode 100644 index 0000000..c25f84d Binary files /dev/null and b/images/08_f2_task_theater.jpg differ diff --git a/images/08_f2_task_theater.svg b/images/08_f2_task_theater.svg new file mode 100644 index 0000000..469903b --- /dev/null +++ b/images/08_f2_task_theater.svg @@ -0,0 +1,2 @@ +F2 情境任务剧场系统任务引擎任务定义: 历史问题角色分配/资源约束证据集/历史事实评价维度状态机驱动(9状态)团队协作终端主屏: 情境展示分屏: 证据查看个人终端: 决策团队屏: 方案汇总VR模式: 虚拟窑洞讨论AI复盘引擎团队方案 vs 历史AI追问(史料引用)证据使用分析现实连接问题像历史导师一对一VR与非VR双模式共享同一剧本: 同一任务定义/证据集/历史揭示/AI复盘/护照记录 + \ No newline at end of file diff --git a/images/09_f3_artifact_life.jpg b/images/09_f3_artifact_life.jpg new file mode 100644 index 0000000..a9275fa Binary files /dev/null and b/images/09_f3_artifact_life.jpg differ diff --git a/images/09_f3_artifact_life.svg b/images/09_f3_artifact_life.svg new file mode 100644 index 0000000..6cdcb87 --- /dev/null +++ b/images/09_f3_artifact_life.svg @@ -0,0 +1,2 @@ +F3 文物数字生命系统数字采集管理3D扫描任务摄影测量任务质量检测元数据录入五层内容管理L1看见: 图像/3DL2知道: 元数据L3理解: 关联网络L4研究: 档案L5连接: 课程/任务关系星图引擎力导向图渲染交互式星图时间轴点击节点展开一件文物 = 一个知识宇宙看见知道理解研究连接推测性复原标识: 有争议部分用不同颜色边框区分「史实确认」和「推测复原」 + \ No newline at end of file diff --git a/images/10_f4_growth_passport.jpg b/images/10_f4_growth_passport.jpg new file mode 100644 index 0000000..13c87e6 Binary files /dev/null and b/images/10_f4_growth_passport.jpg differ diff --git a/images/10_f4_growth_passport.svg b/images/10_f4_growth_passport.svg new file mode 100644 index 0000000..d64cf97 --- /dev/null +++ b/images/10_f4_growth_passport.svg @@ -0,0 +1,2 @@ +F4 成长护照系统参观前导学人群/问题选择团队目标创建参观建议生成导学材料推送参观中记录文物查看记录任务完成记录AI问答记录理解表达记录行动选择记录离馆后回访第7天推送回顾第30天进展反馈第90天成果提交后续课程推荐X2 统一成长档案 — 跨系统数据同步 · GraphQL统一查询隐私保护是设计底线: 禁止采集人脸特征/情绪识别/政治倾向推断 + \ No newline at end of file diff --git a/images/11_f5_cloud_community.jpg b/images/11_f5_cloud_community.jpg new file mode 100644 index 0000000..b02d100 Binary files /dev/null and b/images/11_f5_cloud_community.jpg differ diff --git a/images/11_f5_cloud_community.svg b/images/11_f5_cloud_community.svg new file mode 100644 index 0000000..8b7d97b --- /dev/null +++ b/images/11_f5_cloud_community.svg @@ -0,0 +1,2 @@ +F5 云上学习共同体Web3D云展馆3D渲染引擎虚拟漫游AI导览文物3D展示云端课程平台视频点播/直播课程管理学时记录证书发放协作任务平台实时音视频协作多人同堂任务粤港澳三地同步在线研讨室四种访问模式8分钟精华轻量H5一节课模式视频+互动协作任务模式实时协作+白板深度研究模式文献检索+图谱三档渲染自适应: 高端(WebGPU+PBR) → 轻量(WebGL+减面) → 极简(全景图片热点) + \ No newline at end of file diff --git a/images/12_f6_cocreation.jpg b/images/12_f6_cocreation.jpg new file mode 100644 index 0000000..87f63f0 Binary files /dev/null and b/images/12_f6_cocreation.jpg differ diff --git a/images/12_f6_cocreation.svg b/images/12_f6_cocreation.svg new file mode 100644 index 0000000..05eb6d5 --- /dev/null +++ b/images/12_f6_cocreation.svg @@ -0,0 +1,2 @@ +F6 湾区青年共创平台共创项目管理年度主题发布混合小组组建专家工作坊预约进度跟踪资源库访问AI辅助创作工具集AI辅助写作(标注)AI辅助绘画短视频编辑声音档案录制互动网页制作三级审核与展示AI编审自动检查编辑复审(人工)专家终审线上专区展示优秀作品入临展AI编审四项自动检查: 史实校验 + 来源完整性 + 版权合规 + 政治合规AI是工具不是作者,人的创造力是核心 — 所有AI生成内容强制标注 + \ No newline at end of file diff --git a/images/13_f7_action_lab.jpg b/images/13_f7_action_lab.jpg new file mode 100644 index 0000000..cdcef00 Binary files /dev/null and b/images/13_f7_action_lab.jpg differ diff --git a/images/13_f7_action_lab.svg b/images/13_f7_action_lab.svg new file mode 100644 index 0000000..7648b60 --- /dev/null +++ b/images/13_f7_action_lab.svg @@ -0,0 +1,2 @@ +F7 现实行动实验室行动选择终端行动方向展示智能推荐(基于参观记录)行动模板选择自定义行动团队行动创建行动跟踪系统行动卡片生成7/30/90天跟踪进展提醒推送反馈表单成果回流系统成果提交入口成果墙展示课程案例转化年度优秀评选把「一次性参观」变成「持续性行动」 — 优秀成果成为系统内容资产三类行动: 个人7天(实事求是调查员) | 团队30天(南泥湾式创新) | 湾区90天(红色故事传播者) + \ No newline at end of file diff --git a/images/14_f8_spark_nodes.jpg b/images/14_f8_spark_nodes.jpg new file mode 100644 index 0000000..5331439 Binary files /dev/null and b/images/14_f8_spark_nodes.jpg differ diff --git a/images/14_f8_spark_nodes.svg b/images/14_f8_spark_nodes.svg new file mode 100644 index 0000000..9767e92 --- /dev/null +++ b/images/14_f8_spark_nodes.svg @@ -0,0 +1,2 @@ +F8 星火节点全国复制网络L4 旗舰中心13000㎡完整私有云 + GPU集群完整知识图谱+向量库+内容仓全国节点调度中心权威内容生产与发布L3 城市节点院校/区县基地本地服务器 + 完整展陈知识图谱子集 + 向量库子集独立运营 + 数据上报云端连线能力L2 标准节点高校/企事业单位触屏终端 + 边缘AI + VR本地内容缓存 + 云端AI增强成长护照接入7天标准化部署L1 微节点一体机一块触屏交互一体机离线内容包 + AI轻量版定期WiFi/4G同步更新组件包标准化分发 — 像App Store更新一样简单 + \ No newline at end of file diff --git a/images/15_vr_xr_architecture.jpg b/images/15_vr_xr_architecture.jpg new file mode 100644 index 0000000..ad8ed2b Binary files /dev/null and b/images/15_vr_xr_architecture.jpg differ diff --git a/images/15_vr_xr_architecture.svg b/images/15_vr_xr_architecture.svg new file mode 100644 index 0000000..bc4af6a --- /dev/null +++ b/images/15_vr_xr_architecture.svg @@ -0,0 +1,2 @@ +VR/XR 沉浸体验系统架构内容生产层Unity场景工程3D资产管线交互逻辑脚本AI NPC驱动场景烘焙渲染运行时引擎场景管理器多人同步引擎编排对接层安全监控守护性能监控设备与体感层VR头显(Pico/Meta)6DOF动态座椅手部追踪触觉反馈背心风效/热效/气味Unity + XR Interaction Toolkit — 一次开发多设备运行 | 6DOF体感+五感同步沉浸 + \ No newline at end of file diff --git a/images/16_vr_multiplayer.jpg b/images/16_vr_multiplayer.jpg new file mode 100644 index 0000000..a003826 Binary files /dev/null and b/images/16_vr_multiplayer.jpg differ diff --git a/images/16_vr_multiplayer.svg b/images/16_vr_multiplayer.svg new file mode 100644 index 0000000..8358a18 --- /dev/null +++ b/images/16_vr_multiplayer.svg @@ -0,0 +1,2 @@ +多人协同VR架构VR座位1(队长)VR座位2(队员)VR座位3(队员)VR座位4(队员)状态同步服务器Photon Fusion — 头像/手部/任务进度实时同步房间管理服务 — 4人同场,场次调度X1编排引擎 — 任务剧本推送技术亮点• Photon Fusion状态同步: 4人虚拟化身和手势实时可见• 角色与F2任务对应: 各有专属资源和约束,真正的团队协作• VR内AI NPC: 由AI可信知识引擎驱动,可对话的AI角色 + \ No newline at end of file diff --git a/images/17_vr_cloud_streaming.jpg b/images/17_vr_cloud_streaming.jpg new file mode 100644 index 0000000..ee52ca3 Binary files /dev/null and b/images/17_vr_cloud_streaming.jpg differ diff --git a/images/17_vr_cloud_streaming.svg b/images/17_vr_cloud_streaming.svg new file mode 100644 index 0000000..9ebba68 --- /dev/null +++ b/images/17_vr_cloud_streaming.svg @@ -0,0 +1,2 @@ +云端VR串流方案L2/L3节点 (轻量硬件)VR头显WiFi/5G传输解码显示手柄/头显数据视频流音频流输入流H.265超低延迟传输旗舰中心/区域云端 (GPU集群)云端渲染服务器Unity应用实例串流编码H.265超低延迟传输四种方案对比CloudXR15-30msL3城市节点ALVR开源20-40msL2标准节点本地渲染<10msL4旗舰中心WebXR30-80msF5云展馆 + \ No newline at end of file diff --git a/images/18_x1_dataflow.jpg b/images/18_x1_dataflow.jpg new file mode 100644 index 0000000..480db58 Binary files /dev/null and b/images/18_x1_dataflow.jpg differ diff --git a/images/18_x1_dataflow.svg b/images/18_x1_dataflow.svg new file mode 100644 index 0000000..91d7f54 --- /dev/null +++ b/images/18_x1_dataflow.svg @@ -0,0 +1,2 @@ +X1体验编排引擎 — 数据流事件源UWB位置流 (10Hz)客流计数 (实时)设备状态 (实时)用户路线 (API)任务状态 (API)实时流式计算复杂事件处理(CEP)规则 + AI编排决策输出目标设备控制指令(实时消息推送)用户学习记录(写入成长护照)客流调度信号(反馈智慧场馆)五路数据流实时汇入 — 系统对全馆状态有「上帝视角」 + \ No newline at end of file diff --git a/images/19_x2_sync.jpg b/images/19_x2_sync.jpg new file mode 100644 index 0000000..079751b Binary files /dev/null and b/images/19_x2_sync.jpg differ diff --git a/images/19_x2_sync.svg b/images/19_x2_sync.svg new file mode 100644 index 0000000..f24ce10 --- /dev/null +++ b/images/19_x2_sync.svg @@ -0,0 +1,2 @@ +X2 成长护照 — 跨系统同步票务系统教研系统港澳专项数据中台线下终端X2成长护照统一APIGraphQL统一查询统一学习档案全生命周期从第一次预约到第90天行动成果,一个人的完整学习旅程在一本护照里对前端来说,所有数据来自一个「虚拟数据库」北极星指标可计算: 完成核心学习路径+理解验证+形成行动+产生反馈的完整闭环人数 + \ No newline at end of file diff --git a/images/20_x3_review_workflow.jpg b/images/20_x3_review_workflow.jpg new file mode 100644 index 0000000..307cf6f Binary files /dev/null and b/images/20_x3_review_workflow.jpg differ diff --git a/images/20_x3_review_workflow.svg b/images/20_x3_review_workflow.svg new file mode 100644 index 0000000..8724f93 --- /dev/null +++ b/images/20_x3_review_workflow.svg @@ -0,0 +1,3 @@ +X3 权威内容治理中心 — 审核工作流内容创建/修改AI编审助手自动检查 +事实校验·来源检查·合规检查·版权检查编辑复审 (人工)专家终审 (关键内容)版本发布 (带版本号,可回滚)同步到: 展陈/云展馆/课程平台/全国节点AI初审自动化把审核效率提升10倍,人工只做最关键的终审 + \ No newline at end of file diff --git a/images/21_security_architecture.jpg b/images/21_security_architecture.jpg new file mode 100644 index 0000000..c986354 Binary files /dev/null and b/images/21_security_architecture.jpg differ diff --git a/images/21_security_architecture.svg b/images/21_security_architecture.svg new file mode 100644 index 0000000..257a0ca --- /dev/null +++ b/images/21_security_architecture.svg @@ -0,0 +1,2 @@ +网络安全架构互联网WAF (Web应用防火墙)DMZ区负载均衡 + API网关应用区 (容器集群)微服务集群 (服务网格 + 自动扩缩容)数据区 (隔离)业务数据库 | 知识图谱 | 向量库 | 内容仓 | GPU推理集群设备区 (VLAN隔离)IoT/安防/VR/灯光音频 (独立VLAN) + \ No newline at end of file diff --git a/images/22_ai_guardrail.jpg b/images/22_ai_guardrail.jpg new file mode 100644 index 0000000..db85710 Binary files /dev/null and b/images/22_ai_guardrail.jpg differ diff --git a/images/22_ai_guardrail.svg b/images/22_ai_guardrail.svg new file mode 100644 index 0000000..005f45f --- /dev/null +++ b/images/22_ai_guardrail.svg @@ -0,0 +1,2 @@ +AI安全三层护栏用户输入第一层: 输入过滤拦截不当提问第二层: 事实校验AI回答与知识图谱比对,发现错误则拦截第三层: 输出过滤拦截不当表述安全回答 + 史料来源 + 审计日志100%不当内容拦截率NPC禁止模拟革命领袖发表新言论,仅复述已审核史料全部对话可审计追溯,支持质量回查 + \ No newline at end of file diff --git a/images/23_multilang_flow.jpg b/images/23_multilang_flow.jpg new file mode 100644 index 0000000..91b1b4e Binary files /dev/null and b/images/23_multilang_flow.jpg differ diff --git a/images/23_multilang_flow.svg b/images/23_multilang_flow.svg new file mode 100644 index 0000000..ce2b8a3 --- /dev/null +++ b/images/23_multilang_flow.svg @@ -0,0 +1,2 @@ +多语言与多人群适配流程用户提问(繁体中文)意图识别 + 人群类型判断(港澳中学生)RAG检索(史料库语义检索,召回相关文献)大模型生成(适配港澳中学生理解水平,繁体中文输出)安全护栏(事实校验 + 输出过滤)TTS语音合成(粤语发音可选)回答 + 史料来源 + 追问建议同一问题 · 不同人群 · 不同语言 · 不同深度 + \ No newline at end of file diff --git a/images/24_x1_detail.jpg b/images/24_x1_detail.jpg new file mode 100644 index 0000000..bf23add Binary files /dev/null and b/images/24_x1_detail.jpg differ diff --git a/images/24_x1_detail.svg b/images/24_x1_detail.svg new file mode 100644 index 0000000..1e4c322 --- /dev/null +++ b/images/24_x1_detail.svg @@ -0,0 +1,2 @@ +X1 体验编排引擎 — 详细架构输入用户路线来自可信叙事引擎实时位置UWB定位 10Hz更新实时客流摄像头+IoT传感器设备状态监控系统编排逻辑 (实时流式计算)1. 用户进入区域匹配路线节点2. 查询内容组件该节点对应的内容组件3. 下发指令到设备屏幕/灯光/音频/AI终端/互动设备4. 客流拥挤切换备选节点 → 重新下发指令第3步设备指令明细屏幕: 播放对应内容灯光: 切换场景灯光音频: 播放对应导览AI终端: 加载讲解上下文互动设备: 激活对应任务输出设备控制指令实时消息推送用户学习记录写入成长护照客流调度信号反馈智慧场馆实时事件驱动 · 毫秒级响应 · 同一空间千人千面 + \ No newline at end of file diff --git a/images/25_f3_scan_flow.jpg b/images/25_f3_scan_flow.jpg new file mode 100644 index 0000000..fda26bb Binary files /dev/null and b/images/25_f3_scan_flow.jpg differ diff --git a/images/25_f3_scan_flow.svg b/images/25_f3_scan_flow.svg new file mode 100644 index 0000000..0174656 --- /dev/null +++ b/images/25_f3_scan_flow.svg @@ -0,0 +1,2 @@ +F3 文物扫码体验流程展柜前扫描二维码手机加载文物星图H5L1 看见: 3D模型 + 基本信息上滑 → L2 知道: 元数据卡片点击星图节点 → L3 理解: 关联网络可视化点击"深度研究" → L4 研究: 档案文献点击"相关课程" → L5 连接: 课程推荐点击"做一做" → 跳转F7行动选择一件文物 = 一个知识宇宙 · 从看见到行动 + \ No newline at end of file diff --git a/images/26_f2_vr_share.jpg b/images/26_f2_vr_share.jpg new file mode 100644 index 0000000..8cbce94 Binary files /dev/null and b/images/26_f2_vr_share.jpg differ diff --git a/images/26_f2_vr_share.svg b/images/26_f2_vr_share.svg new file mode 100644 index 0000000..a702cb0 --- /dev/null +++ b/images/26_f2_vr_share.svg @@ -0,0 +1,2 @@ +F2 情境任务剧场 — VR/非VR双模式共享架构F2 情境任务剧场非VR模式多屏互动终端AI复盘VR模式沉浸场景体感设备多人协同AI复盘共享层同一任务定义同一证据集(从知识图谱检索)同一历史事实揭示同一AI学习教练复盘同一成长护照记录不同体验通道 · 同一学习内核 + \ No newline at end of file diff --git a/images/27_vr_experience_flow.jpg b/images/27_vr_experience_flow.jpg new file mode 100644 index 0000000..42b8150 Binary files /dev/null and b/images/27_vr_experience_flow.jpg differ diff --git a/images/27_vr_experience_flow.svg b/images/27_vr_experience_flow.svg new file mode 100644 index 0000000..e7defac --- /dev/null +++ b/images/27_vr_experience_flow.svg @@ -0,0 +1,2 @@ +VR 体验全流程排队区(3分钟)• 观看历史背景视频• 查看分配到的角色和资源约束• 学习VR手柄操作和交互方式• 了解安全须知和紧急退出方法• 查看排队位置和预计等待时间进入VR工位• 佩戴VR头显 + 触觉背心• 系统加载场景(按人群类型适配内容)• 4人同步进入同一历史场景沉浸体验(8-15分钟)• 在虚拟场景中执行任务• 抓取文物、查看证据• 与AI NPC对话(可提问,NPC用史料回答)• 4人语音讨论 + 手势交互• 体感设备同步场景事件• 团队做出决策退出VR• AI复盘(学习教练分析方案vs历史)• 现实连接问题• 学习记录写入成长护照• 设备复位 + 消毒(3分钟)从排队到离场 · 全流程数据记录 · 无缝衔接成长护照 + \ No newline at end of file diff --git a/images/28_mvp.jpg b/images/28_mvp.jpg new file mode 100644 index 0000000..461d664 Binary files /dev/null and b/images/28_mvp.jpg differ diff --git a/images/28_mvp.svg b/images/28_mvp.svg new file mode 100644 index 0000000..36b23ed --- /dev/null +++ b/images/28_mvp.svg @@ -0,0 +1,2 @@ +最小可行原型 (MVP)最小原型MVP6个核心模块=1件文物3D展示+1个情境任务+1个AI问答入口+1个成长护照H5+1个行动选择页+1个30天回访推送6个模块 = 1条完整体验链路 · 从看到文物到行动反馈 + \ No newline at end of file diff --git a/images/29_mvp_flow.jpg b/images/29_mvp_flow.jpg new file mode 100644 index 0000000..9bda581 Binary files /dev/null and b/images/29_mvp_flow.jpg differ diff --git a/images/29_mvp_flow.svg b/images/29_mvp_flow.svg new file mode 100644 index 0000000..ab8f4bb --- /dev/null +++ b/images/29_mvp_flow.svg @@ -0,0 +1,2 @@ +MVP 用户体验流程触屏终端开始用户入场查看文物3D模型可旋转缩放参与情境任务阅读证据 → 团队讨论 → 提交方案 → 历史揭示 → AI复盘向AI提问获得带史料引用的回答打开手机H5查看成长护照离馆后继续选择一个行动方向F7现实行动30天后收到微信推送提交行动反馈从入场到离馆后30天 · 一条完整的体验闭环 + \ No newline at end of file diff --git a/images/30_mvp_deploy.jpg b/images/30_mvp_deploy.jpg new file mode 100644 index 0000000..27b8b1b Binary files /dev/null and b/images/30_mvp_deploy.jpg differ diff --git a/images/30_mvp_deploy.svg b/images/30_mvp_deploy.svg new file mode 100644 index 0000000..dc7c6f2 --- /dev/null +++ b/images/30_mvp_deploy.svg @@ -0,0 +1,2 @@ +MVP 原型部署方案单服务器部署(原型阶段)GPU服务器×1台AI推理 + 向量检索应用服务器×1台业务服务 + 缓存前端服务器×1台3D展示 + 小程序后端互动终端×1台情境任务 + AI问答界面4台设备 · 最小成本验证完整体验闭环 + \ No newline at end of file diff --git a/images/31_core_loop.jpg b/images/31_core_loop.jpg new file mode 100644 index 0000000..c060950 Binary files /dev/null and b/images/31_core_loop.jpg differ diff --git a/images/31_core_loop.svg b/images/31_core_loop.svg new file mode 100644 index 0000000..9e0065f --- /dev/null +++ b/images/31_core_loop.svg @@ -0,0 +1,8 @@ +核心体验闭环提问参观前选择学习问题 +AI全程可问答体验自适应路线 + 沉浸VR +情境任务 + 文物星图理解AI复盘 + 理解表达 +离馆报告行动行动选择 +7/30/90天跟踪反馈进展提交 + 成果回流 +优秀案例入库再传播青年共创 + 云展馆 +全国节点复制核心体验闭环一件文物 → 一次行动 + \ No newline at end of file diff --git a/technical_render/page-1.png b/technical_render/page-1.png new file mode 100644 index 0000000..f9495f1 Binary files /dev/null and b/technical_render/page-1.png differ diff --git a/technical_render/page-10.png b/technical_render/page-10.png new file mode 100644 index 0000000..e39f668 Binary files /dev/null and b/technical_render/page-10.png differ diff --git a/technical_render/page-11.png b/technical_render/page-11.png new file mode 100644 index 0000000..edce3f8 Binary files /dev/null and b/technical_render/page-11.png differ diff --git a/technical_render/page-12.png b/technical_render/page-12.png new file mode 100644 index 0000000..42503d5 Binary files /dev/null and b/technical_render/page-12.png differ diff --git a/technical_render/page-13.png b/technical_render/page-13.png new file mode 100644 index 0000000..ac8d41a Binary files /dev/null and b/technical_render/page-13.png differ diff --git a/technical_render/page-14.png b/technical_render/page-14.png new file mode 100644 index 0000000..98f4b44 Binary files /dev/null and b/technical_render/page-14.png differ diff --git a/technical_render/page-15.png b/technical_render/page-15.png new file mode 100644 index 0000000..13bb9b8 Binary files /dev/null and b/technical_render/page-15.png differ diff --git a/technical_render/page-16.png b/technical_render/page-16.png new file mode 100644 index 0000000..93e4bdb Binary files /dev/null and b/technical_render/page-16.png differ diff --git a/technical_render/page-17.png b/technical_render/page-17.png new file mode 100644 index 0000000..93ae69c Binary files /dev/null and b/technical_render/page-17.png differ diff --git a/technical_render/page-18.png b/technical_render/page-18.png new file mode 100644 index 0000000..92b67bb Binary files /dev/null and b/technical_render/page-18.png differ diff --git a/technical_render/page-19.png b/technical_render/page-19.png new file mode 100644 index 0000000..8595eef Binary files /dev/null and b/technical_render/page-19.png differ diff --git a/technical_render/page-2.png b/technical_render/page-2.png new file mode 100644 index 0000000..269da70 Binary files /dev/null and b/technical_render/page-2.png differ diff --git a/technical_render/page-20.png b/technical_render/page-20.png new file mode 100644 index 0000000..87c227a Binary files /dev/null and b/technical_render/page-20.png differ diff --git a/technical_render/page-21.png b/technical_render/page-21.png new file mode 100644 index 0000000..0133d17 Binary files /dev/null and b/technical_render/page-21.png differ diff --git a/technical_render/page-22.png b/technical_render/page-22.png new file mode 100644 index 0000000..86142da Binary files /dev/null and b/technical_render/page-22.png differ diff --git a/technical_render/page-23.png b/technical_render/page-23.png new file mode 100644 index 0000000..409b47a Binary files /dev/null and b/technical_render/page-23.png differ diff --git a/technical_render/page-24.png b/technical_render/page-24.png new file mode 100644 index 0000000..0ac4372 Binary files /dev/null and b/technical_render/page-24.png differ diff --git a/technical_render/page-25.png b/technical_render/page-25.png new file mode 100644 index 0000000..5b65148 Binary files /dev/null and b/technical_render/page-25.png differ diff --git a/technical_render/page-26.png b/technical_render/page-26.png new file mode 100644 index 0000000..820e24a Binary files /dev/null and b/technical_render/page-26.png differ diff --git a/technical_render/page-27.png b/technical_render/page-27.png new file mode 100644 index 0000000..c520fbf Binary files /dev/null and b/technical_render/page-27.png differ diff --git a/technical_render/page-28.png b/technical_render/page-28.png new file mode 100644 index 0000000..7f5664d Binary files /dev/null and b/technical_render/page-28.png differ diff --git a/technical_render/page-29.png b/technical_render/page-29.png new file mode 100644 index 0000000..c516713 Binary files /dev/null and b/technical_render/page-29.png differ diff --git a/technical_render/page-3.png b/technical_render/page-3.png new file mode 100644 index 0000000..d993782 Binary files /dev/null and b/technical_render/page-3.png differ diff --git a/technical_render/page-30.png b/technical_render/page-30.png new file mode 100644 index 0000000..0092d1f Binary files /dev/null and b/technical_render/page-30.png differ diff --git a/technical_render/page-31.png b/technical_render/page-31.png new file mode 100644 index 0000000..7c4aa97 Binary files /dev/null and b/technical_render/page-31.png differ diff --git a/technical_render/page-32.png b/technical_render/page-32.png new file mode 100644 index 0000000..2f44642 Binary files /dev/null and b/technical_render/page-32.png differ diff --git a/technical_render/page-33.png b/technical_render/page-33.png new file mode 100644 index 0000000..d77ca22 Binary files /dev/null and b/technical_render/page-33.png differ diff --git a/technical_render/page-34.png b/technical_render/page-34.png new file mode 100644 index 0000000..ab1776e Binary files /dev/null and b/technical_render/page-34.png differ diff --git a/technical_render/page-35.png b/technical_render/page-35.png new file mode 100644 index 0000000..9477d0d Binary files /dev/null and b/technical_render/page-35.png differ diff --git a/technical_render/page-36.png b/technical_render/page-36.png new file mode 100644 index 0000000..22dae32 Binary files /dev/null and b/technical_render/page-36.png differ diff --git a/technical_render/page-4.png b/technical_render/page-4.png new file mode 100644 index 0000000..04d80bc Binary files /dev/null and b/technical_render/page-4.png differ diff --git a/technical_render/page-5.png b/technical_render/page-5.png new file mode 100644 index 0000000..44223aa Binary files /dev/null and b/technical_render/page-5.png differ diff --git a/technical_render/page-6.png b/technical_render/page-6.png new file mode 100644 index 0000000..c16f18a Binary files /dev/null and b/technical_render/page-6.png differ diff --git a/technical_render/page-7.png b/technical_render/page-7.png new file mode 100644 index 0000000..a25e4f4 Binary files /dev/null and b/technical_render/page-7.png differ diff --git a/technical_render/page-8.png b/technical_render/page-8.png new file mode 100644 index 0000000..69493a8 Binary files /dev/null and b/technical_render/page-8.png differ diff --git a/technical_render/page-9.png b/technical_render/page-9.png new file mode 100644 index 0000000..c9f56db Binary files /dev/null and b/technical_render/page-9.png differ diff --git a/technical_render/延安精神(大湾区)学习展示中心—技术实现方案.pdf b/technical_render/延安精神(大湾区)学习展示中心—技术实现方案.pdf new file mode 100644 index 0000000..4513f20 Binary files /dev/null and b/technical_render/延安精神(大湾区)学习展示中心—技术实现方案.pdf differ diff --git a/广东.zip b/广东.zip new file mode 100644 index 0000000..dfd4a68 Binary files /dev/null and b/广东.zip differ diff --git a/延安精神(大湾区)学习展示中心—技术实现方案.docx b/延安精神(大湾区)学习展示中心—技术实现方案.docx new file mode 100644 index 0000000..3920f1b Binary files /dev/null and b/延安精神(大湾区)学习展示中心—技术实现方案.docx differ diff --git a/延安精神(大湾区)学习展示中心—终极目标导向创新升级方案.docx b/延安精神(大湾区)学习展示中心—终极目标导向创新升级方案.docx new file mode 100644 index 0000000..5b892f1 Binary files /dev/null and b/延安精神(大湾区)学习展示中心—终极目标导向创新升级方案.docx differ diff --git a/技术实现方案.md b/技术实现方案.md new file mode 100644 index 0000000..c2b8815 --- /dev/null +++ b/技术实现方案.md @@ -0,0 +1,2878 @@ +# 延安精神(大湾区)学习展示中心 — 技术实现方案 + +> 本文档将《终极目标导向创新升级方案》中的产品设计和系统架构,转化为可落地的技术架构、技术选型、数据模型和工程实施方案。 +> +> 编制日期:2026-07-12 + +--- + +## 一、总体技术架构 + +### 1.1 技术分层模型 + +系统采用六层架构,从下到上依次为基础设施层、数据资产层、AI能力层、公共平台层、应用服务层和用户触达层。 + +``` +┌──────────────────────────────────────────────────────────────────────┐ +│ 用户触达层 │ +│ 线下终端(触屏/VR/环幕/UWB/RFID) │ 线上(Web/小程序/APP) │ 节点终端 │ +├──────────────────────────────────────────────────────────────────────┤ +│ 应用服务层 │ +│ F1自适应叙事 F2情境任务 F3文物数字生命 F4成长护照 │ +│ F5云上共同体 F6青年共创 F7行动实验室 F8星火节点OS │ +├──────────────────────────────────────────────────────────────────────┤ +│ 公共平台层 │ +│ X1体验编排引擎 X2成长护照档案 X3内容治理中心 S9节点协同 │ +├──────────────────────────────────────────────────────────────────────┤ +│ AI能力层 │ +│ 可信叙事引擎 学习成长引擎 编审助手引擎 策展助手引擎 │ +├──────────────────────────────────────────────────────────────────────┤ +│ 数据资产层 │ +│ 知识图谱(Neo4j) │ 向量库(Milvus) │ 内容仓(MinIO) │ 业务库(PG) │ +│ 时序库(ClickHouse) │ 缓存(Redis) │ 消息(Kafka) │ +├──────────────────────────────────────────────────────────────────────┤ +│ 基础设施层 │ +│ 私有云(K8s) │ GPU集群 │ 5G专网 │ IoT网关 │ CDN │ 安防网络 │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +### 1.2 技术栈总览 + +| 层级 | 技术选型 | 选型理由 | +|------|---------|---------| +| 前端框架 | React 18 + TypeScript / React Native | 线上Web端+移动端统一技术栈,生态成熟 | +| 3D/WebGL | Three.js + WebGPU / Unity WebGL | 云展馆3D渲染 + 轻量化Web3D访问 | +| VR/AR | Unity 2022 LTS + XR Interaction Toolkit | 主流XR开发平台,支持Pico/Meta Quest | +| 后端框架 | Spring Boot 3 (Java 21) / FastAPI (Python) | Java负责业务微服务,Python负责AI推理服务 | +| 微服务 | Spring Cloud + Nacos + Gateway | 国产化兼容,服务注册发现+配置中心+网关 | +| 数据库 | PostgreSQL 16 + ClickHouse + Redis 7 | 业务OLTP + 分析OLAP + 缓存 | +| 知识图谱 | Neo4j 5.x | 图数据库标杆,支持Cypher语义查询 | +| 向量数据库 | Milvus 2.x | 开源高性能向量检索,支持亿级向量 | +| 对象存储 | MinIO (私有化) | S3兼容,支持私有化部署,用于3D模型/视频/图片 | +| 消息队列 | Kafka 3.x | 高吞吐事件流,支撑实时客流和体验编排 | +| 大模型 | Qwen2.5 / GLM-4 (私有化部署) | 国产开源大模型,支持中文+英文双语 | +| RAG框架 | LlamaIndex + LangChain | 主流RAG框架,支持多源检索+引用溯源 | +| 数字人 | Unreal Engine 5 + MetaHuman + AI口型同步 | 高保真数字人,支持实时驱动 | +| 容器编排 | Kubernetes 1.28 + Helm | 容器化部署,支持弹性扩缩容 | +| CI/CD | GitLab CI + ArgoCD | GitOps发布流程,支持灰度和回滚 | +| 监控 | Prometheus + Grafana + Loki | 指标+日志+链路追踪一体化 | +| IoT | MQTT (EMQX) + Modbus网关 | 支持温湿度/客流/安防设备统一接入 | +| CDN | 阿里云CDN / 腾讯云CDN (港澳节点) | 港澳及海外访问加速 | + +### 1.3 系统部署拓扑 + +``` + ┌──────────────┐ + │ 公网入口 │ + │ WAF + SLB │ + └──────┬───────┘ + │ + ┌──────────┴──────────┐ + │ │ + ┌─────┴─────┐ ┌──────┴──────┐ + │ 线上云区 │ │ 线下场馆区 │ + │ (公有云) │ │ (私有云) │ + └─────┬─────┘ └──────┬──────┘ + │ │ + ┌──────────┴──────────┐ ┌───────┴────────┐ + │ │ │ │ + ┌─────┴─────┐ ┌───────┴──┴──┐ ┌───────┴──────┐ + │ Web/小程序 │ │ AI推理GPU集群│ │ IoT/安防/VR │ + │ API网关 │ │ K8s集群 │ │ 设备网络 │ + │ CDN节点 │ │ 数据库集群 │ │ 边缘计算盒子 │ + └───────────┘ └─────────────┘ └──────────────┘ +``` + +**部署策略**: + +- **AI推理+数据库+知识图谱**:部署在场馆私有云,保证数据安全和低延迟; +- **Web端/小程序/云展馆**:部署在公有云,通过CDN加速港澳访问; +- **两区通过VPN专线互联**,数据按需同步; +- **全国节点**:通过S9节点协同系统远程部署组件包,各节点可独立运行。 + +--- + +## 二、AI可信知识引擎技术实现 + +### 2.1 整体架构 + +AI引擎是全馆公共能力底座,不是单一展项。采用"知识图谱 + RAG + 大模型微调"三层架构。 + +``` +┌──────────────────────────────────────────────────────┐ +│ AI能力输出层 │ +│ 可信馆员API 学习教练API 策展助手API 编审助手API │ +├──────────────────────────────────────────────────────┤ +│ 推理与编排层 │ +│ 意图识别 → 路由选择 → 检索增强 → 生成 → 审核护栏 │ +│ (LlamaIndex编排 + 自研路由 + 安全过滤) │ +├──────────────────────────────────────────────────────┤ +│ 知识检索层 │ +│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ +│ │ 知识图谱 │ │ 向量知识库│ │ 史料文档库│ │ +│ │ (Neo4j) │ │ (Milvus) │ │ (PG+FTS) │ │ +│ └──────────┘ └──────────┘ └──────────┘ │ +├──────────────────────────────────────────────────────┤ +│ 模型层 │ +│ 基座大模型(Qwen2.5-72B) + 领域微调LoRA + 安全护栏模型 │ +└──────────────────────────────────────────────────────┘ +``` + +### 2.2 知识图谱构建 + +#### 2.2.1 图谱本体设计 + +``` +节点类型(Node Labels): + - Event 历史事件 (如: 大生产运动、延安整风) + - Person 历史人物 (如: 毛泽东、朱德、东江纵队指战员) + - Artifact 革命文物 (如: 纺车、窑洞桌椅、作战地图) + - Document 文献档案 (如: 《论持久战》、整风文献) + - Place 历史地点 (如: 延安、南泥湾、华南抗日根据地) + - Concept 精神概念 (如: 实事求是、群众路线、自力更生) + - Course 课程内容 (如: 小学红色故事课、干部廉政党课) + - Era 历史时期 (如: 延安十三年、抗战时期、改革开放) + +关系类型(Relationship Types): + - OCCURRED_AT 事件→地点 + - PARTICIPATED 人物→事件 + - USED_ARTIFACT 事件→文物 + - CITED_IN 文献→事件 + - EMBODIES 事件→概念 + - BELONGS_TO 事件→时期 + - CONNECTS_TO 课程→事件/文物/概念 + - RELATED_TO 通用关联 +``` + +#### 2.2.2 图谱构建流程 + +``` +权威史料入库 + ↓ +实体识别与抽取 (NER + 人工校验) + ↓ +关系抽取 (RE + 专家审核) + ↓ +实体对齐与消歧 + ↓ +图谱入库 (Neo4j Cypher导入) + ↓ +专家审核确认 + ↓ +版本发布 (带版本号和审核标记) +``` + +**技术实现**: + +- 使用HanLP/LTP进行中文NER,识别史料文本中的人物、地点、事件; +- 关系抽取使用大模型辅助 + 人工审核双重确认; +- 每个实体和关系必须标注史料来源(文献名+页码+原文片段); +- 图谱版本化管理:每次发布生成新版本快照,支持回滚。 + +#### 2.2.3 查询接口 + +```cypher +// 示例:查询"大生产运动"关联的所有文物、人物和概念 +MATCH (e:Event {name: '大生产运动'})-[:USED_ARTIFACT]->(a:Artifact), + (e)-[:PARTICIPATED]->(p:Person), + (e)-[:EMBODIES]->(c:Concept) +RETURN a, p, c +``` + +提供REST API封装常用图谱查询,供各旗舰产品调用。 + +### 2.3 RAG检索增强系统 + +#### 2.3.1 架构 + +``` +用户提问 + ↓ +意图识别 (分类: 史实查询/概念解释/课程推荐/创作辅助) + ↓ +┌─────────────────────────────────────┐ +│ 多级检索 │ +│ 第一级: 知识图谱精确匹配 (Neo4j) │ +│ 第二级: 向量语义检索 (Milvus) │ +│ 第三级: 全文检索 (PostgreSQL FTS) │ +└─────────────────────────────────────┘ + ↓ +检索结果融合与排序 (Reciprocal Rank Fusion) + ↓ +上下文构建 (拼接检索结果 + 来源标注) + ↓ +大模型生成 (Qwen2.5 + 安全护栏) + ↓ +输出审核 (事实校验 + 政治合规过滤) + ↓ +返回回答 + 来源引用 + 不确定性说明 +``` + +#### 2.3.2 向量库构建 + +- **Embedding模型**:使用BGE-M3(中文优化,支持中英双语); +- **分块策略**:史料文档按段落分块,每块保留来源元数据(文献名、页码、章节); +- **索引类型**:HNSW(高召回率+低延迟); +- **更新机制**:新史料入库后自动Embedding并增量插入向量库。 + +#### 2.3.3 引用溯源机制 + +每条AI回答必须包含: + +```json +{ + "answer": "延安大生产运动始于1939年...", + "sources": [ + { + "document": "《延安精神研究》第3卷", + "page": 45, + "excerpt": "1939年2月,毛泽东在延安干部生产动员大会上提出...", + "verified": true + } + ], + "confidence": "high", + "uncertainty_note": null +} +``` + +当检索结果不足时,返回: + +```json +{ + "answer": "关于该问题的史料依据尚不充分,建议咨询现场讲解员或查阅文献库。", + "sources": [], + "confidence": "low", + "uncertainty_note": "未找到权威史料支撑,已转交人工" +} +``` + +### 2.4 大模型微调方案 + +#### 2.4.1 基座模型选择 + +| 候选模型 | 参数量 | 优势 | 劣势 | +|---------|-------|------|------| +| Qwen2.5-72B | 72B | 中文能力强,开源许可清晰 | 推理资源需求大 | +| Qwen2.5-14B | 14B | 资源需求适中,可多卡部署 | 复杂推理略弱 | +| GLM-4-9B | 9B | 中文优化,推理效率高 | 知识广度略逊 | + +**推荐策略**: + +- **主力模型**:Qwen2.5-72B(4×A100 80G推理),用于复杂问答和内容生成; +- **轻量模型**:Qwen2.5-14B(2×A100 40G推理),用于实时导览和简单问答; +- **路由策略**:意图识别后自动路由到合适模型,平衡质量和延迟。 + +#### 2.4.2 微调数据准备 + +``` +训练数据来源: + 1. 延安精神理论著作 (经中国延安精神研究会授权) + 2. 党史权威文献 (中央党史和文献研究院公开出版物) + 3. 东江纵队华南抗战史 (广东省委党史研究室编审) + 4. 广东改革开放史 (官方出版物) + 5. 自贸区发展实践 (官方报告) + 6. 太极文化史料 (非遗传承人提供) + 7. 知识图谱结构化数据 (转化为指令对) + +数据格式 (指令微调): + {"instruction": "用小学生能理解的语言解释什么是延安大生产运动", + "input": "", + "output": "在延安时期,因为物资非常缺少...", + "source": "《延安精神研究》第3卷p45", + "audience_level": "primary"} +``` + +#### 2.4.3 微调方法 + +- **方法**:LoRA (Low-Rank Adaptation),rank=64,alpha=128; +- **训练框架**:LLaMA-Factory / DeepSpeed; +- **训练数据量**:首期10,000条高质量指令对(经专家审核); +- **评估方式**:党史专家盲评 + 自动化事实校验 + 政治安全测试集; +- **迭代频率**:每季度补充新数据并重新微调。 + +#### 2.4.4 安全护栏 + +``` +用户输入 + ↓ +输入安全过滤 (敏感词 + 意图安全分类) + ↓ +RAG检索 + 大模型生成 + ↓ +输出安全过滤: + - 事实校验: 与知识图谱交叉验证关键事实 + - 政治合规: 对标三级审核规则自动检查 + - 人物保护: 禁止模拟革命领袖发表新言论 + - 来源强制: 无来源回答降级为"不确定" + ↓ +安全通过 → 返回用户 +安全未通过 → 转人工审核 / 返回安全兜底回复 +``` + +**技术实现**: + +- 输入过滤:基于规则引擎(Drools)+ 轻量分类模型(BERT微调); +- 输出过滤:事实校验API(与Neo4j图谱比对)+ 规则引擎 + 关键词拦截; +- 全过程日志:记录输入、检索结果、生成内容、过滤结果、模型版本,支持审计追溯。 + +### 2.5 四种AI角色API设计 + +#### 可信馆员API + +``` +POST /api/ai/librarian/ask +Request: + { + "question": "延安整风运动的核心内容是什么?", + "audience": "adult", // primary/secondary/university/adult/hk_macau + "language": "zh-CN", // zh-CN / zh-HK / en + "context": { // 可选的上下文 + "current_artifact_id": "art_001", + "current_zone": "zone_b" + } + } + +Response: + { + "answer": "延安整风运动的核心内容是...", + "sources": [...], + "confidence": "high", + "follow_up_questions": ["整风运动对今天有什么启示?"], + "related_artifacts": ["art_002", "art_005"], + "request_id": "req_xxx" // 全链路追踪ID + } +``` + +#### 学习教练API + +``` +POST /api/ai/coach/reflect +Request: + { + "task_id": "task_nanniwan", + "team_answer": "我们决定优先种植粮食...", + "audience": "secondary" + } + +Response: + { + "feedback": "你们的方案考虑了粮食优先,这符合当时'不饿死一个人'的紧迫需求。但你们是否考虑了...", + "historical_comparison": "历史上,八路军选择了...", + "follow_up_questions": ["如果工具不足怎么办?"], + "evidence_used": ["doc_003", "artifact_012"] + } +``` + +#### 策展助手API + +``` +POST /api/ai/curator/search +Request: + { + "topic": "南泥湾大生产", + "content_type": "all", // image/video/3d/document/course + "audience": "primary" + } + +Response: + { + "results": [ + {"type": "artifact", "id": "art_001", "title": "纺车", "relevance": 0.95}, + {"type": "document", "id": "doc_003", "title": "毛泽东生产动员讲话", "relevance": 0.92} + ], + "suggested_narrative": "建议以南泥湾纺车为起点,连接..." + } +``` + +#### 编审助手API + +``` +POST /api/ai/reviewer/check +Request: + { + "content": "1942年延安开展了大生产运动...", + "content_type": "exhibit_text" + } + +Response: + { + "issues": [ + {"type": "fact_check", "severity": "warning", "detail": "大生产运动始于1939年,非1942年", "source": "《延安精神研究》p45"}, + {"type": "missing_source", "severity": "error", "detail": "该段落未标注史料来源"} + ], + "compliance_status": "needs_revision", + "suggested_fixes": [...] + } +``` + +--- + +## 三、三引擎技术实现 + +### 3.1 可信叙事引擎 + +#### 职责 + +把同一权威史料转化为面向不同人群的准确表达。不是AI临场改写历史,而是在已审核内容组件中进行安全编排。 + +#### 技术架构 + +``` +┌────────────────────────────────────────────────────┐ +│ 可信叙事引擎 │ +├────────────────┬────────────────┬──────────────────┤ +│ 内容组件仓库 │ 叙事编排引擎 │ 分层表达引擎 │ +│ (已审核内容块) │ (路线生成器) │ (分众适配器) │ +├────────────────┼────────────────┼──────────────────┤ +│ 组件元数据: │ 编排规则: │ 适配规则: │ +│ - 史料来源 │ - 人群→组件集 │ - 小学: 简化表述 │ +│ - 适用人群 │ - 时长→节点数 │ - 中学: 因果逻辑 │ +│ - 时长估算 │ - 客流→备选节点 │ - 干部: 理论深度 │ +│ - 空间位置 │ - 教学目标→必选 │ - 港澳: 双语+轻量 │ +│ - 版本号 │ 节点 │ │ +└────────────────┴────────────────┴──────────────────┘ +``` + +#### 内容组件数据模型 + +```sql +CREATE TABLE content_components ( + id VARCHAR(64) PRIMARY KEY, + title TEXT NOT NULL, + content_type VARCHAR(32) NOT NULL, -- text/audio/video/3d/interactive + source_refs JSONB NOT NULL, -- 史料来源引用列表 + audience_tags JSONB NOT NULL, -- ["primary","secondary","adult","hk_macau"] + duration_min INT, -- 预估时长(分钟) + zone_id VARCHAR(32), -- 所在空间区域 + learning_objectives JSONB, -- 教学目标列表 + language_versions JSONB, -- {"zh-CN": "...", "zh-HK": "...", "en": "..."} + review_status VARCHAR(32) DEFAULT 'draft', -- draft/reviewed/published + reviewer_id VARCHAR(64), + reviewed_at TIMESTAMP, + version INT DEFAULT 1, + created_at TIMESTAMP DEFAULT NOW(), + updated_at TIMESTAMP DEFAULT NOW() +); +``` + +#### 叙事路线生成算法 + +```python +def generate_narrative_route(audience, duration_min, learning_goals, current_load): + """ + audience: 用户人群类型 + duration_min: 可用时长 + learning_goals: 学习目标列表 + current_load: 各区域实时客流负载 + """ + # 1. 检索适用该人群的已审核内容组件 + components = query_components( + audience_tags=[audience], + review_status='published' + ) + + # 2. 按教学目标筛选必选节点 + must_include = filter_by_goals(components, learning_goals) + + # 3. 按时长约束贪心填充 + route = greedy_fill(must_include, components, duration_min) + + # 4. 客流负载感知:拥挤区域替换为备选节点 + route = replace_overloaded_nodes(route, current_load) + + # 5. 空间路径优化:按物理位置排序减少折返 + route = optimize_physical_path(route) + + return route +``` + +#### 关键API + +``` +POST /api/narrative/route/generate +GET /api/narrative/route/{route_id} +POST /api/narrative/route/{route_id}/adapt (实时客流适配) +GET /api/narrative/learnings/{user_id} (个人学习脉络) +``` + +### 3.2 学习成长引擎 + +#### 职责 + +管理每个人从提问、体验到行动和再传播的成长路径。对应F4成长护照。 + +#### 数据模型 + +```sql +-- 成长护照主表 +CREATE TABLE growth_passports ( + id VARCHAR(64) PRIMARY KEY, + user_id VARCHAR(64) NOT NULL, + passport_type VARCHAR(32) NOT NULL, -- youth/party/hk_macau/researcher + created_at TIMESTAMP DEFAULT NOW(), + status VARCHAR(32) DEFAULT 'active' +); + +-- 学习记录 +CREATE TABLE learning_records ( + id VARCHAR(64) PRIMARY KEY, + passport_id VARCHAR(64) REFERENCES growth_passports(id), + record_type VARCHAR(32) NOT NULL, -- pre_visit/visit/post_visit + event_type VARCHAR(64) NOT NULL, -- question_asked/artifact_viewed/ + -- task_completed/ai_interaction/ + -- understanding_expressed/action_chosen/ + -- feedback_submitted + event_data JSONB NOT NULL, -- 事件详情 + artifact_ids JSONB, -- 关联文物 + source_refs JSONB, -- 关联史料 + timestamp TIMESTAMP DEFAULT NOW() +); + +-- 行动承诺 +CREATE TABLE action_commitments ( + id VARCHAR(64) PRIMARY KEY, + passport_id VARCHAR(64) REFERENCES growth_passports(id), + action_type VARCHAR(32) NOT NULL, -- individual/team/bay_area + action_content TEXT NOT NULL, + target_days INT NOT NULL, -- 7/30/90 + status VARCHAR(32) DEFAULT 'pending', -- pending/in_progress/completed/expired + created_at TIMESTAMP DEFAULT NOW(), + feedback_7d JSONB, + feedback_30d JSONB, + feedback_90d JSONB +); + +-- 团队学习 +CREATE TABLE team_learning ( + id VARCHAR(64) PRIMARY KEY, + team_name VARCHAR(128), + organization VARCHAR(128), + learning_goal TEXT, + route_id VARCHAR(64), + member_ids JSONB NOT NULL, + created_at TIMESTAMP DEFAULT NOW() +); +``` + +#### 7/30/90天回访机制 + +``` +用户离馆时选择行动 + ↓ +系统创建action_commitment记录 + ↓ +定时任务(Scheduled Task): + - 第7天: 推送回顾消息(微信/短信/邮件) → 用户点击 → 记录feedback_7d + - 第30天: 推送进展反馈表单 → 用户提交 → 记录feedback_30d + - 第90天: 推送成果提交入口 → 用户提交作品/实践记录 → 记录feedback_90d + ↓ +反馈数据进入S8数据中台 → 计算北极星指标 +``` + +**技术实现**: + +- 定时任务:使用XXL-Job分布式任务调度; +- 消息推送:微信模板消息 + 短信网关 + 邮件SMTP; +- 反馈表单:H5页面 + 小程序页面,数据写入PostgreSQL。 + +### 3.3 复制运营引擎 + +#### 职责 + +把内容、课程、体验和运营方法打包输出到全国节点。对应F8星火节点和S9节点协同。 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ 旗舰中心 (L4) │ +│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ +│ │ 组件仓库 │ │ 版本管理 │ │ 节点管理 │ │ +│ │ Registry │ │ Release │ │ Registry │ │ +│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ +│ │ │ │ │ +│ └──────┬──────┘ │ │ +│ │ │ │ +│ 组件打包发布 │ │ +│ │ │ │ +└──────────────┼────────────────────┘ │ + │ (HTTPS API / 离线包) │ + ┌──────────┼──────────┐ │ + │ │ │ │ +┌───┴───┐ ┌───┴───┐ ┌───┴───┐ │ +│ L1节点 │ │ L2节点 │ │ L3节点 │ ... │ +│ 微节点 │ │ 标准节点│ │ 城市节点│ │ +└───────┘ └───────┘ └───────┘ │ +``` + +#### 组件包格式 + +```json +{ + "package_id": "pkg_2026_q3_v1", + "package_type": "standard_exhibition", + "version": "1.0.0", + "contents": { + "knowledge": { + "graph_snapshot": "kg_2026q3.graphml", + "vector_index": "vec_2026q3.bin", + "term_dict": "terms_bilingual.json" + }, + "courses": [ + {"id": "course_001", "files": ["course_001.json", "course_001_media.zip"]} + ], + "experiences": [ + {"id": "task_nanniwan", "files": ["task_nanniwan.json", "task_nanniwan_3d.glb"]} + ], + "operations": { + "sop_documents": "sop_2026q3.pdf", + "config_templates": "config_templates.json" + }, + "tech": { + "api_specs": "openapi_2026q3.yaml", + "deploy_templates": "helm_charts/", + "data_dictionary": "data_dict_2026q3.json" + } + }, + "min_hardware": {"screen": true, "internet": true}, + "install_script": "install.sh", + "checksum": "sha256:..." +} +``` + +#### 节点协同API + +``` +POST /api/s9/node/register 节点注册 +GET /api/s9/node/{node_id} 节点信息 +POST /api/s9/package/publish 发布组件包 +GET /api/s9/package/list 可用组件包列表 +POST /api/s9/node/{node_id}/deploy 向节点部署组件包 +GET /api/s9/node/{node_id}/health 节点健康状态 +POST /api/s9/node/{node_id}/content 节点提交本地内容 +GET /api/s9/metrics/compare 节点效果对比 +``` + +--- + +## 四、八个旗舰产品技术实现 + +### 4.1 F1"一馆千面"自适应叙事空间 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F1 自适应叙事空间系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 入馆选择终端 │ 空间联动控制 │ 学习脉络生成 │ +│ (自助机/小程序) │ (X1编排引擎) │ (离馆报告) │ +├────────────────┼────────────────┼────────────────────┤ +│ 用户画像采集: │ 设备联动: │ 报告内容: │ +│ - 人群类型(选择) │ - 屏幕内容切换 │ - 路线节点列表 │ +│ - 学习问题(选择) │ - 灯光场景切换 │ - 查看过的文物 │ +│ - 可用时长(选择) │ - 音频导览切换 │ - 完成的任务 │ +│ - 语言(选择) │ - AI讲解适配 │ - AI问答记录 │ +│ │ - 互动任务推送 │ - 个人理解表达 │ +│ │ - 客流实时感知 │ - 推荐后续学习 │ +└────────────────┴────────────────┴────────────────────┘ +``` + +#### 空间联动控制技术 + +**X1全场景体验编排引擎**是F1的技术核心: + +``` +┌──────────────────────────────────────────────────────┐ +│ X1 体验编排引擎 │ +├──────────────────────────────────────────────────────┤ +│ 输入: │ +│ - 用户路线(来自可信叙事引擎) │ +│ - 实时位置(UWB定位) │ +│ - 实时客流(摄像头+IoT) │ +│ - 设备状态(监控) │ +├──────────────────────────────────────────────────────┤ +│ 编排逻辑: │ +│ 1. 用户进入区域 → 匹配路线节点 │ +│ 2. 查询该节点对应的内容组件 │ +│ 3. 下发指令到对应设备: │ +│ - 屏幕: 播放对应内容(WebSocket推送) │ +│ - 灯光: 切换场景灯光(DMX/Art-Net协议) │ +│ - 音频: 播放对应导览(RTP/RTSP流) │ +│ - AI终端: 加载对应讲解上下文 │ +│ - 互动设备: 激活对应任务 │ +│ 4. 客流拥挤 → 切换备选节点 → 重新下发指令 │ +├──────────────────────────────────────────────────────┤ +│ 输出: │ +│ - 设备控制指令(WebSocket/MQTT) │ +│ - 用户学习记录(写入学习成长引擎) │ +│ - 客流调度信号(反馈给S3智慧场馆) │ +└──────────────────────────────────────────────────────┘ +``` + +**设备控制协议**: + +| 设备类型 | 控制协议 | 技术方案 | +|---------|---------|---------| +| LED屏幕/投影 | WebSocket + 媒体服务器API | 通过媒体服务器(如Resolume)控制播放内容 | +| 灯光系统 | Art-Net / sACN (DMX512 over IP) | 灯光场景预设 + 编排引擎触发切换 | +| 音频系统 | RTP / RTSP / AirPlay | 分区音频矩阵控制,按区域播放不同内容 | +| VR/AR设备 | Unity + WebSocket | Unity客户端接收编排指令,切换场景 | +| 互动终端 | WebSocket + REST API | 触屏终端接收任务推送和内容更新 | +| AI数字人 | gRPC + Unreal Engine | 远程驱动数字人表情、口型和语音 | + +#### UWB室内定位 + +``` +硬件: UWB锚点(天花板安装) + UWB标签(手环/胸卡) +精度: 10-30cm +频率: 10Hz更新 +数据流: + UWB锚点 → 位置引擎(TDOA算法) → 位置坐标(x,y,z) + → Kafka → X1编排引擎 → 区域判定 → 设备联动 +``` + +#### 具体场景示例:香港中学生小陈的45分钟参观 + +``` +入场前 (参观前一天): +├── 小陈通过学校统一预约,收到微信小程序链接 +├── 打开小程序导学页面: +│ ├── 选择人群类型: 「中学生」 +│ ├── 选择学习问题: 「延安精神和我们有什么关系?」 +│ ├── 选择可用时长: 「45分钟」 +│ ├── 选择语言: 「繁体中文」 +│ └── 系统生成推荐路线 (6个节点,含1个VR体验) +├── 系统推送导学材料: +│ ├── 3分钟短视频: 「延安在哪里?为什么去延安?」 +│ └── 预习思考题: 「如果你是1939年的香港青年,你会去延安吗?」 +└── 小陈完成预习,系统记录到成长护照 + +入馆 (第0分钟): +├── 小陈在入馆终端刷身份证 + 扫小程序码 +├── 系统识别身份,调取已生成的路线 +├── 领取UWB手环(编号关联到小陈的护照) +└── 路线推送至小程序: + 节点1→延安十三年全景(8min) → 节点2→南泥湾大生产文物(10min) + → 节点3→VR沉浸体验:南泥湾(8min) → 节点4→东江纵队展区(7min) + → 节点5→改革开放蛇口展区(7min) → 节点6→行动选择(5min) + +节点1: 延安十三年全景 (第0-8分钟): +├── UWB检测小陈进入「序厅A区」 +├── X1编排引擎下发指令: +│ ├── 环形屏幕: 播放繁体中文字幕版「延安十三年」全景影像 +│ ├── 灯光: 暖黄色调(窑洞氛围) +│ ├── 音频: 繁体中文语音导览 +│ └── AI终端: 加载「中学生+繁体」讲解上下文 +├── 小陈通过AI终端提问: +│ 「为什么延安能成为革命中心?」 +│ → AI可信馆员回答(附史料引用,繁体中文) +└── 系统记录: AI问答1次,停留8分钟 + +节点2: 南泥湾大生产文物 (第8-18分钟): +├── UWB检测小陈进入「文物展区B区」 +├── X1编排引擎下发指令: +│ ├── 展柜屏幕: 播放纺车3D旋转动画 + 繁体说明 +│ ├── 灯光: 聚焦展柜,环境光降低 +│ └── 互动终端: 激活「纺车操作体验」互动 +├── 小陈扫描文物二维码 → 手机显示纺车五层内容星图 +├── 小陈操作互动终端体验虚拟纺纱 +└── 系统记录: 查看文物3件,互动1次,停留10分钟 + +节点3: VR沉浸体验 (第18-28分钟): +├── 小陈到达VR体验区,排队等待(约3分钟) +│ └── 排队区屏幕播放: 南泥湾历史背景 + VR操作教学 +├── 进入VR工位,佩戴Pico头显 + 触觉背心 +├── VR场景加载: 南泥湾大生产(繁体中文UI) +├── 体验内容: +│ ├── 挥锄开荒(座椅前倾+背心振动+微风) +│ ├── 操作纺车(座椅节律振动+背心腰部振动) +│ └── 丰收场景(座椅加速感+全身振动+温暖气流) +├── VR内AI NPC(老乡形象)讲解大生产背景 +└── 系统记录: VR体验完成,停留10分钟(含排队) + +节点4: 东江纵队展区 (第28-35分钟): +├── UWB检测小陈进入「华南抗战D区」 +├── X1编排引擎下发指令: +│ ├── 屏幕播放: 东江纵队港九大队营救文化名人 +│ ├── 灯光: 冷色调(战争氛围) +│ └── AI终端: 加载东江纵队相关史料上下文 +├── 小陈发现「香港」相关内容,产生共鸣 +├── AI终端提问: +│ 「东江纵队和香港有什么关系?」 +│ → AI回答港九大队营救何香凝、茅盾等文化名人 +└── 系统记录: AI问答1次,查看文物2件,停留7分钟 + +节点5: 改革开放蛇口展区 (第35-42分钟): +├── UWB检测小陈进入「改革开放E区」 +├── X1编排引擎下发指令: +│ ├── 屏幕播放: 蛇口工业区「时间就是金钱」场景 +│ ├── 灯光: 明亮现代色调 +│ └── 互动终端: 激活「如果你是蛇口建设者」决策互动 +├── 小陈完成互动决策,系统生成对比分析 +└── 系统记录: 互动1次,停留7分钟 + +节点6: 行动选择 (第42-47分钟): +├── 小陈进入「行动实验室F区」 +├── 终端展示: 基于参观记录推荐的行动方向 +│ ├── 个人行动: 「采访一位长辈,记录他们知道的延安故事」 +│ ├── 团队行动: 「和同学一起制作一个关于东江纵队的短视频」 +│ └── 湾区行动: 「参加湾区青年红色文化研学营」 +├── 小陈选择: 团队行动「制作东江纵队短视频」 +├── 系统生成行动卡片,写入成长护照 +└── 系统设置: 7天/30天/90天回访提醒 + +离馆 (第47分钟): +├── 小陈在小程序查看离馆报告: +│ ├── 路线完成度: 6/6节点 (100%) +│ ├── 查看文物: 8件 +│ ├── AI问答: 2次 +│ ├── VR体验: 1次 +│ ├── 互动任务: 2次 +│ ├── 理解表达: (待填写) +│ └── 行动承诺: 制作东江纵队短视频(30天) +├── 小陈填写理解表达: +│ 「我以前觉得延安精神离我很远,但看到东江纵队在香港的故事, +│ 我觉得延安精神就是不怕困难、敢做别人没做过的事。」 +├── 报告生成PDF,可分享到社交媒体 +└── UWB手环归还 + +离馆后: +├── 第7天: 微信推送回顾消息 + 东江纵队延伸阅读 +├── 第30天: 推送进展反馈表单 → 小陈提交短视频初稿 +├── 第90天: 推送成果提交 → 小陈提交完成的短视频 +├── 优秀视频入选F6青年共创平台展示 +└── 小陈的成长护照记录完整闭环 +``` + +### 4.2 F2"十三年·十三问"历史情境任务剧场 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F2 情境任务剧场系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 任务引擎 │ 团队协作终端 │ AI复盘引擎 │ +│ (剧本+状态机) │ (多屏互动) │ (学习教练API) │ +├────────────────┼────────────────┼────────────────────┤ +│ 任务定义: │ 协作方式: │ 复盘内容: │ +│ - 历史问题 │ - 主屏: 情境展示 │ - 团队方案 vs 历史 │ +│ - 角色分配 │ - 分屏: 证据查看 │ - AI追问(史料引用) │ +│ - 资源约束 │ - 个人终端: 决策 │ - 证据使用分析 │ +│ - 证据集 │ - 团队屏: 方案汇总│ - 现实连接问题 │ +│ - 历史事实 │ │ │ +│ - 评价维度 │ │ │ +└────────────────┴────────────────┴────────────────────┘ +``` + +#### 任务状态机 + +```python +class TaskStateMachine: + states = [ + "INTRO", # 任务介绍 + "ROLE_ASSIGN", # 角色分配 + "EVIDENCE_REVIEW", # 证据查看 + "TEAM_DISCUSSION", # 团队讨论 + "DECISION_SUBMIT", # 方案提交 + "HISTORY_REVEAL", # 历史揭示 + "AI_REVIEW", # AI复盘 + "REALITY_LINK", # 现实连接 + "REPORT_GENERATE" # 报告生成 + ] + + transitions = [ + ("INTRO", "ROLE_ASSIGN"), + ("ROLE_ASSIGN", "EVIDENCE_REVIEW"), + ("EVIDENCE_REVIEW", "TEAM_DISCUSSION"), + ("TEAM_DISCUSSION", "DECISION_SUBMIT"), + ("DECISION_SUBMIT", "HISTORY_REVEAL"), + ("HISTORY_REVEAL", "AI_REVIEW"), + ("AI_REVIEW", "REALITY_LINK"), + ("REALITY_LINK", "REPORT_GENERATE") + ] +``` + +#### 任务定义数据模型 + +```sql +CREATE TABLE scenario_tasks ( + id VARCHAR(64) PRIMARY KEY, + title TEXT NOT NULL, + era VARCHAR(32) NOT NULL, -- 延安十三年中的具体时期 + historical_question TEXT NOT NULL, -- 真实历史问题 + duration_min INT DEFAULT 20, + roles JSONB NOT NULL, -- 角色列表及资源约束 + evidence JSONB NOT NULL, -- 证据集(文物/档案/地图/口述史) + historical_fact JSONB NOT NULL, -- 真实历史进程和结果 + reality_question TEXT, -- 当代湾区现实连接问题 + evaluation_dims JSONB NOT NULL, -- 评价维度 + review_status VARCHAR(32) DEFAULT 'draft', + version INT DEFAULT 1 +); +``` + +#### 复盘报告生成 + +``` +团队方案提交 + ↓ +AI学习教练API分析: + - 提取团队方案关键词 + - 与历史事实比对 + - 分析证据使用情况 + - 生成追问问题 + ↓ +报告模板渲染: + - 使用过的史料列表 + - 团队方案摘要 + - 历史事实对比 + - AI复盘评语 + - 现实行动建议 + ↓ +PDF/H5报告生成 → 推送到团队终端 → 存入成长护照 +``` + +#### 具体场景示例:南泥湾大生产任务剧本 + +```json +{ + "task_id": "task_nanniwan", + "title": "如何在「不饿死一个人」的前提下实现自给?", + "era": "1941-1943", + "duration_min": 20, + "historical_question": "1941年,国民党对陕甘宁边区实行经济封锁,外援断绝。你是八路军三五九旅的一员,奉命进驻南泥湾开荒生产。你面前有5000亩荒地、有限的农具和种子、即将到来的冬天。你如何制定生产计划,确保部队和百姓都能度过难关?", + "roles": [ + { + "role_id": "commander", + "title": "旅长", + "resources": ["5000亩荒地", "2000名战士", "有限农具", "3个月时间"], + "constraints": ["不能向百姓征粮", "必须保留一定战斗训练时间", "冬天前必须有收成"], + "decision_power": "最终决策权" + }, + { + "role_id": "production_chief", + "title": "生产队长", + "resources": ["种子库存清单", "农具清单", "劳动力分配表"], + "constraints": ["种子有限必须合理分配", "农具不足需要自制"], + "decision_power": "生产方案建议权" + }, + { + "role_id": "logistics", + "title": "后勤处长", + "resources": ["粮食储备清单", "百姓人口数据", "冬季物资需求"], + "constraints": ["现有粮食只够45天", "百姓也需要粮食"], + "decision_power": "粮食分配建议权" + }, + { + "role_id": "political", + "title": "政治指导员", + "resources": ["战士思想状况报告", "动员材料"], + "constraints": ["战士情绪波动", "有人质疑「当兵的为什么要种地」"], + "decision_power": "动员方案建议权" + } + ], + "evidence": [ + { + "type": "document", + "id": "doc_mao_1939", + "title": "毛泽东:自己动手,丰衣足食(1939年生产动员讲话)", + "excerpt": "「我们不要饿死一个人,也不要困死一个人...我们要自己动手,解决吃穿问题。」", + "source": "《毛泽东选集》第二卷" + }, + { + "type": "artifact", + "id": "art_spinning_wheel", + "title": "三五九旅纺车", + "description": "战士们用废木料自制的纺车,用于纺纱织布", + "image_url": "art_spinning_wheel.jpg", + "model_3d_url": "art_spinning_wheel.glb" + }, + { + "type": "document", + "id": "doc_wangzhen_report", + "title": "王震:三五九旅南泥湾生产报告(1943年)", + "excerpt": "「第一年开荒一万亩,产粮千余石;第二年开荒两万六千亩...」", + "source": "陕甘宁边区财政经济史" + }, + { + "type": "photo", + "id": "photo_nanniwan_1942", + "title": "南泥湾开荒照片(1942年)", + "description": "战士们在荒地上挥锄开荒的历史照片" + }, + { + "type": "oral_history", + "id": "oral_veteran_001", + "title": "老战士口述:南泥湾的第一个冬天", + "excerpt": "「没有房子,我们就挖窑洞;没有农具,就用废铁打锄头...」", + "source": "延安革命纪念馆口述史项目" + } + ], + "historical_fact": { + "what_happened": "三五九旅1941年3月进驻南泥湾,当年开荒1.1万亩,产粮1200石。到1943年,开荒面积达26.1万亩,产粮3.7万石,实现了「不要公家一粒米、一寸布、一文钱」的自给目标。", + "key_decisions": [ + "优先种植生长周期短的粮食作物(小米、玉米)", + "组织战士自制农具(用废铁打造锄头、犁)", + "挖窑洞解决住宿,不占用百姓房屋", + "开展生产竞赛,激发劳动热情", + "保留每日2小时军事训练" + ], + "outcome": "南泥湾从「荒山臭水黑泥潭」变为「陕北好江南」,成为大生产运动的旗帜。", + "spirit_connection": "自力更生、艰苦奋斗的延安精神" + }, + "reality_question": "如果你所在的社区/学校面临资源短缺,你能从南泥湾经验中学到什么?你会如何用有限的资源解决一个实际问题?", + "evaluation_dims": [ + {"dim": "证据使用", "weight": 0.25, "description": "是否充分使用了提供的史料"}, + {"dim": "方案可行性", "weight": 0.25, "description": "方案在历史条件下是否可行"}, + {"dim": "团队协作", "weight": 0.20, "description": "各角色是否充分履职协作"}, + {"dim": "精神理解", "weight": 0.15, "description": "是否理解自力更生的精神内核"}, + {"dim": "现实迁移", "weight": 0.15, "description": "能否将历史经验迁移到现实问题"} + ] +} +``` + +**体验流程**: + +``` +1. INTRO (2分钟): 主屏播放南泥湾历史背景视频 +2. ROLE_ASSIGN (1分钟): 4人分配角色(旅长/生产队长/后勤处长/政治指导员) +3. EVIDENCE_REVIEW (5分钟): + - 各角色查看专属证据(分屏显示) + - 可查看公共证据集(5条史料) + - VR模式: 在虚拟南泥湾场景中查看3D文物和文献 +4. TEAM_DISCUSSION (5分钟): + - 团队讨论生产计划 + - 各角色提出资源约束和建议 + - VR模式: 在虚拟窑洞中围坐讨论 +5. DECISION_SUBMIT (2分钟): + - 旅长综合意见,提交最终方案 + - 方案格式: {作物选择, 劳动力分配, 农具方案, 粮食分配, 动员策略} +6. HISTORY_REVEAL (2分钟): + - 主屏揭示历史事实: 三五九旅的真实做法和成果 + - 对比团队方案与历史方案的差异 +7. AI_REVIEW (2分钟): + - AI学习教练分析: + 「你们的方案优先种植粮食,这和历史上一致。但你们没有考虑自制农具, + 而三五九旅用废铁打造了锄头和犁——这正是「自力更生」的体现。」 + - 追问: 「如果种子不够,你们会怎么办?」 +8. REALITY_LINK (1分钟): + - 展示现实连接问题 + - 引导思考: 南泥湾经验对今天的启示 +9. REPORT_GENERATE: + - 生成复盘报告PDF + - 写入团队所有成员的成长护照 +``` + +### 4.3 F3"一物一世界"革命文物数字生命工程 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F3 文物数字生命系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 数字采集管理 │ 五层内容管理 │ 关系星图引擎 │ +├────────────────┼────────────────┼────────────────────┤ +│ 3D扫描: │ 五层结构: │ 可视化: │ +│ - 激光扫描任务 │ L1看见: 图像/3D │ - D3.js力导向图 │ +│ - 摄影测量任务 │ L2知道: 元数据 │ - 交互式星图 │ +│ - 质量检测 │ L3理解: 关联网络│ - 时间轴 │ +│ - 元数据录入 │ L4研究: 档案 │ - 点击节点展开 │ +│ │ L5连接: 课程/任务│ │ +├────────────────┼────────────────┼────────────────────┤ +│ 数字修复工作台 │ 展示终端 │ 组件生成器 │ +│ (Blender插件) │ (扫码→星图) │ (一物一课/短片) │ +└────────────────┴────────────────┴────────────────────┘ +``` + +#### 文物数据模型 + +```sql +CREATE TABLE artifacts ( + id VARCHAR(64) PRIMARY KEY, + name TEXT NOT NULL, + era VARCHAR(32), + level VARCHAR(32), -- 一级/二级/三级 + origin TEXT, + material TEXT, + dimensions JSONB, -- 尺寸 + condition TEXT, -- 保存状况 + status VARCHAR(32), -- on_display/in_storage/on_loan/repairing + -- 数字资产 + model_3d_url TEXT, -- 3D模型MinIO路径 + model_3d_format VARCHAR(32), -- glb/gltf/obj + images JSONB, -- 高清图片列表 + -- 五层内容 + layer1_see JSONB, -- 看见层内容 + layer2_know JSONB, -- 知道层内容 + layer3_understand JSONB, -- 理解层: 关联人物/事件/地点/文献 + layer4_research JSONB, -- 研究层: 原始档案/专家解读/争议 + layer5_connect JSONB, -- 连接层: 对应课程/任务/创作 + -- 知识图谱关联 + graph_node_id VARCHAR(64), -- Neo4j中的Artifact节点ID + -- 版本与审核 + review_status VARCHAR(32) DEFAULT 'draft', + version INT DEFAULT 1, + created_at TIMESTAMP DEFAULT NOW() +); +``` + +#### 关系星图前端实现 + +```javascript +// 使用D3.js力导向图渲染文物关系网络 +const svg = d3.select("#artifact-starmap"); +const simulation = d3.forceSimulation(nodes) + .force("link", d3.forceLink(links).id(d => d.id)) + .force("charge", d3.forceManyBody().strength(-300)) + .force("center", d3.forceCenter(width / 2, height / 2)); + +// 节点类型颜色编码 +const colorMap = { + Event: "#e74c3c", // 红色 - 事件 + Person: "#3498db", // 蓝色 - 人物 + Place: "#2ecc71", // 绿色 - 地点 + Document: "#f39c12", // 橙色 - 文献 + Concept: "#9b59b6", // 紫色 - 概念 + Course: "#1abc9c" // 青色 - 课程 +}; + +// 点击节点展开详情面板 +node.on("click", (event, d) => { + showDetailPanel(d); // 显示该节点的五层内容 +}); +``` + +#### 3D模型展示 + +- **格式**:glTF 2.0 (.glb),Web标准3D格式,支持Web和原生加载; +- **Web展示**:Three.js + OrbitControls,支持旋转、缩放、测量; +- **高精度研究版**:WebGPU渲染,支持法线贴图、PBR材质; +- **轻量公众版**:减面+压缩纹理,适配移动端; +- **推测性复原标识**:在UI上用不同颜色边框区分"史实确认"和"推测复原"。 + +#### 具体场景示例:纺车(art_spinning_wheel)五层内容 + +``` +文物基本信息: + 名称: 三五九旅纺车 + 年代: 1941-1943 + 级别: 一级革命文物 + 材质: 木材、铁钉、棉线 + 尺寸: 长85cm × 宽40cm × 高70cm + 来源: 南泥湾三五九旅旧址 + 现状: 完整,木质有自然老化 + +L1 看见层 (人人可看): + ├── 3D模型: 可360°旋转查看(Three.js渲染) + ├── 高清图片: 6个角度高清照片 + ├── 基本信息: 名称/年代/材质/尺寸 + └── 简要说明: 「这是三五九旅战士在南泥湾用废木料自制的纺车」 + +L2 知道层 (元数据): + ├── 使用者: 八路军三五九旅战士 + ├── 使用地点: 南泥湾 + ├── 使用时间: 1941-1943年 + ├── 功能: 纺纱织布,解决穿衣问题 + ├── 制作材料: 废木料、废铁钉(就地取材) + └── 文物级别: 一级 + +L3 理解层 (关联网络 → 星图): + ├── 关联事件: 南泥湾大生产(1941-1943) + ├── 关联人物: 王震(三五九旅旅长)、毛泽东(发起大生产运动) + ├── 关联地点: 南泥湾(延安东南) + ├── 关联文献: 《毛泽东选集》「自己动手,丰衣足食」 + ├── 关联概念: 自力更生、艰苦奋斗 + └── 星图可视化: D3.js力导向图,纺车为中心节点 + → 连接5个事件节点、3个人物节点、2个地点节点、 + 4个文献节点、2个概念节点 + +L4 研究层 (深度档案): + ├── 原始档案: 三五九旅生产报告(1943年)摘录 + ├── 专家解读: 延安革命纪念馆研究员视频讲解(8分钟) + ├── 历史争议: 纺车设计是否参考了民间传统纺车? + ├── 修复记录: 2015年文物保护修复全过程文档 + ├── 同类文物对比: 晋绥边区纺车、太行山区纺车对比表 + └── 口述史: 老战士回忆纺纱经历(录音+文字稿) + +L5 连接层 (课程与行动): + ├── 对应课程: + │ ├── 小学: 「南泥湾的故事」(15分钟动画课) + │ ├── 中学: 「自力更生的力量」(45分钟探究课) + │ └── 干部: 「从南泥湾看艰苦奋斗精神」(90分钟专题课) + ├── 对应任务: F2南泥湾情境任务(作为可交互证据) + ├── 对应VR: VR南泥湾场景中的可操作文物 + ├── 创作素材: 可用于F6青年共创的3D模型和史料 + └── 行动连接: F7「用有限资源解决一个问题」行动模板 +``` + +**扫码体验流程**: + +``` +观众在展柜前扫描文物二维码 + ↓ +手机加载文物星图H5页面 + ↓ +默认显示L1看见层: 3D模型 + 基本信息 + ↓ +向上滑动 → L2知道层: 元数据卡片 + ↓ +点击星图节点 → L3理解层: 关联网络可视化 + ↓ +点击「深度研究」→ L4研究层: 档案文献 + ↓ +点击「相关课程」→ L5连接层: 课程推荐 + ↓ +点击「做一做」→ 跳转到F7行动选择 +``` + +### 4.4 F4"一人一程"成长护照 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F4 成长护照系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 参观前导学 │ 参观中记录 │ 离馆后回访 │ +│ (小程序/H5) │ (终端+UWB+RFID)│ (定时推送+反馈) │ +├────────────────┼────────────────┼────────────────────┤ +│ - 人群选择 │ - 文物查看记录 │ - 第7天推送回顾 │ +│ - 问题选择 │ - 任务完成记录 │ - 第30天进展反馈 │ +│ - 团队目标创建 │ - AI问答记录 │ - 第90天成果提交 │ +│ - 参观建议生成 │ - 理解表达记录 │ - 后续课程推荐 │ +│ - 导学材料推送 │ - 行动选择记录 │ - 临展/活动提醒 │ +└────────────────┴────────────────┴────────────────────┘ +``` + +#### 前端技术方案 + +| 场景 | 技术方案 | 理由 | +|------|---------|------| +| 参观前导学 | 微信小程序 + H5 | 无需下载,覆盖面广 | +| 参观中记录 | 小程序 + UWB手环联动 | 自动记录位置,手动记录学习 | +| 离馆报告 | H5页面 + PDF下载 | 即时生成,可分享 | +| 离馆后回访 | 微信模板消息 + 小程序 | 触达率高,体验连贯 | +| 港澳青年 | 独立H5门户(繁体/英文) | 不依赖微信,支持港澳访问 | + +#### 数据采集边界 + +```python +# 允许采集的数据 +ALLOWED_DATA = { + "audience_type": "用户主动选择", # 人群类型 + "learning_question": "用户主动输入", # 学习问题 + "duration_choice": "用户主动选择", # 可用时长 + "language_choice": "用户主动选择", # 语言偏好 + "viewed_artifacts": "UWB/RFID自动记录", # 查看过的文物ID + "completed_tasks": "系统自动记录", # 完成的任务ID + "ai_qa_log": "系统自动记录", # AI问答记录(脱敏) + "understanding_text": "用户主动输入", # 理解表达 + "action_choice": "用户主动选择", # 行动承诺 + "feedback_text": "用户主动提交" # 回访反馈 +} + +# 禁止采集的数据 +FORBIDDEN_DATA = [ + "人脸特征", + "情绪识别结果", + "政治倾向推断", + "宗教信仰推断", + "非主动行为的态度标签", + "未成年人非必要个人信息" +] +``` + +#### 具体场景示例:党员干部老张的完整学习旅程 + +``` +参观前 (提前一周): +├── 老张收到单位通知,扫码进入小程序 +├── 选择人群类型: 「党员干部」 +├── 选择学习问题: +│ 「延安整风运动对今天党的作风建设有什么启示?」 +├── 选择可用时长: 「半天(3小时)」 +├── 选择语言: 「简体中文」 +├── 系统生成路线: 8个节点(含2个情境任务+1个VR) +├── 推送导学材料: +│ ├── 文献: 《改造我们的学习》原文 +│ ├── 视频: 延安整风历史背景(15分钟) +│ └── 预习问题: 整风运动要解决的核心问题是什么? +└── 老张完成预习,护照记录「导学完成」 + +参观中 (3小时): +├── 节点1: 延安十三年全景(15min) → AI深度问答 +├── 节点2: 整风运动文献展区(20min) → 查看22篇原始文献 +├── 节点3: 情境任务「如何开展整风?」(25min) +│ ├── 角色: 政治指导员 +│ ├── 证据: 整风文献22篇 + 口述史3条 +│ ├── 团队决策: 制定整风实施方案 +│ └── AI复盘: 对比历史整风方案 +├── 节点4: 窑洞生活VR体验(10min) +├── 节点5: 群众路线展区(20min) → AI问答2次 +├── 节点6: 情境任务「如何处理群众矛盾?」(25min) +├── 节点7: 廉政教育展区(20min) → 查看案例 +└── 节点8: 行动选择(15min) + +行动选择: +├── 老张选择团队行动: +│ 「在单位组织一次「实事求是」专题学习会」 +├── 行动步骤: +│ ├── 第1周: 收集单位工作中「不实事求是」的案例 +│ ├── 第2-3周: 组织专题讨论会 +│ └── 第4周: 形成改进方案并提交 +├── 证据要求: 会议记录 + 改进方案文档 +└── 目标: 30天内完成 + +离馆报告 (关键内容): +├── 学习时长: 3小时12分 +├── 路线完成: 8/8节点 +├── AI问答: 5次(全部有史料引用) +├── 情境任务: 2次(评价: 良好/优秀) +├── VR体验: 1次 +├── 查看文物: 23件 +├── 查看文献: 38篇 +├── 理解表达: +│ 「整风运动的核心是「实事求是」,今天我们工作中 +│ 形式主义的问题,本质上就是脱离了实事求是。 +│ 我要在单位推动解决几个实际问题,而不是开会走过场。」 +└── 行动承诺: 组织「实事求是」专题学习会(30天) + +离馆后回访: +├── 第7天: 推送 → 老张反馈「已收集3个形式主义案例」 +├── 第30天: 推送 → 老张提交: +│ ├── 会议记录(照片+文字) +│ ├── 改进方案(PDF) +│ └── 同事反馈(3条) +├── 系统评估: 行动完成 ✓ +├── 优秀案例 → 纳入S4教研培训案例库 +└── 老张护照记录: 完整闭环 ✓ +``` + +### 4.5 F5"永不闭馆"云上学习共同体 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F5 云上学习共同体 │ +├────────────────┬────────────────┬────────────────────┤ +│ Web3D云展馆 │ 云端课程平台 │ 协作任务平台 │ +├────────────────┼────────────────┼────────────────────┤ +│ Three.js+WebGPU │ 视频点播/直播 │ WebRTC实时协作 │ +│ 虚拟漫游 │ 课程管理 │ 多人同堂任务 │ +│ AI导览 │ 学时记录 │ 粤港澳三地同步 │ +│ 文物3D展示 │ 证书发放 │ 在线研讨室 │ +├────────────────┼────────────────┼────────────────────┤ +│ 8分钟精华模式 │ 一节课模式 │ 协作任务模式 │ +│ (轻量H5) │ (视频+互动) │ (WebRTC+白板) │ +├────────────────┼────────────────┼────────────────────┤ +│ 深度研究模式 │ 同步在场模式 │ +│ (文献检索+图谱) │ (直播+弹幕+连麦) │ +└────────────────┴────────────────┴────────────────────┘ +``` + +#### Web3D云展馆技术 + +``` +渲染方案: + 高端模式: WebGPU + Three.js (支持PBR、实时光照) + 轻量模式: WebGL 2.0 + 减面模型 + 烘焙光照贴图 + 极简模式: 全景图片热点导航 (360° panorama + hotspot) + +加载优化: + - 模型LOD: 根据设备性能自动选择精度等级 + - 渐进式加载: 先加载低精度模型,后台替换高精度 + - 资源CDN: 静态资源通过CDN分发,港澳节点加速 + - Service Worker: 缓存已访问区域的3D资源 + +AI导览集成: + - 虚拟空间中嵌入AI数字人(Three.js + 视频纹理) + - 或通过语音+文字方式提供导览(不依赖3D数字人) + - AI导览路线与线下路线共享同一套内容组件 +``` + +#### 粤港澳三地协作技术 + +``` +WebRTC架构: + 信令服务器: Node.js + Socket.IO + TURN/STUN: 自建TURN服务器(穿透防火墙) + 媒体流: 每个参与者音视频流 + 协作白板: Yjs (CRDT协同编辑) + Canvas + 屏幕共享: getDisplayMedia API + +协作场景: + - 三地同上一堂课: 教师直播 + 学生实时互动 + - 跨校团队任务: 共享白板 + 语音讨论 + 文件协作 + - 线上研讨室: 多人视频圆桌 + AI记录摘要 +``` + +#### 具体场景示例:澳门中学生小李的线上学习旅程 + +``` +背景: 小李是澳门某中学初三学生,学校未组织线下参观。 + 她通过老师推荐访问云上学习共同体。 + +第一次访问 (8分钟精华模式): +├── 小李通过浏览器访问云展馆H5门户 +├── 选择语言: 「繁体中文」 +├── 选择模式: 「8分钟精华」 +├── 系统加载: 全景图片热点导航模式(极简模式) +├── 体验流程: +│ ├── 热点1: 延安十三年全景(2分钟视频) +│ ├── 热点2: 南泥湾纺车3D展示(可旋转) +│ ├── 热点3: 东江纵队港九大队故事(2分钟视频) +│ └── 热点4: AI问答: 「延安精神对澳门青年有什么意义?」 +├── AI回答(繁体中文+史料引用): +│ 「延安精神的核心是自力更生和艰苦奋斗。 +│ 澳门回归前,澳门同胞也展现了这种精神...」 +└── 小李注册成长护照(线上版) + +第二次访问 (一节课模式,3天后): +├── 老师布置课后学习任务 +├── 小李选择课程: 「自力更生的力量」(45分钟) +├── 课程内容: +│ ├── 视频1: 南泥湾大生产历史(15分钟) +│ ├── 互动: 虚拟纺车操作体验(5分钟) +│ ├── 视频2: 澳门回归建设中的自力更生(10分钟) +│ ├── 互动: 思考题「你在生活中遇到过需要自力更生的情况吗?」 +│ └── 测验: 5道选择题(全部通过) +├── 系统记录学时: 45分钟 +└── 护照更新: 课程完成 + 学时记录 + +第三次访问 (协作任务模式,2周后): +├── 学校组织粤港澳三地跨校协作任务 +├── 任务: 「三地青年共讲一个延安精神故事」 +├── 小李被分入混合小组(广州1人+香港1人+澳门2人) +├── 协作过程: +│ ├── WebRTC视频连线: 三地学生面对面讨论 +│ ├── Yjs协同白板: 共同绘制故事大纲 +│ ├── 小李负责: 澳门视角的延安精神理解 +│ ├── 分工制作: 各自录制1分钟视频片段 +│ └── 合成: 使用平台在线编辑器合并 +├── 提交作品: 4分钟短视频「延安精神在湾区」 +├── AI编审助手检查: 史实准确 ✓ 来源完整 ✓ +├── 人工审核通过 → 发布到线上专区 +└── 护照更新: 协作任务完成 + +持续学习: +├── 系统推荐课程: 「实事求是的思想方法」 +├── 临展提醒: 「湾区青年红色文创展」线上版 +├── 行动选择: 「在学校组织一次延安精神分享会」 +└── 小李的成长护照: 线上学习闭环 +``` + +### 4.6 F6"湾区青年共创计划" + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F6 湾区青年共创平台 │ +├────────────────┬────────────────┬────────────────────┤ +│ 共创项目管理 │ 创作工具集 │ 审核与展示 │ +├────────────────┼────────────────┼────────────────────┤ +│ - 年度主题发布 │ - AI辅助写作 │ - 三级审核工作流 │ +│ - 混合小组组建 │ - AI辅助绘画 │ - 线上专区展示 │ +│ - 专家工作坊预约 │ - 短视频编辑 │ - 优秀作品入临展 │ +│ - 进度跟踪 │ - 声音档案录制 │ - 青年公开讲述直播 │ +│ - 资源库访问 │ - 互动网页制作 │ │ +└────────────────┴────────────────┴────────────────────┘ +``` + +#### AI辅助创作工具 + +| 工具 | 技术方案 | 安全约束 | +|------|---------|---------| +| AI辅助写作 | 大模型生成 + 模板引导 | 强制标注AI辅助,人工审核 | +| AI辅助绘画 | Stable Diffusion + 红色文化LoRA | 生成内容经编审助手API检查 | +| 短视频编辑 | FFmpeg + Web编辑器 | 输出经审核后发布 | +| 声音档案 | Web Audio API + 录音 | 口述史需标注来源 | + +#### 共创审核流程 + +``` +青年提交作品 + ↓ +AI编审助手自动检查: + - 史实准确性(与知识图谱比对) + - 来源完整性(是否标注史料来源) + - 版权合规(是否使用授权素材) + - 政治合规(规则引擎检查) + ↓ +人工审核(编辑复审) + ↓ +专家终审(必要时的史实终审) + ↓ +发布到线上专区 + ↓ +优秀作品 → 线下临展 → 青年公开讲述 +``` + +#### 具体场景示例:2026年秋季共创项目 + +``` +年度主题: 「延安精神 × 湾区故事」 + +项目发布: +├── 旗舰中心发布年度共创主题 +├── 面向湾区高校征集混合小组(每校2-3人) +├── 提供创作资源包: +│ ├── 50件文物3D模型(可商用) +│ ├── 100条史料文献(已授权) +│ ├── AI辅助创作工具(写作/绘画/视频) +│ └── 专家工作坊预约入口 + +混合小组示例: +├── 组名: 「延安·蛇口·我」 +├── 成员: +│ ├── 组长: 深圳大学 小王 (策划+文案) +│ ├── 组员: 香港中文大学 小陈 (视频拍摄) +│ ├── 组员: 澳门大学 小李 (资料研究) +│ └── 组员: 中山大学 小刘 (交互设计) +├── 指导专家: 延安精神研究会研究员(线上指导2次) + +创作过程 (30天): +├── 第1周: 选题与资料研究 +│ ├── 小李使用策展助手API检索史料 +│ ├── 确定主题: 「从南泥湾到蛇口——自力更生的两个故事」 +│ └── 提交选题报告 → 专家审核通过 +├── 第2周: 内容创作 +│ ├── 小王使用AI辅助写作工具撰写脚本 +│ │ └── AI生成初稿 → 人工修改 → 标注AI辅助 +│ ├── 小陈在深圳蛇口拍摄实景 +│ └── 小刘设计交互网页原型 +├── 第3周: 整合制作 +│ ├── 小陈使用平台视频编辑器剪辑 +│ ├── 小刘制作交互网页(Three.js展示文物) +│ └── 小李补充史料注释和来源 +└── 第4周: 审核与提交 + ├── AI编审助手检查: + │ ├── 史实准确性: ✓ (与知识图谱比对通过) + │ ├── 来源完整性: ✓ (12条史料引用) + │ ├── 版权合规: ✓ (使用授权素材) + │ └── 政治合规: ✓ + ├── 编辑复审: 通过 + ├── 专家终审: 通过 + └── 提交完成 + +成果展示: +├── 线上专区: 「延安精神×湾区故事」作品页 +├── 作品内容: 5分钟视频 + 交互网页 + 史料注释 +├── 线下临展: 入选「湾区青年红色文创展」 +├── 青年讲述: 小王在临展开幕式做5分钟公开讲述(直播) +└── 所有成员成长护照记录共创成果 +``` + +### 4.7 F7"把精神带回去"现实行动实验室 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F7 现实行动实验室 │ +├────────────────┬────────────────┬────────────────────┤ +│ 行动选择终端 │ 行动跟踪系统 │ 成果回流系统 │ +├────────────────┼────────────────┼────────────────────┤ +│ - 行动方向展示 │ - 行动卡片生成 │ - 成果提交入口 │ +│ - 行动模板选择 │ - 7/30/90天跟踪 │ - 成果墙展示 │ +│ - 自定义行动 │ - 进展提醒 │ - 课程案例转化 │ +│ - 团队行动创建 │ - 反馈表单 │ - 年度优秀评选 │ +└────────────────┴────────────────┴────────────────────┘ +``` + +#### 行动模板数据模型 + +```sql +CREATE TABLE action_templates ( + id VARCHAR(64) PRIMARY KEY, + spirit_category VARCHAR(32) NOT NULL, -- seek_truth/serve_people/self_reliance/right_direction + title TEXT NOT NULL, + description TEXT NOT NULL, + target_days INT NOT NULL, -- 7/30/90 + action_type VARCHAR(32) NOT NULL, -- individual/team/bay_area + audience_tags JSONB, + steps JSONB NOT NULL, -- 行动步骤列表 + evidence_required JSONB, -- 需要提交的证明材料类型 + review_required BOOLEAN DEFAULT true, + version INT DEFAULT 1 +); +``` + +#### 具体场景示例:三类行动方向实例 + +``` +行动方向A: 个人行动 — 「实事求是调查员」 +├── 精神类别: seek_truth (实事求是) +├── 适用人群: 中学生/大学生/党员干部 +├── 行动内容: 在7天内,找到一个自己学习或工作中 +│ 「不实事求是」的例子,记录下来并提出改进建议 +├── 行动步骤: +│ ├── Day 1-2: 观察并记录一个「形式主义」或「走过场」的例子 +│ ├── Day 3-5: 分析原因(是制度问题还是态度问题?) +│ ├── Day 6-7: 写一份200字的改进建议 +│ └── 提交: 文字记录 + 改进建议 +├── 证据要求: 文字描述(可选照片) +├── 回访节点: 第7天提交成果 +└── 优秀案例 → 转化为S4教研案例 + +行动方向B: 团队行动 — 「南泥湾式创新项目」 +├── 精神类别: self_reliance (自力更生) +├── 适用人群: 企业团队/机关支部/学生社团 +├── 行动内容: 在30天内,用有限资源解决团队面临的 +│ 一个实际问题(不能增加预算) +├── 行动步骤: +│ ├── Week 1: 团队讨论确定要解决的问题 +│ ├── Week 2: 制定「零预算」解决方案 +│ ├── Week 3: 实施方案 +│ └── Week 4: 总结成果并提交 +├── 证据要求: 问题描述 + 方案文档 + 实施记录 + 成果照片 +├── 回访节点: 第7天(进展) + 第30天(成果) +└── 优秀案例 → 成果墙展示 + 年度评选 + +行动方向C: 湾区行动 — 「红色故事传播者」 +├── 精神类别: serve_people (为人民服务) +├── 适用人群: 港澳青年/大学生/志愿者 +├── 行动内容: 在90天内,采访3位长辈(家人/邻居/老师), +│ 记录他们知道的红色故事,制作一个传播作品 +├── 行动步骤: +│ ├── Month 1: 采访3位长辈,录音/录像记录 +│ ├── Month 2: 整理故事,使用F6平台AI工具辅助创作 +│ │ └── 可选形式: 短视频/播客/图文/交互网页 +│ └── Month 3: 发布作品(社交媒体/学校/社区) +├── 证据要求: 采访录音 + 创作作品 + 发布截图 +├── 回访节点: 第7天 + 第30天 + 第90天 +└── 优秀作品 → F6青年共创平台 + 线下临展 + +行动选择终端交互流程: + +┌──────────────────────────────────────┐ +│ 你想把什么精神带回去? │ +├──────────────────────────────────────┤ +│ │ +│ ┌──────────┐ ┌──────────┐ │ +│ │ 实事求是 │ │ 自力更生 │ │ +│ │ 调查员 │ │ 创新项目 │ │ +│ │ (7天) │ │ (30天) │ │ +│ └──────────┘ └──────────┘ │ +│ │ +│ ┌──────────┐ ┌──────────┐ │ +│ │ 为人民 │ │ 自定义 │ │ +│ │ 服务 │ │ 行动 │ │ +│ │ 传播者 │ │ │ │ +│ │ (90天) │ │ │ │ +│ └──────────┘ └──────────┘ │ +│ │ +│ 基于你的参观记录推荐: │ +│ → 你在东江纵队展区停留最久 │ +│ → 推荐: 「红色故事传播者」 │ +└──────────────────────────────────────┘ +``` + +### 4.8 F8"星火节点"全国复制网络 + +#### 节点技术架构 + +``` +L1 微节点技术栈: + - 一块触屏交互一体机(Android) + - 离线内容包(课程视频+AI问答轻量版) + - 定期同步更新(WiFi/4G) + - 无需本地服务器 + +L2 标准节点技术栈: + - 标准展陈屏幕 + 互动终端 + - 边缘计算盒子(NVIDIA Jetson)运行AI推理 + - 本地内容缓存 + 云端AI增强 + - 成长护照接入 + - 云端连线能力 + +L3 城市节点技术栈: + - 完整展陈系统(屏幕+灯光+音频) + - 本地服务器(2-4台)运行K8s + - 本地知识图谱子集 + 向量库子集 + - 本地内容审核 + 总馆规则校验 + - 独立运营 + 数据上报 + +L4 旗舰中心技术栈: + - 完整私有云(20+服务器) + - GPU推理集群(8×A100) + - 完整知识图谱 + 向量库 + 内容仓 + - 全国节点调度中心 + - 权威内容生产与发布 +``` + +#### 具体场景示例:L2标准节点部署到某高校 + +``` +节点信息: + 节点名称: 某理工大学「延安精神学习角」 + 节点级别: L2标准节点 + 部署位置: 图书馆一楼大厅 + 空间面积: 30㎡ + 日接待量: 约200人 + +部署流程 (7天): + +Day 1-2: 硬件安装 +├── 触屏一体机×2 (65寸交互屏) +├── 边缘计算盒子×1 (NVIDIA Jetson AGX Orin) +├── VR设备: Pico头显×2 + ALVR串流方案 +├── 网络配置: 5G路由 + 校园网对接 +└── 安防: 摄像头×1 + 设备锁 + +Day 3-4: 软件部署 +├── 从S9节点协同系统拉取组件包: +│ ├── pkg_2026_q3_v1 (标准展览组件包) +│ │ ├── 知识图谱子集: 延安十三年核心事件 +│ │ ├── 向量库子集: 500条核心史料 +│ │ ├── 课程: 10门(覆盖5个人群) +│ │ ├── 体验: 2个情境任务 + 1个VR场景 +│ │ └── 运营SOP: 日常操作手册 +│ └── Helm Chart: node-deployment.yaml +├── K3s轻量集群部署(Jetson上运行) +├── AI推理: Qwen2.5-7B量化版(本地运行) +├── 内容缓存: 3D模型+视频本地存储 +└── 云端增强: 复杂问题转发旗舰中心AI + +Day 5: 系统联调 +├── 触屏终端测试: 课程播放 + AI问答 + 文物浏览 +├── VR串流测试: ALVR连接 + 延迟<40ms +├── 云端连线测试: 与旗舰中心视频连线正常 +├── 成长护照测试: 扫码登录 + 记录同步 +└── 健康检查: POST /api/s9/node/{node_id}/health → OK + +Day 6: 内容适配 +├── 接入本校特色: +│ ├── 学校红色校史片段(提交到旗舰中心审核) +│ └── 本校师生优秀作品(从F6平台同步) +├── 设置本校推荐路线: +│ ├── 大学生路线(30分钟): AI问答+1个任务+VR +│ └── 教师路线(20分钟): AI问答+课程浏览 +└── 配置运营信息: 开放时间/预约方式/联系人 + +Day 7: 上线运营 +├── 正式开放 +├── 学生刷校园卡进入 +├── 体验数据每日上报旗舰中心 +└── 运营效果纳入S8数据中台对比分析 + +日常运营: +├── 学生体验流程: +│ ├── 刷卡 → 选择人群/问题/时长 +│ ├── 触屏浏览课程 + AI问答 +│ ├── VR体验(排队预约) +│ └── 成长护照同步到个人手机 +├── 内容更新: 每季度从旗舰中心同步新组件包 +├── 本地内容提交: 本校优秀作品 → 旗舰中心审核 → 全国共享 +└── 远程监控: 旗舰中心实时监控设备状态 +``` + +#### 节点部署自动化 + +```yaml +# Helm Chart: node-deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: yan-an-node-core +spec: + replicas: 1 + template: + spec: + containers: + - name: ai-service + image: registry.yan-an.example/ai-service:{{.Values.version}} + resources: + limits: + nvidia.com/gpu: {{.Values.gpu_count}} + - name: content-service + image: registry.yan-an.example/content-service:{{.Values.version}} + - name: experience-orchestrator + image: registry.yan-an.example/orchestrator:{{.Values.version}} + - name: knowledge-graph + image: registry.yan-an.example/neo4j-custom:{{.Values.version}} +``` + +--- + +## 五、VR/XR沉浸体验技术实现 + +### 5.1 VR/XR整体架构 + +VR/XR沉浸体验是线下场馆"不可替代性"的核心组成,不是独立展项,而是嵌入F1自适应叙事空间和F2情境任务剧场的沉浸交互层。 + +``` +┌──────────────────────────────────────────────────────────────┐ +│ VR/XR 沉浸体验系统 │ +├──────────────┬──────────────┬──────────────────────────────┤ +│ 内容生产层 │ 运行时引擎 │ 设备与体感层 │ +├──────────────┼──────────────┼──────────────────────────────┤ +│ Unity场景工程 │ 场景管理器 │ VR头显(Pico 4 Enterprise) │ +│ 3D资产管线 │ 多人同步引擎 │ MR设备(Meta Quest 3) │ +│ 交互逻辑脚本 │ 编排对接层 │ 体感座椅(6DOF动态平台) │ +│ AI NPC驱动 │ 安全监控守护 │ 手部追踪(Leap Motion) │ +│ 场景烘焙渲染 │ 性能监控 │ 触觉反馈手套(bHaptics) │ +│ │ │ 定位基站(Lighthouse) │ +│ │ │ 环绕音响(5.1/7.1) │ +│ │ │ 风效/热效/气味发生器 │ +└──────────────┴──────────────┴──────────────────────────────┘ +``` + +### 5.2 VR场景开发架构 + +#### 5.2.1 Unity项目结构 + +``` +YanAnVR/ +├── Assets/ +│ ├── Scenes/ # 场景文件 +│ │ ├── Nanniwan.unity # 南泥湾大生产 +│ │ ├── EnemyRear.unity # 敌后根据地 +│ │ ├── Yaodong.unity # 延安窑洞生活 +│ │ ├── Dongjiang.unity # 东江纵队游击战场 +│ │ ├── ReformOpening.unity # 改革开放蛇口场景 +│ │ └── Loading.unity # 加载过渡场景 +│ ├── Prefabs/ # 预制体 +│ │ ├── Artifacts/ # 可交互文物预制体 +│ │ ├── Characters/ # NPC角色预制体 +│ │ ├── Environment/ # 环境元素(地形/植被/建筑) +│ │ └── UI/ # VR空间UI预制体 +│ ├── ScriptableObjects/ # 数据资产 +│ │ ├── TaskDefinitions/ # 任务定义(与F2共享数据格式) +│ │ ├── NarrativeNodes/ # 叙事节点(与可信叙事引擎共享) +│ │ └── ArtifactData/ # 文物元数据(与F3共享) +│ ├── Scripts/ # C#脚本 +│ │ ├── Core/ # 核心框架 +│ │ │ ├── SceneManager.cs # 场景加载与切换 +│ │ │ ├── MultiplayerSync.cs # 多人同步 +│ │ │ ├── OrchestratorClient.cs # 与X1编排引擎通信 +│ │ │ ├── AIBridge.cs # 与AI可信馆员API通信 +│ │ │ └── SafetyGuard.cs # 安全监控守护 +│ │ ├── Interaction/ # 交互逻辑 +│ │ │ ├── GrabInteractable.cs # 抓取交互 +│ │ │ ├── TaskTrigger.cs # 任务触发 +│ │ │ ├── EvidenceInspector.cs # 证据查看 +│ │ │ └── HapticFeedback.cs # 触觉反馈 +│ │ └── NPC/ # AI NPC +│ │ ├── NPCController.cs # NPC行为控制 +│ │ ├── LipSync.cs # 口型同步 +│ │ └── VoicePlayer.cs # 语音播放 +│ ├── Models/ # 3D模型(FBX/glTF) +│ ├── Textures/ # 纹理贴图 +│ ├── Audio/ # 音频资源 +│ └── Shaders/ # 自定义着色器 +├── Plugins/ +│ ├── UnityXR/ # XR Interaction Toolkit +│ ├── PhotonFusion/ # 多人联网 +│ └── WebSocket/ # WebSocket客户端 +└── ProjectSettings/ +``` + +#### 5.2.2 场景管理器 + +```csharp +/// +/// VR场景管理器:负责场景加载、切换和生命周期管理 +/// +public class VRSceneManager : MonoBehaviour +{ + // 场景加载采用Addressables异步加载,避免卡顿 + [SerializeField] private AssetReferenceScene loadingScene; + + // 当前激活的场景ID(与X1编排引擎同步) + private string currentSceneId; + + // 场景元数据(从ScriptableObjects加载) + private Dictionary sceneMetadataMap; + + /// + /// 从X1编排引擎接收场景切换指令 + /// + public async void SwitchScene(string sceneId, string audienceType, string language) + { + // 1. 淡出当前场景 + await FadeOut(0.5f); + + // 2. 卸载当前场景 + await SceneManager.UnloadSceneAsync(currentSceneId); + + // 3. 加载过渡场景 + await loadingScene.LoadSceneAsync(LoadSceneMode.Additive); + + // 4. 预加载目标场景资源 + var sceneMetadata = sceneMetadataMap[sceneId]; + await PreloadAssets(sceneMetadata.assetRefs); + + // 5. 加载目标场景 + var loadOp = SceneManager.LoadSceneAsync(sceneId, LoadSceneMode.Additive); + loadOp.completed += (op) => + { + // 6. 根据人群类型适配内容 + AdaptToAudience(audienceType, language); + + // 7. 淡入 + FadeIn(0.5f); + + // 8. 通知编排引擎场景就绪 + OrchestratorClient.NotifySceneReady(sceneId); + + // 9. 卸载过渡场景 + SceneManager.UnloadSceneAsync("Loading"); + }; + + currentSceneId = sceneId; + } + + /// + /// 根据人群类型适配VR场景内容 + /// + private void AdaptToAudience(string audienceType, string language) + { + // 小学:简化交互、增加引导NPC、缩短任务时长 + // 中学:增加因果推理任务、证据收集环节 + // 干部:增加理论深度、历史决策复盘 + // 港澳:繁体/英文UI、轻量化叙事 + var adapter = GetComponent(); + adapter.Apply(audienceType, language); + } +} +``` + +#### 5.2.3 五大VR场景定义 + +| 场景 | 历史时期 | 核心体验 | 交互重点 | 对应F2任务 | +|------|---------|---------|---------|-----------| +| 南泥湾大生产 | 1941-1943 | 开荒、纺纱、生产竞赛 | 抓取农具、操作纺车、种植作物 | "如何在不饿死一个人的前提下实现自给" | +| 敌后根据地 | 1938-1945 | 游击战术、群众工作、地雷战 | 地图标注、群众动员、物资调配 | "在敌后如何建立并维持一个根据地" | +| 延安窑洞生活 | 1938-1947 | 日常起居、整风学习、文艺活动 | 翻阅文献、参与讨论、体验生活条件 | "在极端艰苦中如何保持信念和创造力" | +| 东江纵队游击战场 | 1943-1945 | 华南抗日、港九大队、营救文化名人 | 穿越封锁线、传递情报、营救行动 | "如何在日占区开展有效抵抗" | +| 改革开放蛇口 | 1979-1984 | 蛇口工业区、时间就是金钱、敢为人先 | 工程决策、招商引资、制度创新 | "如何在一片荒滩上建起现代工业区" | + +### 5.3 体感设备集成方案 + +#### 5.3.1 体感设备矩阵 + +``` +┌──────────────────────────────────────────────────────────────┐ +│ VR体验工位 (4座/场景) │ +├──────────────────────────────────────────────────────────────┤ +│ │ +│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ +│ │ 座位1 │ │ 座位2 │ │ 座位3 │ │ 座位4 │ │ +│ │ VR头显 │ │ VR头显 │ │ VR头显 │ │ VR头显 │ │ +│ │ 动态座椅│ │ 动态座椅│ │ 动态座椅│ │ 动态座椅│ │ +│ │ 触觉背心│ │ 触觉背心│ │ 触觉背心│ │ 触觉背心│ │ +│ │ 手柄×2 │ │ 手柄×2 │ │ 手柄×2 │ │ 手柄×2 │ │ +│ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ │ +│ │ │ │ │ │ +│ └───────────┴───────────┴───────────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ 边缘计算盒子 │ │ +│ │ (VR渲染主机) │ │ +│ │ NVIDIA RTX │ │ +│ │ 4080/4090 │ │ +│ └───────┬───────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ 环绕音响5.1 │ │ +│ │ 风效/热效 │ │ +│ │ 气味发生器 │ │ +│ └───────────────┘ │ +└──────────────────────────────────────────────────────────────┘ +``` + +#### 5.3.2 体感联动控制 + +```csharp +/// +/// 体感设备联动控制器:根据VR场景事件触发物理体感 +/// +public class HapticEnvironmentController : MonoBehaviour +{ + // 动态座椅控制 (通过串口/USB) + private DynamicSeatInterface seatController; + + // 触觉反馈背心 (bHaptics SDK) + private bHapticsHandler hapticsHandler; + + // 环境效果控制器 (通过MQTT) + private MQTTClient envController; + + // 效果预设库 + private Dictionary effectPresets; + + /// + /// 场景事件触发体感效果 + /// + public void TriggerEffect(string effectId, float intensity = 1.0f) + { + var effect = effectPresets[effectId]; + + // 1. 动态座椅运动 + if (effect.seatMotion != null) + { + seatController.PlayMotion(effect.seatMotion, intensity); + } + + // 2. 触觉背心振动 + if (effect.hapticPattern != null) + { + hapticsHandler.PlayPattern(effect.hapticPattern, intensity); + } + + // 3. 环境效果(风/热/气味) + if (effect.environment != null) + { + envController.Publish("env/effect", JsonUtility.ToJson(effect.environment)); + } + } +} + +// 效果预设示例 +[CreateAssetMenu(fileName = "EnvEffect", menuName = "VR/EnvironmentEffect")] +public class EnvironmentEffect : ScriptableObject +{ + public string effectId; + public SeatMotion seatMotion; // 座椅运动模式 + public string hapticPattern; // 触觉反馈模式名 + public EnvironmentTrigger environment; // 环境效果 + public float defaultIntensity; + public float maxIntensity; + public float duration; +} + +// 南泥湾场景体感效果示例 +// "开荒挥锄": 座椅轻微前倾 + 背心肩部振动 + 微风 +// "纺车转动": 座椅轻微振动 + 背心腰部节律振动 +// "大生产竞赛": 座椅加速感 + 背心全身振动 + 强风 + 热感 +// "丰收喜悦": 座椅上升感 + 背心轻柔振动 + 温暖气流 +``` + +#### 5.3.3 体感效果场景映射 + +| VR场景 | 事件 | 座椅动作 | 触觉反馈 | 环境效果 | +|--------|------|---------|---------|---------| +| 南泥湾 | 挥锄开荒 | 前倾15° | 肩部+手臂振动 | 微风 | +| 南泥湾 | 纺车转动 | 轻微节律振动 | 腰部节律振动 | — | +| 南泥湾 | 丰收奔跑 | 加速后仰 | 全身渐强振动 | 强风+热感 | +| 敌后根据地 | 爆炸远处 | 瞬间后仰 | 全身冲击振动 | 气浪(风) | +| 敌后根据地 | 蹲伏隐蔽 | 下降10cm | 背部轻压感 | — | +| 延安窑洞 | 煤油灯阅读 | 静止 | 手部微振动 | 微热 | +| 东江纵队 | 穿越封锁线 | 左右摇晃 | 全身紧张振动 | 夜间冷风 | +| 改革开放 | 工程爆破 | 瞬间震动 | 全身冲击 | 气浪+尘味 | + +### 5.4 多人协同VR技术 + +#### 5.4.1 架构 + +``` +┌──────────────────────────────────────────────────────────────┐ +│ 多人协同VR架构 │ +├──────────────────────────────────────────────────────────────┤ +│ │ +│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ +│ │ VR座位1 │ │ VR座位2 │ │ VR座位3 │ │ VR座位4 │ │ +│ │ (队长) │ │ (队员) │ │ (队员) │ │ (队员) │ │ +│ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ │ +│ │ │ │ │ │ +│ └───────────┴───────────┴───────────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ Photon Fusion │ │ +│ │ (状态同步服务器)│ │ +│ └───────┬───────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ 房间管理服务 │ │ +│ │ (Node.js) │ │ +│ └───────┬───────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ X1编排引擎 │ │ +│ │ (任务推送) │ │ +│ └───────────────┘ │ +└──────────────────────────────────────────────────────────────┘ +``` + +#### 5.4.2 Photon Fusion多人同步 + +```csharp +/// +/// 多人协同VR控制器:基于Photon Fusion实现4人同场景同步 +/// +public class MultiplayerVRController : NetworkBehaviour +{ + // 玩家角色定义(与F2任务角色对应) + public enum VRRole { Leader, Scout, Logistics, Negotiator } + + [Networked] public VRRole Role { get; set; } + [Networked] public string PlayerName { get; set; } + [Networked] public NetworkBool TaskCompleted { get; set; } + + // 玩家头像同步(位置+旋转+手部姿态) + [Networked] public Vector3 HeadPosition { get; set; } + [Networked] public Quaternion HeadRotation { get; set; } + [Networked] public Vector3 LeftHandPos { get; set; } + [Networked] public Vector3 RightHandPos { get; set; } + + /// + /// 玩家进入VR房间 + /// + public override void Spawned() + { + // 从X1编排引擎获取分配的角色 + Role = OrchestratorClient.GetAssignedRole(Runner.LocalPlayer); + + // 初始化角色化身 + InitializeAvatar(Role); + + // 通知房间管理服务 + RoomService.NotifyPlayerReady(Runner.SessionInfo.Name, Runner.LocalPlayer); + } + + /// + /// 网络同步更新(每帧调用) + /// + public override void FixedUpdateNetwork() + { + if (Runner.LocalPlayer == Object.InputAuthority) + { + // 本地玩家:采集VR设备数据并上传 + HeadPosition = VRDevice.GetHeadPosition(); + HeadRotation = VRDevice.GetHeadRotation(); + LeftHandPos = VRDevice.GetLeftHandPosition(); + RightHandPos = VRDevice.GetRightHandPosition(); + } + else + { + // 远程玩家:更新远程化身 + UpdateRemoteAvatar(HeadPosition, HeadRotation, LeftHandPos, RightHandPos); + } + } + + /// + /// 团队任务完成同步 + /// + [Rpc(RpcSources.All, RpcTargets.All)] + public void RPC_NotifyTaskProgress(string taskId, float progress) + { + // 所有客户端同步任务进度 + TaskUIController.UpdateProgress(taskId, progress); + + // 进度100%时通知X1编排引擎 + if (progress >= 1.0f) + { + OrchestratorClient.NotifyTaskCompleted(taskId); + } + } +} +``` + +#### 5.4.3 房间管理与场次调度 + +``` +场次调度流程: + +1. 票务系统(S3)分配VR场次 → 通知房间管理服务 +2. 4名用户到达VR工位 → 刷RFID/扫码确认身份 +3. 房间管理服务创建Photon Fusion房间 → 分配角色 +4. X1编排引擎推送对应任务剧本 → VR场景加载 +5. 体验过程实时监控(时长/进度/异常) +6. 体验结束 → 场景退出 → 学习记录写入F4成长护照 +7. 设备复位 → 等待下一场次 + +场次间隔: 3分钟(设备复位+消毒) +单场时长: 8-15分钟(按人群和路线适配) +日接待量: 单场景约120-160人/天(4座×8分钟×4-5场/小时×8小时) +``` + +**房间管理服务API**: + +``` +POST /api/vr/room/create 创建VR房间(绑定场次+任务) +GET /api/vr/room/{room_id} 房间状态 +POST /api/vr/room/{room_id}/join 用户加入房间(绑定角色) +POST /api/vr/room/{room_id}/start 开始体验 +GET /api/vr/room/{room_id}/status 实时状态(进度/异常) +POST /api/vr/room/{room_id}/end 结束体验 +POST /api/vr/room/{room_id}/reset 设备复位 +GET /api/vr/schedule/today 当日场次排期 +POST /api/vr/schedule/assign 票务系统分配场次 +``` + +### 5.5 VR与F2情境任务联动 + +VR不是独立体验,而是F2情境任务的沉浸执行层。同一任务剧本在VR和非VR两种模式下运行,VR模式提供更强的沉浸感和空间感知。 + +``` +F2情境任务剧场 + ├── 非VR模式: 多屏互动终端 + AI复盘 + └── VR模式: 沉浸场景 + 体感设备 + 多人协同 + AI复盘 + +共享层: + - 同一任务定义(ScenarioTask数据模型) + - 同一证据集(从知识图谱检索) + - 同一历史事实揭示 + - 同一AI学习教练API复盘 + - 同一成长护照记录 +``` + +**联动流程**: + +``` +1. X1编排引擎根据路线将用户分配到VR模式或非VR模式 + (VR模式: 路线包含VR节点 / 非VR模式: 路线不含VR节点) +2. VR场景加载时,从任务定义API拉取当前任务剧本 +3. VR场景中嵌入证据查看点(3D文物+文献档案) +4. 团队在VR中讨论并做出决策(语音通话+手势交互) +5. 决策提交 → AI学习教练API复盘 → VR场景中展示历史对比 +6. 退出VR → 现实连接问题 → 行动选择 +``` + +### 5.6 AI NPC与数字人集成 + +#### 5.6.1 VR内AI NPC + +VR场景中的非玩家角色(NPC)由AI可信知识引擎驱动,可以回答用户问题、提供历史背景、引导任务。 + +```csharp +/// +/// VR内AI NPC控制器:与AI可信馆员API集成 +/// +public class VRNPCController : MonoBehaviour +{ + private AIBridge aiBridge; // AI API通信桥 + private LipSync lipSync; // 口型同步 + private VoicePlayer voicePlayer; // 语音播放 + + // NPC身份定义(从知识图谱加载) + public string npcPersonId; // 对应知识图谱中的Person节点 + public string npcEra; // NPC所处历史时期 + + /// + /// 用户向NPC提问(语音输入) + /// + public async void OnUserQuestion(string question) + { + // 1. 调用AI可信馆员API + var response = await aiBridge.AskLibrarian(new AskRequest + { + question = question, + audience = CurrentAudience.Type, + language = CurrentAudience.Language, + context = new { + current_artifact_id = CurrentArtifactId, + current_zone = CurrentZoneId, + npc_person_id = npcPersonId + } + }); + + // 2. TTS语音合成 + AudioClip audioClip = await TTSService.Synthesize( + response.answer, + CurrentAudience.Language + ); + + // 3. 口型同步播放 + lipSync.PlayWithAudio(audioClip); + voicePlayer.Play(audioClip); + + // 4. 显示文字字幕(VR空间UI) + VRSubtitleUI.Show(response.answer, response.sources); + + // 5. 显示追问建议 + VRFollowUpUI.Show(response.follow_up_questions); + } +} +``` + +#### 5.6.2 数字人技术方案 + +| 方案 | 技术栈 | 效果 | 适用场景 | +|------|--------|------|---------| +| VR内NPC | Unity内置角色 + AI API + TTS | 风格化3D角色,实时口型同步 | VR场景内交互 | +| 线下数字人导览 | Unreal Engine 5 + MetaHuman | 超写实数字人,大屏展示 | 馆内大屏导览 | +| 云端数字人 | UE5 Pixel Streaming | 云端渲染,浏览器观看 | F5云展馆 | + +**TTS语音合成**: + +- **中文普通话**:CosyVoice / VITS-zh(开源,支持私有化部署) +- **粤语**:基于VITS微调的粤语模型 +- **英文**:VITS-en / Edge TTS +- **口型同步**:Oculus LipSync Unity插件(实时音频驱动BlendShape) +- **安全约束**:NPC禁止模拟革命领袖发表新言论,仅复述已审核史料 + +### 5.7 VR设备远程管理与编排 + +#### 5.7.1 设备管理架构 + +``` +┌──────────────────────────────────────────────────────────────┐ +│ VR设备运维管理平台 │ +├──────────────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ +│ │ 设备监控面板 │ │ 场次调度面板 │ │ 内容管理面板 │ │ +│ │ (Grafana) │ │ (自研Web) │ │ (自研Web) │ │ +│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ +│ │ │ │ │ +│ ┌──────┴────────────────┴────────────────┴──────┐ │ +│ │ 设备管理服务 (Spring Boot) │ │ +│ └──────┬────────────────┬────────────────┬──────┘ │ +│ │ │ │ │ +│ ┌────┴────┐ ┌─────┴────┐ ┌─────┴────┐ │ +│ │VR头显×N │ │体感设备×N│ │渲染主机×N│ │ +│ │(ADB/MDM)│ │(MQTT) │ │(SSH) │ │ +│ └─────────┘ └─────────┘ └─────────┘ │ +└──────────────────────────────────────────────────────────────┘ +``` + +#### 5.7.2 监控指标 + +| 监控对象 | 指标 | 告警阈值 | +|---------|------|---------| +| VR头显 | 电量、温度、帧率 | 温度>65°C / 帧率<72fps | +| 渲染主机 | GPU利用率、显存、温度 | GPU>95% / 显存>90% / 温度>85°C | +| 体感座椅 | 连接状态、运动范围校准 | 断连 / 校准偏移>5° | +| 触觉背心 | 蓝牙连接、电量 | 断连 / 电量<20% | +| 网络延迟 | Photon Fusion RTT | RTT>50ms | +| 场次状态 | 当前场次、进度、异常 | 异常停留>30秒 | + +#### 5.7.3 远程诊断与自动恢复 + +``` +异常检测 → 自动诊断 → 分级处理: + +Level 1 (轻微): 自动恢复 + - 帧率下降 → 降低渲染质量(LOD切换) + - 网络抖动 → 增加插值缓冲 + - 蓝牙重连 → 自动重试 + +Level 2 (中度): 远程干预 + - 场景卡死 → 远程重启Unity应用 + - 体感设备异常 → 远程复位指令 + - 头显追踪丢失 → 提示用户重新佩戴 + +Level 3 (严重): 人工介入 + - 硬件故障 → 排队转非VR模式 + - 渲染主机宕机 → 切换备用主机 + - 安全事件 → 紧急停止所有设备 +``` + +### 5.8 云端VR串流方案 + +为降低全国星火节点的硬件门槛,L2/L3节点可采用云端VR串流方案,无需本地高性能渲染主机。 + +#### 5.8.1 串流架构 + +``` +L2/L3节点 (轻量硬件) 旗舰中心/区域云端 (GPU集群) +┌──────────────────┐ ┌──────────────────────┐ +│ VR头显(Pico/Quest)│ │ 云端渲染服务器 │ +│ ↓ WiFi/5G │ ←── 视频流 ──→ │ (NVIDIA RTX 4090) │ +│ ↓ 解码显示 │ ←── 音频流 ──→ │ Unity应用实例 │ +│ ↓ 手柄/头显数据 │ ── 输入流 ──→ │ CloudXR/ALVR串流 │ +│ │ │ 编码H.265低延迟 │ +└──────────────────┘ └──────────────────────┘ +``` + +#### 5.8.2 串流技术选型 + +| 方案 | 延迟 | 优势 | 劣势 | 适用场景 | +|------|------|------|------|---------| +| CloudXR (NVIDIA) | 15-30ms | 官方优化,画质好 | 依赖NVIDIA生态 | L3城市节点 | +| ALVR (开源) | 20-40ms | 开源免费,跨平台 | 画质略逊 | L2标准节点 | +| 本地渲染 | <10ms | 无网络延迟 | 需高性能主机 | L4旗舰中心 | +| WebXR | 30-80ms | 无需安装客户端 | 画质受限 | F5云展馆轻量模式 | + +#### 5.8.3 节点VR部署方案 + +| 节点级别 | VR方案 | 硬件需求 | 成本估算 | +|---------|--------|---------|---------| +| L1微节点 | 不部署VR | — | — | +| L2标准节点 | ALVR串流 + Pico头显 | Pico头显×2 + 普通PC | 低 | +| L3城市节点 | CloudXR串流 + Pico/Quest | 头显×4 + 5G路由 | 中 | +| L4旗舰中心 | 本地渲染 + 完整体感 | RTX 4090主机×4 + 完整体感设备 | 高 | + +### 5.9 VR内容生产管线 + +#### 5.9.1 3D资产生产流程 + +``` +历史考证与场景设计 + ↓ (党史专家+教育研究组审定) +概念美术设定 + ↓ +3D建模 (Blender/Maya) + ├── 地形: World Creator / Gaia (程序化地形) + ├── 建筑: 传统建模 + 历史照片参考 + ├── 道具: 精细建模 + PBR材质 + ├── 角色: MetaHuman Creator / Character Creator + └── 植被: SpeedTree (历史植被还原) + ↓ +UV展开与纹理绘制 (Substance Painter) + ↓ +动画与绑定 (Maya/Blender) + ↓ +Unity导入与场景搭建 + ↓ +交互逻辑开发 (C#脚本) + ↓ +体感效果配置 (效果预设编辑器) + ↓ +内部测试 (功能+性能+安全) + ↓ +专家审核 (史实准确性+教育效果) + ↓ +发布 (版本化入库) +``` + +#### 5.9.2 性能优化策略 + +| 优化项 | 目标 | 技术手段 | +|--------|------|---------| +| 帧率 | 稳定72fps (VR舒适标准) | LOD分级、视锥剔除、遮挡剔除 | +| 渲染负载 | GPU利用率<85% | SRP Batcher、GPU Instancing | +| 加载时间 | 场景切换<3秒 | Addressables异步加载、资源预加载 | +| 内存 | <12GB (Pico 4限制) | 资源压缩、纹理流式加载 | +| 包体 | 单场景<2GB | ASTC纹理压缩、音频压缩 | +| 网络带宽 | 多人同步<5Mbps | 状态压缩、兴趣区域管理(AoI) | + +#### 5.9.3 VR舒适度与安全 + +| 措施 | 说明 | +|------|------| +| 舒适度分级 | 每个VR场景标注舒适度等级(舒适/适中/激烈) | +| 晕动症缓解 | 瞬移移动(Teleport)为默认,平滑移动可选 | +| 视觉舒适 | 固定参考帧(鼻部虚拟遮挡)、渐变过渡 | +| 时长控制 | 单次VR体验不超过15分钟 | +| 休息间隔 | 两场VR体验之间至少间隔30分钟 | +| 年龄限制 | 12岁以下不建议使用VR头显 | +| 安全区域 | Lighthouse定位基站划定安全边界,越界自动暂停 | +| 紧急停止 | 手柄Home键一键退出,工作人员远程紧急停止 | +| 卫生消毒 | 一次性面罩+UV消毒柜,场次间隔3分钟消毒 | + +### 5.10 VR体验排队与场次调度 + +#### 5.10.1 排队调度算法 + +```python +def schedule_vr_sessions(visitors, capacity=4, duration_min=8, reset_min=3): + """ + VR场次调度算法 + + visitors: 当前排队访客列表 [{user_id, audience_type, route_id, arrival_time}] + capacity: 单场容量(4人) + duration_min: 单场时长 + reset_min: 设备复位时间 + """ + cycle_time = duration_min + reset_min # 单场周期11分钟 + + # 1. 按路线分组:相同路线节点的访客优先同场 + groups = group_by_route(visitors) + + # 2. 按人群类型分组:相同人群类型优先同场(内容适配一致) + groups = subgroup_by_audience(groups) + + # 3. 按到达时间排序 + for group in groups: + group.sort(key=lambda v: v['arrival_time']) + + # 4. 贪心填充场次 + sessions = [] + for group in groups: + while group: + session_visitors = group[:capacity] + group = group[capacity:] + + # 计算场次时间 + start_time = calculate_start_time(sessions, cycle_time) + + sessions.append({ + 'visitors': session_visitors, + 'start_time': start_time, + 'end_time': start_time + timedelta(minutes=duration_min), + 'scene_id': get_scene_for_route(session_visitors[0]['route_id']), + 'task_id': get_task_for_route(session_visitors[0]['route_id']) + }) + + # 5. 客流高峰策略:开启备用VR工位 + if len(sessions) > threshold: + activate_backup_station() + + return sessions +``` + +#### 5.10.2 排队体验设计 + +排队等待期间不浪费用户时间,通过排队区屏幕提供: + +- **任务预习**:展示即将进入的VR场景历史背景和任务问题 +- **角色介绍**:展示分配到的角色和资源约束 +- **操作教学**:VR手柄操作和交互方式教学视频 +- **安全须知**:VR舒适度等级、注意事项、紧急退出方法 +- **进度显示**:当前排队位置和预计等待时间 + +--- + +## 六、X1/X2/X3公共平台技术实现 + +### 6.1 X1全场景体验编排引擎 + +#### 核心数据流 + +``` +事件源 处理引擎 输出目标 +───────── ───────── ───────── +UWB位置流(10Hz) ─┐ +客流计数(Kafka) ─┤→ Flink实时计算 → 编排决策 → 设备控制指令 +设备状态(MQTT) ─┤ (CEP复杂事件) (规则+ML) (WebSocket/MQTT) +用户路线(REST) ─┤ +任务状态(REST) ─┘ +``` + +#### Flink CEP规则示例 + +```java +// 当用户进入某区域且该区域客流低于阈值时,触发内容联动 +DataStream positions = env + .addSource(new KafkaSource<>("uwb-positions")); + +Pattern pattern = Pattern + .begin("enter_zone") + .where(evt -> evt.getZoneId().equals("zone_b")) + .within(Time.seconds(5)); + +CEP.pattern(positions, pattern) + .select((events) -> { + PositionEvent evt = events.get("enter_zone"); + int zoneLoad = getZoneLoad(evt.getZoneId()); + if (zoneLoad < THRESHOLD) { + triggerContentOrchestration(evt.getUserId(), evt.getZoneId()); + } + }); +``` + +### 6.2 X2成长护照与行动档案 + +#### 跨系统数据同步 + +``` +S3票务系统 ──┐ +S4教研系统 ──┤ +S6港澳专项 ──┤→ X2成长护照API → 统一学习档案 +S8数据中台 ──┤ (GraphQL API) (PostgreSQL) +线下终端 ──┘ +``` + +**GraphQL API**: + +```graphql +type Query { + passport(userId: ID!): GrowthPassport + learningRecords(passportId: ID!, type: String): [LearningRecord] + actionCommitments(passportId: ID!, status: String): [ActionCommitment] +} + +type Mutation { + createPassport(input: CreatePassportInput!): GrowthPassport + recordLearning(input: RecordLearningInput!): LearningRecord + chooseAction(input: ChooseActionInput!): ActionCommitment + submitFeedback(commitmentId: ID!, phase: String!, content: String!): ActionCommitment +} +``` + +### 6.3 X3权威内容治理中心 + +#### 内容审核工作流 + +``` +内容创建/修改 + ↓ +AI编审助手自动检查 (编审助手API) + - 事实校验: 与知识图谱交叉验证 + - 来源检查: 是否标注史料来源 + - 合规检查: 政治安全规则引擎 + - 版权检查: 素材授权验证 + ↓ +自动检查通过 → 编辑复审 (人工) +自动检查未通过 → 退回修改 + ↓ +编辑复审通过 → 专家终审 (关键内容) + ↓ +专家终审通过 → 版本发布 (带版本号) + ↓ +发布到: 展陈系统 / 云展馆 / 课程平台 / 全国节点 + ↓ +使用反馈收集 → 定期巡检 → 需要时触发修订 +``` + +#### 版本管理 + +```sql +CREATE TABLE content_versions ( + id VARCHAR(64) PRIMARY KEY, + component_id VARCHAR(64) NOT NULL, + version INT NOT NULL, + content_snapshot JSONB NOT NULL, -- 完整内容快照 + change_log TEXT, + review_chain JSONB NOT NULL, -- 审核链路记录 + published_by VARCHAR(64), + published_at TIMESTAMP, + is_current BOOLEAN DEFAULT false, + UNIQUE(component_id, version) +); +``` + +--- + +## 七、数据架构 + +### 7.1 数据库分工 + +| 数据库 | 用途 | 数据示例 | +|--------|------|---------| +| PostgreSQL | 业务OLTP | 用户、票务、课程、任务、护照、行动 | +| Neo4j | 知识图谱 | 事件、人物、文物、概念及关系 | +| Milvus | 向量检索 | 史料文档向量、语义搜索 | +| ClickHouse | 分析OLAP | 客流统计、学习效果、运营报表 | +| Redis | 缓存 | 会话、热点数据、实时客流计数 | +| MinIO | 对象存储 | 3D模型、视频、图片、文档 | +| Kafka | 事件流 | 位置事件、设备状态、客流计数 | + +### 7.2 数据流总览 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ 数据源 │ +│ 票务 │ 客流IoT │ UWB定位 │ AI日志 │ 学习记录 │ 文物 │ 内容 │ +└──────────────────────────┬──────────────────────────────────┘ + │ + Kafka消息总线 + │ + ┌───────────────┼───────────────┐ + │ │ │ + ┌─────┴─────┐ ┌──────┴──────┐ ┌────┴──────┐ + │ PostgreSQL │ │ ClickHouse │ │ Redis │ + │ (实时业务) │ │ (分析聚合) │ │ (实时缓存) │ + └───────────┘ └─────────────┘ └───────────┘ + │ + Flink ETL + │ + ┌─────────┴─────────┐ + │ │ + ┌─────┴─────┐ ┌──────┴──────┐ + │ Superset │ │ 风控引擎 │ + │ (可视化看板)│ │ (Drools规则) │ + └───────────┘ └─────────────┘ +``` + +### 7.3 北极星指标计算 + +```sql +-- 有效学习与行动转化人次 +SELECT + COUNT(DISTINCT p.user_id) AS effective_transformation_count +FROM growth_passports p +JOIN learning_records lr1 ON p.id = lr1.passport_id + AND lr1.event_type = 'route_completed' -- 完成核心学习路径 +JOIN learning_records lr2 ON p.id = lr2.passport_id + AND lr2.event_type IN ('task_completed', 'understanding_expressed') -- 理解验证 +JOIN action_commitments ac ON p.id = ac.passport_id + AND ac.status IN ('in_progress', 'completed') -- 形成行动 +JOIN learning_records lr3 ON p.id = lr3.passport_id + AND lr3.event_type = 'feedback_submitted' -- 产生反馈 +WHERE p.created_at >= '2026-01-01'; +``` + +--- + +## 八、安全与合规 + +### 8.1 网络安全架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ 互联网 │ +│ WAF (Web应用防火墙) │ +├──────────────────────────────────────────────────────┤ +│ DMZ区 │ +│ SLB (负载均衡) + API Gateway │ +├──────────────────────────────────────────────────────┤ +│ 应用区 (K8s) │ +│ 微服务集群 (Spring Cloud + 服务网格) │ +├──────────────────────────────────────────────────────┤ +│ 数据区 (隔离) │ +│ PostgreSQL │ Neo4j │ Milvus │ MinIO │ +│ GPU推理集群 │ +├──────────────────────────────────────────────────────┤ +│ 设备区 (VLAN隔离) │ +│ IoT/安防/VR/灯光音频 (独立VLAN) │ +└──────────────────────────────────────────────────────┘ +``` + +### 8.2 AI安全护栏技术实现 + +```python +class AISafetyGuardrail: + """AI安全护栏三层过滤""" + + def __init__(self): + self.input_filter = InputFilter() # 输入过滤 + self.fact_checker = FactChecker() # 事实校验 + self.output_filter = OutputFilter() # 输出过滤 + self.audit_logger = AuditLogger() # 审计日志 + + def process(self, user_input, generated_answer, sources): + # 1. 输入安全检查 + input_result = self.input_filter.check(user_input) + if not input_result.safe: + return self.safety_fallback(input_result.reason) + + # 2. 事实校验: 与知识图谱比对关键事实 + fact_result = self.fact_checker.verify( + generated_answer, sources, self.knowledge_graph + ) + if fact_result.has_errors: + return self.safety_fallback("事实校验未通过") + + # 3. 输出安全检查 + output_result = self.output_filter.check(generated_answer) + if not output_result.safe: + return self.safety_fallback(output_result.reason) + + # 4. 审计日志 + self.audit_logger.log( + input=user_input, + output=generated_answer, + sources=sources, + model_version=self.model_version, + timestamp=datetime.now() + ) + + return generated_answer +``` + +### 8.3 数据隐私保护 + +| 数据类型 | 保护措施 | +|---------|---------| +| 用户身份信息 | 最小化采集,不采集与学习无关的信息 | +| 未成年人数据 | 监护人授权 + 最小化采集 + 不公开显示 | +| 港澳用户数据 | 自愿参与 + 匿名聚合 + 不做个人认同标签 | +| 人脸/情绪数据 | 不采集、不推断 | +| AI交互日志 | 脱敏存储 + 仅用于质量优化 + 定期清理 | +| 位置数据 | 仅用于体验编排,不留存个人轨迹 | + +--- + +## 九、最小可行原型技术实现 + +### 9.1 原型范围 + +按照创新升级方案第九章建议,首个原型为"从一件文物到一次现实行动"完整体验。 + +### 9.2 原型技术清单 + +``` +最小原型 = 1件文物3D模型 + 1个情境任务 + 1个AI问答入口 + + 1个成长护照H5 + 1个行动选择页 + 1个30天回访推送 +``` + +| 组件 | 技术方案 | 工程量估算 | +|------|---------|-----------| +| 文物3D展示 | Three.js + glTF模型 | 1件文物扫描+建模,2周 | +| 情境任务 | H5互动页面 + 状态机 | 1个任务剧本+开发,3周 | +| AI问答 | Qwen2.5-14B + RAG + 安全护栏 | 模型部署+微调+API,4周 | +| 成长护照 | 微信小程序 + PostgreSQL | 前后端开发,2周 | +| 行动选择 | 小程序页面 + 数据库 | 1周 | +| 30天回访 | XXL-Job定时 + 微信模板消息 | 1周 | +| 体验编排 | 简化版WebSocket + 状态同步 | 2周 | + +### 9.3 原型部署方案 + +``` +单服务器部署 (原型阶段): + - 1台 GPU服务器 (2×A100 40G) + → Qwen2.5-14B推理 + Milvus向量库 + - 1台 应用服务器 (16核/32G) + → PostgreSQL + Redis + Spring Boot + Nginx + - 1台 前端服务器 (4核/8G) + → Three.js静态资源 + 小程序后端 + - 1台 互动终端 (触屏一体机) + → 情境任务H5 + AI问答界面 +``` + +### 9.4 原型验证指标 + +| 验证维度 | 指标 | 达标标准 | +|---------|------|---------| +| AI可信度 | 回答来源覆盖率 | ≥90% | +| AI安全 | 不当内容拦截率 | 100% | +| 任务参与度 | 任务完成率 | ≥70% | +| 行动转化 | 行动选择率 | ≥50% | +| 回访参与 | 30天反馈率 | ≥20% | +| 用户体验 | 理解表达质量(专家评分) | ≥3.5/5 | + +--- + +## 十、技术风险与应对 + +| 风险 | 影响 | 应对措施 | +|------|------|---------| +| 大模型推理延迟过高 | 体验卡顿 | 多级缓存 + 流式输出 + 轻量模型兜底 | +| 知识图谱构建周期长 | 内容不足影响上线 | 先建核心子图(延安十三年),逐步扩展 | +| UWB定位精度不达标 | 编排误触发 | 部署密度优化 + 区域判定容错算法 | +| 港澳跨境网络不稳定 | 云展馆体验差 | 港澳CDN节点 + 轻量WebGL模式 | +| VR设备故障率高 | 体验中断 | 冗余设备 + 远程诊断 + H5备选方案 | +| 内容审核瓶颈 | 发布延迟 | AI初审自动化 + 并行审核流程 | +| 并发峰值过载 | 系统不可用 | K8s弹性扩缩容 + 限流降级 + 离线兜底 | +| 全国节点运维复杂 | 复制质量参差 | 标准化部署脚本 + 远程监控 + 自动健康检查 | + +--- + +## 十一、技术团队建议 + +### 11.1 核心团队配置 + +| 角色 | 人数 | 职责 | +|------|------|------| +| AI工程师 | 3-4 | 大模型微调、RAG、安全护栏、知识图谱 | +| 后端工程师 | 4-5 | 微服务、API、数据库、消息队列 | +| 前端工程师 | 3-4 | Web/小程序/互动终端 | +| 3D/XR工程师 | 2-3 | Three.js、Unity、3D建模、数字人 | +| 数据工程师 | 2 | 数据管道、Flink、ClickHouse、指标计算 | +| DevOps | 2 | K8s、CI/CD、监控、安全 | +| 内容工程师 | 2 | 内容组件化、审核工作流、版本管理 | +| UI/UX设计师 | 2 | 交互设计、视觉设计、体验测试 | + +### 11.2 外部协作 + +| 协作方 | 职责 | +|--------|------| +| 党史专家组 | 史料审核、知识图谱校验、任务剧本审定 | +| 教育研究组 | 课程设计、学习效果评估方法 | +| 延安精神研究会 | 权威内容授权和编审 | +| 3D扫描团队 | 文物数字化采集 | +| 硬件集成商 | VR/灯光/音频/IoT设备安装调试 | + +--- + +## 十二、总结 + +本技术实现方案将创新升级方案中的"一核、双域、三引擎、四闭环、八旗舰"产品体系,转化为可落地的技术架构: + +- **AI层**:Qwen2.5私有化部署 + LoRA微调 + RAG三级检索 + 安全护栏,确保可信、可溯源; +- **数据层**:Neo4j知识图谱 + Milvus向量库 + PostgreSQL业务库 + ClickHouse分析库,支撑全场景数据需求; +- **平台层**:X1体验编排(Flink CEP) + X2成长护照(GraphQL) + X3内容治理(版本化审核),三大公共平台贯穿所有产品; +- **沉浸层**:Unity VR/XR + 体感设备联动 + Photon Fusion多人协同 + 云端串流,五大历史场景沉浸体验嵌入F1/F2产品; +- **应用层**:八个旗舰产品各自独立又共享平台能力,通过API和事件总线松耦合; +- **基础设施**:K8s容器化 + GPU推理集群 + 5G/IoT设备网络 + CDN全球加速; +- **安全合规**:三层AI安全护栏 + 数据最小化原则 + 全过程审计追溯。 + +建议从"一件文物到一次现实行动"最小原型开始,用7周时间验证完整链路,再逐步扩展为全量系统。 diff --git a/智慧系统建设方案.md b/智慧系统建设方案.md new file mode 100644 index 0000000..e32d0a1 --- /dev/null +++ b/智慧系统建设方案.md @@ -0,0 +1,686 @@ +# 延安精神(大湾区)学习展示中心 — 智慧系统建设方案 + +> 基于《延安精神(大湾区)学习展示中心项目报告(优化版)对外交流版 2026.7.9V1.0》提炼编制 +> 编制日期:2026-07-12 + +--- + +## 一、项目建设关键目标提取 + +### 1.1 总体定位 + +| 维度 | 目标 | +|------|------| +| **数智化展示枢纽** | 集理论研究、党性实训、数字沉浸体验、思政研学、IP产业孵化于一体 | +| **复合型学习综合体** | 涵盖党政党性教育、大中小学思政培育、全民红色普及的一站式全业态 | + +### 1.2 五大核心目标 + +1. **补齐湾区阵地短板** — 填补大湾区大型数字化延安精神专属教育阵地空白,搭建标准化、常态化学习实践平台 +2. **打造全国可复制样板** — 以AI、VR/AR/MR、8K超高清数字技术重构红色学习场景,建成可对外输出的数字化标杆 +3. **打造岭南红色叙事** — 融合延安根脉+东江纵队革命历史+广东改革开放历程+自贸片区发展实践,构建岭南特色红色教育内容体系 +4. **实现青少年群体全覆盖** — 分龄分层研学课程,线下实体场馆+线上3D云展馆双通道,推动年轻化传播 +5. **筑牢港澳青年家国认同** — 轻量化、双语化、数字化体验降低认知门槛,增强国家/民族/文化认同 + +### 1.3 六大功能板块对应的系统能力需求 + +| 功能板块 | 核心系统能力需求 | +|----------|-----------------| +| 2.1 延安革命文物展示中心 | 文物数字化建档、AI智能讲解、全息文物复原、线上数字馆藏库、临展调度 | +| 2.2 权威党建思政宣教平台 | 分层课程管理、党性培训流程、师资人才库、标准化课件输出、持证研修 | +| 2.3 AI+XR数字红色沉浸式体验中心 | 延安精神AI大模型、VR/AR/MR体验调度、8K环幕播控、3D云展馆、云端演播 | +| 2.4 延安精神+非遗太极融合传播区 | 骨骼动作捕捉、AI动作矫正、太极数字课程管理、跨境交流活动管理 | +| 2.5 AI通识研学与数字创作实训空间 | AI通识课程、数字创作工具链、作品上云展示、粤港澳三地同步线上研讨 | +| 2.6 文献典藏文创巡展综合配套区 | 文献数字化管理、恒温恒湿环境监控、文创产品管理、临时巡展调度、报告厅预约 | + +### 1.4 运营管理层面的系统能力需求 + +- **AI客流分区管控**:线上分时预约、分区分流、错峰授课、AI实时监控、自动限流 +- **模块化动态迭代**:年度展陈改版、数字内容按月更新、模块化展陈管理 +- **港澳青年专项**:全场景双语适配、跨境研学闭环、常态化交流品牌活动 +- **4条独立闭环动线**:中小学研学/党政培训/散客游览/专家教研,互不交叉 +- **全维度风控**:政治合规审核、客流安全、可持续经营、场地运维 + +--- + +## 二、整体系统架构设计 + +### 2.1 架构总览 + +采用 **"一中心、两平台、八子系统"** 的总体架构: + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ 用户触达层 │ +│ 线下场馆终端 │ 线上3D云展馆 │ 移动端小程序 │ 港澳专属门户 │ +├─────────────────────────────────────────────────────────────────┤ +│ 应用服务层 │ +│ 子系统1 子系统2 子系统3 子系统4 子系统5 子系统6 子系统7 子系统8 │ +├─────────────────────────────────────────────────────────────────┤ +│ 能力中台层 │ +│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ +│ │ AI大模型 │ │ 数据中台 │ │ 内容中台 │ │ +│ │ 引擎平台 │ │ 平台 │ │ 平台 │ │ +│ └──────────┘ └──────────┘ └──────────┘ │ +├─────────────────────────────────────────────────────────────────┤ +│ 基础设施层 │ +│ 云计算资源 │ 5G专网 │ IoT物联 │ 安防消防 │ XR设备矩阵 │ +└─────────────────────────────────────────────────────────────────┘ +``` + +### 2.2 八大子系统总览 + +| 编号 | 子系统名称 | 核心职责 | 对应功能板块 | +|------|-----------|---------|-------------| +| S1 | **AI大模型与知识引擎子系统** | 延安精神专属AI大模型、双语AI宣讲人、党史知识问答、内容智能编审 | 2.2 / 2.3 / 2.5 | +| S2 | **数字展陈与沉浸体验子系统** | VR/AR/MR体验调度、8K环幕播控、全息复原、3D云展馆、云端演播 | 2.1 / 2.3 | +| S3 | **智慧场馆运营管理子系统** | 票务分时预约、AI客流监控、分区导览、动线管理、安防消防联动 | 三 / 四 | +| S4 | **教研培训管理子系统** | 分龄分层课程、党性培训流程、师资研修、研学基地管理、结业认证 | 2.2 / 2.5 | +| S5 | **文物数字化管理子系统** | 文物数字化建档、恒温恒湿环境监控、数字馆藏库、临展调度 | 2.1 / 2.6 | +| S6 | **港澳青年国情教育专项子系统** | 双语适配、跨境研学管理、粤港澳交流平台、轻量化体验 | 五 | +| S7 | **内容管理与IP孵化子系统** | 数字内容矩阵、文创产品管理、融合IP开发、内容审核发布 | 2.4 / 2.6 | +| S8 | **数据中台与决策支持子系统** | 统一数据采集、运营分析看板、效果评估、风控预警 | 四 / 九 | + +### 2.3 子系统间关系图 + +``` + ┌──── S1 AI大模型与知识引擎 ────┐ + │ │ │ + ▼ ▼ ▼ + S2 数字展陈 S4 教研培训 S6 港澳青年专项 + 沉浸体验 管理 国情教育 + │ │ │ + ▼ ▼ ▼ + S5 文物数字化 S7 内容管理与 S3 智慧场馆 + 管理 IP孵化 运营管理 + │ │ │ + └───────────┼────────────────────┘ + ▼ + ┌── S8 数据中台与决策支持 ──┐ + │ (全局数据汇聚) │ + └────────────────────────────┘ +``` + +--- + +## 三、各子系统详细方案 + +### S1. AI大模型与知识引擎子系统 + +#### 3.1.1 建设目标 +构建延安精神专属AI大模型,支撑双语AI宣讲、党史智能问答、内容自动编审、个性化学习推荐等核心能力。 + +#### 3.1.2 系统架构 + +``` +┌────────────────────────────────────────────┐ +│ AI大模型与知识引擎 │ +├──────────────┬──────────────┬───────────────┤ +│ 知识图谱层 │ 模型推理层 │ 应用服务层 │ +├──────────────┼──────────────┼───────────────┤ +│ 延安精神 │ 基座大模型 │ AI宣讲人引擎 │ +│ 知识图谱 │ (微调) │ (中英双语) │ +│ 东江纵队 │ │ │ +│ 史料图谱 │ RAG检索增强 │ 智能问答服务 │ +│ 广东改革开放 │ │ │ +│ 知识库 │ 多模态理解 │ 内容编审引擎 │ +│ 太极文化 │ │ │ +│ 知识库 │ 意图识别 │ 个性化推荐 │ +└──────────────┴──────────────┴───────────────┘ +``` + +#### 3.1.3 核心模块 + +**① 延安精神知识图谱** +- 结构化延安十三年历史事件、人物、文献、文物关联关系 +- 融合东江纵队华南抗战史、广东改革开放史、自贸区发展实践 +- 支持图谱可视化展示与语义检索 +- 数据来源:中国延安精神研究会编审内容 + 党史权威文献 + 地方志 + +**② 专属大模型微调** +- 基于开源大模型(如Qwen/GLM)进行领域微调 +- 训练数据:延安精神理论著作、革命文献、党史教材、岭南红色叙事素材 +- 政治安全护栏:内置敏感词过滤 + 史实校验 + 输出审核机制 +- 支持中英双语生成与理解 + +**③ RAG检索增强系统** +- 构建延安精神向量知识库,确保AI回答有据可查 +- 多级检索:知识图谱精确匹配 → 向量语义检索 → 大模型生成 +- 每条回答附带史料溯源标注 + +**④ AI宣讲人引擎** +- 中英双语数字人形象(可定制多角色:延安时期战士、当代讲解员等) +- 支持多模态交互:语音对话、文字输入、触屏交互 +- 适配场景:展馆导览、党史竞赛、红色剧本演绎、云端连线对话 +- 部署方式:线下终端 + 线上3D云展馆同步 + +**⑤ 内容智能编审引擎** +- 自动校验生成内容的史实准确性 +- 政治合规性自动审核(对标分级审核制度) +- 辅助内容团队完成年度内容巡检 +- 生成审核报告,人工复核确认后发布 + +#### 3.1.4 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| 大模型基座 | Qwen / GLM 等国产开源模型,私有化部署 | +| 知识图谱 | Neo4j + 本体建模 | +| 向量数据库 | Milvus / Weaviate | +| 数字人 | Unreal Engine + AI驱动口型同步 | +| RAG框架 | LangChain / LlamaIndex | +| 部署 | 本地GPU集群推理 + 云端弹性扩展 | + +#### 3.1.5 与其他子系统的接口 + +| 接口方向 | 对端子系统 | 交互内容 | +|---------|-----------|---------| +| 输出 → | S2 数字展陈 | AI宣讲人嵌入VR/环幕/触屏终端 | +| 输出 → | S4 教研培训 | 智能问答、个性化课程推荐 | +| 输出 → | S6 港澳青年 | 双语AI宣讲、轻量化问答 | +| 输出 → | S7 内容管理 | 内容编审、自动标签 | +| 接收 ← | S5 文物数字化 | 文物元数据注入知识图谱 | +| 接收 ← | S8 数据中台 | 用户行为数据反馈优化推荐 | + +--- + +### S2. 数字展陈与沉浸体验子系统 + +#### 3.2.1 建设目标 +管理全部数字展陈内容与沉浸式体验设备,实现VR/AR/MR体验、8K环幕播控、全息文物复原、3D云展馆、云端演播的统一调度。 + +#### 3.2.2 系统架构 + +``` +┌──────────────────────────────────────────────────┐ +│ 数字展陈与沉浸体验子系统 │ +├────────────┬────────────┬────────────┬───────────┤ +│ VR/AR/MR │ 8K环幕 │ 全息复原 │ 3D云展馆 │ +│ 体验调度 │ 播控中心 │ 展示引擎 │ 云端平台 │ +├────────────┼────────────┼────────────┼───────────┤ +│ 体验舱管理 │ 内容排播 │ 3D建模 │ Web3D │ +│ 场景切换 │ 多厅同步 │ 全息投影 │ 虚拟漫游 │ +│ 体感交互 │ 实时转播 │ 数字孪生 │ 云端党课 │ +│ 排队管理 │ 紧急插播 │ 交互复原 │ 线上沙龙 │ +└────────────┴────────────┴────────────┴───────────┘ +``` + +#### 3.2.3 核心模块 + +**① VR/AR/MR体验调度引擎** +- 管理4大VR场景:南泥湾大生产、敌后根据地、延安窑洞生活、东江纵队游击战场 +- 体验内容:纺线、开荒、战地送信等情景互动 +- 体感设备联动:动态座椅、手柄、全身动捕 +- 排队与场次管理:对接S3票务系统,按场次自动调度 +- 支持多人协同体验模式(研学团队场景) + +**② 8K环幕影院播控中心** +- 6座环幕厅统一排播管理 +- 内容库:延安精神纪录片、广东改革开放纪实、自贸区发展专题片、港澳青年家国主题短片 +- 排播计划自动生成 + 人工调整 +- 多厅同步播放 / 独立播放模式切换 +- 紧急插播能力(重大活动直播) + +**③ 全息文物复原展示引擎** +- 一、二级革命文物3D高精度建模与全息投影 +- 交互式数字复原:用户可旋转、放大、查看文物细节与历史背景 +- 与S5文物数字化系统联动,自动同步新数字化文物 + +**④ 3D云展馆平台** +- 永久上线的线上虚拟展馆,1:1复刻线下场馆 +- 支持PC/移动端/VR设备多终端访问 +- 功能模块: + - 虚拟漫游:自由行走 + AI导览路线 + - 云端党课:直播/录播党课内容 + - 线上公益微课:分龄分层微课内容 + - 粤港澳青年线上沙龙:多房间实时交流 + - 虚拟合影/互动打卡 +- CDN全球加速,保障港澳及海外访问体验 + +**⑤ 云端演播基地系统** +- 直播推流管理:多机位切换、实时字幕 +- 线上活动管理:报名、签到、互动、回放 +- 与S4教研培训系统联动,支持远程教学 + +#### 3.2.4 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| VR/AR/MR | Unity 3D / Unreal Engine + Meta Quest / Pico头显 | +| 8K播控 | 专业媒体服务器 + SMPTE时间码同步 | +| 全息复原 | 3D扫描(摄影测量)+ 全息投影膜/全息风扇 | +| 3D云展馆 | WebGPU / Three.js + 云渲染服务 | +| 云端演播 | WebRTC + RTMP推流 + CDN分发 | +| 体感交互 | 动捕套装 + 手势识别 + 触觉反馈 | + +--- + +### S3. 智慧场馆运营管理子系统 + +#### 3.3.1 建设目标 +实现13000㎡场馆的智慧化运营,涵盖票务预约、客流管控、分区导览、动线管理、安防消防联动全流程。 + +#### 3.3.2 核心模块 + +**① 智能票务与分时预约平台** +- 线上分时预约(微信小程序 / 港澳专属门户 / PC网站) +- 4条动线对应4种票型:中小学研学、党政培训、散客游览、专家教研 +- 团体预约管理(学校/单位批量预约 + 绿色通道) +- 港澳青年专属预约通道(双语界面 + 简化流程) +- 动态票量调控:根据实时客流自动调整可预约量 + +**② AI客流实时监控系统** +- 全域客流热力图(基于摄像头+IoT传感器) +- 分区人数实时统计与预警 +- 自动限流触发:达到阈值自动暂停入馆 +- 历史客流数据分析与预测(指导排班排课) +- 与S8数据中台实时同步 + +**③ 智能分区导览系统** +- AI导览路线自动规划(根据票型、停留时间、人群特征) +- 室内蓝牙/UWB精准定位 +- 语音导览(中英双语,对接S1 AI宣讲人) +- 电子地图实时显示当前位置与推荐路线 +- 兴趣点触发式讲解(靠近文物自动推送讲解内容) + +**④ 动线管理与错峰调度** +- 4条独立闭环动线的电子围栏管理 +- 动线间互不交叉的物理+数字双重保障 +- 错峰调度算法:根据各动线实时负载,动态调整入场间隔 +- 研学团队动线与散客动线时空分离 + +**⑤ 安防消防联动平台** +- 视频监控全覆盖 + AI行为分析(异常聚集、跌倒、闯入) +- 消防系统联动:烟感/温感/喷淋与客流疏散系统联动 +- 应急预案数字化:一键启动疏散、广播引导、动线切换 +- 安保人员调度:实时定位 + 任务派发 +- 1/3/5分钟快速出警机制数字化落地 + +**⑥ 场馆设备物联管理** +- 恒温恒湿环境监控(文物库房、展柜) +- 照明/空调/电梯统一管控 +- XR设备状态监控与远程开关机 +- 设备故障自动告警 + 维保工单 + +#### 3.3.3 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| 票务预约 | 微信小程序 + Vue3管理后台 | +| 客流监控 | AI摄像头(海康/大华)+ 边缘计算盒子 | +| 室内定位 | UWB(厘米级)/ 蓝牙信标(米级) | +| 安防联动 | 海康综合安防平台 + API对接 | +| IoT物联 | MQTT + IoT平台(阿里云IoT/自建) | +| 导览 | React Native移动端 + 语音合成 | + +--- + +### S4. 教研培训管理子系统 + +#### 3.4.1 建设目标 +构建"干部党性锤炼+校园思政教学+红色师资培育"三位一体必修教育体系的管理平台。 + +#### 3.4.2 核心模块 + +**① 分龄分层课程管理体系** +- 三级课程体系管理: + - **小学段**:红色故事沉浸式互动体验课程,侧重情感熏陶 + - **中学段**:革命历史脉络系统课程,强化历史逻辑认知 + - **高校段**:延安精神理论深度研讨、社会实践课题研究 +- 党政课程体系: + - 廉政教育专题党课 + - 湾区发展专题党课 + - 主题教育集中轮训课程 + - 主题党日活动课程包 +- 课程版本管理 + 内容年度更新机制 +- 与中国人民大学联合课程开发流程管理 + +**② 党性培训流程管理** +- 培训计划制定 → 学员报名 → 分班排课 → 现场培训 → 结业考核 → 证书发放 +- 入党宣誓固定点位预约管理 +- 组织生活会、主题教育流程模板化 +- 培训记录归档(对接干部管理信息系统) + +**③ 红色师资培育管理** +- 师资人才库:党务干部、思政教师、讲解员 +- 持证研修班管理:报名 → 培训 → 考核 → 发证 → 持续教育 +- 标准化课件库管理(版本控制 + 权限管理) +- 数字化教学工具输出(课件包 + 数字资源包) + +**④ 研学基地管理** +- 省级/国家级研学基地申报材料管理 +- 全省千余所院校长期研学合作框架管理 +- 研学行程定制(对接4条动线) +- 结业认证体系:电子证书 + 学时记录 + +**⑤ AI通识与数字创作实训管理** +- AI通识课程管理(面向中小学生、港澳青年) +- 数字创作实训工坊管理: + - 红色短视频创作 + - AI党史绘画 + - 虚拟党史宣讲脚本 +- 优质原创数字作品上云展示管理 +- 粤港澳三地同步线上研讨交流支持 + +**⑥ 太极教学管理** +- AI+太极课程管理(骨骼动作捕捉、AI动作矫正) +- 公益课程排课与预约 +- 太极数字大屏内容管理 +- 大湾区非遗太极交流赛管理 +- 跨境太极交流活动管理 + +#### 3.4.3 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| 课程管理 | 微服务架构 + React管理后台 | +| 培训流程 | 工作流引擎(Camunda/Flowable) | +| 证书系统 | 区块链存证 + 电子签章 | +| 师资库 | PostgreSQL + 全文检索 | +| 实训管理 | 在线IDE/创作工具集成 + 作品云存储 | +| 太极AI矫正 | MediaPipe姿态估计 + 自定义动作评分模型 | + +--- + +### S5. 文物数字化管理子系统 + +#### 3.5.1 建设目标 +实现延安革命文物从数字化采集、修复、建档到线上展示的全流程管理。 + +#### 3.5.2 核心模块 + +**① 文物数字化采集管理** +- 文物3D扫描任务管理(摄影测量/激光扫描) +- 采集质量自动检测 +- 元数据录入:文物名称、年代、级别、来源、历史背景 +- 数字化进度看板 + +**② 文物数字修复工作台** +- 3D模型修复工具链(去噪、补全、纹理还原) +- 修复版本管理(原始模型 → 修复版本 → 展示版本) +- 修复操作日志记录 + +**③ 数字馆藏库** +- 线上数字馆藏数据库(支持分类检索、标签筛选) +- 高精度模型分级访问权限(公众版/研究版) +- 与S2数字展陈系统联动,自动同步至3D云展馆 +- 与S1知识引擎联动,文物元数据注入知识图谱 + +**④ 恒温恒湿环境监控** +- 文物库房/展柜温湿度实时采集(IoT传感器) +- 环境异常自动告警(对接S3安防消防联动) +- 历史环境数据存储与分析 +- 环境调控设备联动控制 + +**⑤ 临展调度管理** +- 全国红色纪念馆巡展协调管理 +- 展品运输、入库、布展流程管理 +- 临时展览内容管理(模块化展墙配置) +- 展期排程与S3票务系统联动 + +**⑥ 文物数字化全流程管理** +- 采集 → 修复 → 归档 → 展示 → 下架 全生命周期管理 +- 文物出入库记录 +- 文物状态追踪(在展/在库/外借/修复中) + +#### 3.5.3 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| 3D扫描 | 工业级激光扫描仪 + 摄影测量 | +| 模型修复 | Blender / MeshLab + 自研修复插件 | +| 数字馆藏 | 3D模型托管平台(Sketchfab类)+ 自建CDN | +| 环境监控 | LoRa温湿度传感器 + MQTT上报 | +| 流程管理 | 工作流引擎 + RFID文物标签 | + +--- + +### S6. 港澳青年国情教育专项子系统 + +#### 3.6.1 建设目标 +打造面向港澳青年的专属国情教育数字化平台,实现全场景双语适配、跨境研学闭环管理、常态化交流。 + +#### 3.6.2 核心模块 + +**① 全场景双语适配引擎** +- 中英双语AI宣讲内容管理(对接S1) +- 双语史料库管理 +- 轻量化沉浸式红色体验课程(简化理论表述) +- 界面语言一键切换(简体/繁体/英文) +- 适配港澳青年认知习惯的内容推荐算法 + +**② 跨境研学专属闭环管理** +- 港澳爱国社团/院校对接管理 +- 定制研学行程创建(双语专人接待 + 跨境交通协调 + 轻量化数字体验课程) +- 跨境交通协调模块(接驳车/通关提示) +- 研学全流程跟踪:出发 → 到达 → 体验 → 反馈 +- 港澳青年专属预约通道(对接S3票务) + +**③ 粤港澳青年交流平台** +- 常态化线上交流平台: + - 延安精神交流论坛 + - AI+创作大赛 + - 非遗太极跨境交流营 +- 活动管理:创建 → 报名 → 进行 → 成果展示 +- 多语种实时翻译(粤语/普通话/英语) +- 社区互动:话题讨论、作品分享、心得交流 +- 港澳青年参与数据追踪与效果评估 + +**④ 港澳青年认知效果评估** +- 参观前后认知问卷(数字化采集) +- 国家认同/民族认同/文化认同变化追踪 +- 参与频次与深度分析 +- 效果评估报告自动生成(对接S8数据中台) + +#### 3.6.3 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| 双语适配 | i18n国际化框架 + 繁简转换 + 翻译记忆库 | +| 跨境研学 | 微信小程序(港澳版)+ Web门户 | +| 交流平台 | React + WebSocket实时通信 | +| 实时翻译 | 接入机器翻译API(百度/腾讯)| +| 效果评估 | 问卷引擎 + 数据分析看板 | + +--- + +### S7. 内容管理与IP孵化子系统 + +#### 3.7.1 建设目标 +统一管理全部数字内容资产,支撑文创产品开发、融合IP孵化、内容审核发布全流程。 + +#### 3.7.2 核心模块 + +**① 数字内容矩阵管理** +- 统一内容仓库:视频、音频、图文、3D模型、课件、互动脚本 +- 内容标签体系(按主题/年代/受众/场景多维分类) +- 内容生命周期管理(上线 → 更新 → 下架 → 归档) +- 按月更新计划管理(对应模块化动态迭代原则) +- 内容分发:自动推送至3D云展馆、环幕影院、移动端、社交媒体 + +**② 内容审核与发布工作流** +- 三级审核机制:AI初审 → 编辑复审 → 专家终审 +- 政治合规性自动检查(对接S1内容编审引擎) +- 史料溯源标注强制校验 +- 发布审批流程数字化 +- 年度内容巡检计划与执行 + +**③ 文创产品管理** +- 文创产品库:延安精神、东江纵队、大湾区、港澳家国主题 +- 产品设计协作流程管理 +- 供应链对接(打样 → 生产 → 库存 → 销售) +- 线上线下销售渠道管理 +- 青少年红色泥塑、版画手作研学活动管理 + +**④ 融合IP开发管理** +- "延安精神+太极"融合数字课程管理 +- 短视频IP内容生产与管理 +- IP授权管理(授权方/被授权方/授权范围/期限) +- IP资产价值评估 +- 对外输出标准化解决方案包管理 + +**⑤ 临时巡展内容管理** +- 全国红色巡展内容接入管理 +- 地方党史专题展内容管理 +- 港澳青年艺术展内容管理 +- 时代楷模事迹展内容管理 +- 模块化展墙配置与内容绑定 + +#### 3.7.3 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| 内容管理 | Headless CMS(Strapi/Directus)+ 对象存储 | +| 审核工作流 | 工作流引擎 + AI审核API | +| 文创管理 | ERP轻量模块 + 电商对接 | +| IP管理 | 自研 + 区块链存证 | +| 内容分发 | CDN + 多渠道API推送 | + +--- + +### S8. 数据中台与决策支持子系统 + +#### 3.8.1 建设目标 +汇聚全系统数据,提供运营分析、效果评估、风控预警的统一数据底座和决策支持。 + +#### 3.8.2 核心模块 + +**① 统一数据采集与治理** +- 数据源接入: + - S3客流/票务/安防数据 + - S4培训/研学/师资数据 + - S5文物/环境数据 + - S6港澳青年参与数据 + - S7内容/文创/IP数据 + - S1 AI交互日志数据 +- 数据清洗、标准化、质量监控 +- 统一数据模型与指标体系 + +**② 运营分析看板** +- 实时运营大屏: + - 当日客流/各分区人数/动线负载 + - VR体验舱排队/环幕上座率 + - 培训进行场次/研学团队数 + - 安防状态/环境状态 +- 经营分析报表: + - 客流趋势分析(日/周/月/季/年) + - 收入结构分析(门票/培训/文创/IP授权) + - 课程参与率与满意度 + - 设备利用率与故障率 + +**③ 效果评估系统** +- 教育效果评估: + - 党员干部培训效果追踪 + - 青少年研学认知提升测量 + - 港澳青年认同感变化追踪 + - 师资培训成果评估 +- 传播效果评估: + - 3D云展馆访问量/停留时长 + - 线上活动参与度 + - 内容传播力分析 +- 评估报告自动生成与导出 + +**④ 风控预警平台** +- 政治合规风控: + - 内容审核状态监控 + - 年度巡检进度追踪 + - 史实争议预警 +- 客流安全风控: + - 客流超限实时预警 + - 安防事件实时告警 + - 应急演练记录管理 +- 经营风控: + - 收入波动预警 + - 客流异常波动分析 + - 成本结构监控 +- 场地运维风控: + - 设备故障率预警 + - 环境异常告警 + - 租金/能耗成本分析 + +**⑤ 对外输出支持** +- 标准化场馆解决方案数据包 +- 技术输出文档与配置模板管理 +- 全国师资共建数据管理 +- 可复制样板指标体系 + +#### 3.8.3 技术选型方向 + +| 模块 | 技术方案 | +|------|---------| +| 数据采集 | Kafka消息队列 + Flink实时计算 | +| 数据存储 | PostgreSQL(业务)+ ClickHouse(分析)+ Redis(缓存)| +| 数据治理 | Apache Atlas + 自研质量监控 | +| 可视化 | Apache Superset / 自研大屏(ECharts/D3.js) | +| 风控引擎 | 规则引擎(Drools)+ 机器学习异常检测 | +| 报表 | JasperReports / 自研模板引擎 | + +--- + +## 四、系统建设实施路线图 + +### 4.1 与项目实施计划对齐 + +| 项目阶段 | 时间 | 系统建设重点 | +|---------|------|------------| +| 前期筹备 | 第1-8月 | S1知识图谱构建、S8数据中台搭建、各子系统需求详细设计 | +| 场地改造与设备进场 | 第9-20月 | S2/S3/S5硬件部署与软件联调、S1大模型微调上线、S4/S6/S7系统开发 | +| 试运营与内容迭代 | 第21-26月 | 全系统联调测试、3D云展馆上线、港澳通道开通、内容填充与优化 | +| 正式运营 | 第27-48月 | 全业态运营、数据驱动优化、对外输出标准化方案 | +| 中长期迭代 | 第49月+ | 每3年整体升级、IP拓展、全国研学联盟数字化 | + +### 4.2 分批建设优先级 + +**第一批(第1-8月,基础底座):** +- S1 知识图谱与大模型微调启动 +- S8 数据中台基础架构搭建 +- S3 票务预约系统(试运营必需) +- 全系统详细需求分析与架构设计 + +**第二批(第9-14月,核心体验):** +- S2 VR/AR/MR体验调度 + 8K环幕播控 +- S3 客流监控 + 安防消防联动 +- S5 文物数字化采集管理 +- S1 AI宣讲人引擎上线 + +**第三批(第15-20月,教学运营):** +- S4 教研培训全流程管理 +- S6 港澳青年专项平台 +- S7 内容管理与IP孵化 +- S2 3D云展馆平台上线 + +**第四批(第21-26月,联调优化):** +- 全系统联调与压力测试 +- S8 运营分析看板与风控预警上线 +- 内容填充与用户体验优化 +- 港澳专场测试与双语系统优化 + +--- + +## 五、关键技术风险与应对 + +| 风险 | 影响 | 应对措施 | +|------|------|---------| +| AI大模型政治安全风险 | 生成不当内容 | 多级审核护栏 + 私有化部署 + 人工复核机制 | +| VR/AR设备故障率 | 体验中断 | 冗余设备 + 远程诊断 + 快速换机预案 | +| 港澳跨境网络延迟 | 云展馆体验差 | 港澳节点CDN部署 + 轻量化Web3D方案 | +| 文物数字化精度不足 | 展示效果差 | 工业级扫描设备 + 专业修复团队 + 质量验收标准 | +| 客流高峰系统过载 | 预约/导览瘫痪 | 弹性扩容 + 限流降级 + 离线模式兜底 | +| 内容审核遗漏 | 政治风险 | AI初审+人工复审+专家终审三级机制 + 年度巡检 | + +--- + +## 六、总结 + +本方案围绕项目报告的 **五大核心目标** 和 **六大功能板块**,设计了 **八大子系统** 的智慧系统架构: + +- **S1 AI大模型与知识引擎** — 智慧大脑,驱动双语宣讲、智能问答、内容编审 +- **S2 数字展陈与沉浸体验** — 体验核心,管理VR/环幕/全息/云展馆/演播 +- **S3 智慧场馆运营管理** — 运营基座,票务/客流/导览/动线/安防全管控 +- **S4 教研培训管理** — 教育中枢,三位一体必修教育体系全流程 +- **S5 文物数字化管理** — 文物底座,数字化采集到展示全生命周期 +- **S6 港澳青年国情教育专项** — 湾区特色,双语/跨境/交流/评估专项 +- **S7 内容管理与IP孵化** — 内容引擎,数字内容矩阵+文创+IP全管理 +- **S8 数据中台与决策支持** — 决策核心,数据汇聚+分析+评估+风控 + +八个子系统通过 **AI能力中台** 和 **数据中台** 紧密耦合,形成统一的智慧场馆技术体系,支撑项目从试运营到正式运营再到全国输出复制全生命周期。 diff --git a/用户交流技术实现方案.md b/用户交流技术实现方案.md new file mode 100644 index 0000000..9b60073 --- /dev/null +++ b/用户交流技术实现方案.md @@ -0,0 +1,1201 @@ +# 延安精神(大湾区)学习展示中心 — 技术实现方案 + +> 本文档从业务与技术双重视角,描述系统如何支撑各类用户的完整交互旅程。包含架构设计、系统流程和技术亮点,但不涉及数据库表结构和代码实现细节。 + +--- + +## 一、系统总体架构 + +### 1.1 六层技术架构 + +系统采用六层架构,每一层为上层提供能力支撑,最终交付到用户触达层。这不是简单的"前后端",而是一个**AI驱动、数据闭环、多端协同**的智能体验系统。 + +``` +┌──────────────────────────────────────────────────────────────────────┐ +│ 用户触达层 │ +│ 线下终端(触屏/VR/环幕/UWB/RFID) │ 线上(Web/小程序/H5) │ 节点终端 │ +├──────────────────────────────────────────────────────────────────────┤ +│ 应用服务层 │ +│ F1自适应叙事 F2情境任务 F3文物数字生命 F4成长护照 │ +│ F5云上共同体 F6青年共创 F7行动实验室 F8星火节点OS │ +├──────────────────────────────────────────────────────────────────────┤ +│ 公共平台层 │ +│ X1体验编排引擎 X2成长护照档案 X3内容治理中心 S9节点协同 │ +├──────────────────────────────────────────────────────────────────────┤ +│ AI能力层 │ +│ 可信叙事引擎 学习成长引擎 编审助手引擎 策展助手引擎 │ +├──────────────────────────────────────────────────────────────────────┤ +│ 数据资产层 │ +│ 知识图谱 │ 向量检索库 │ 内容资源仓 │ 业务数据库 │ +│ 时序分析库 │ 实时缓存 │ 消息总线 │ +├──────────────────────────────────────────────────────────────────────┤ +│ 基础设施层 │ +│ 私有云容器编排 │ GPU推理集群 │ 5G专网 │ IoT网关 │ CDN │ 安防网络 │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **AI不是附加功能,而是系统底座**:所有产品共享同一套AI能力层,AI引擎是公共设施而非单一展项的点缀; +- **数据资产层统一管理**:知识图谱、向量库、内容仓、业务库各司其职,通过消息总线实时联动,不是传统的"一个数据库搞定一切"; +- **公共平台层贯穿全局**:X1/X2/X3三大引擎像"操作系统"一样调度所有产品,产品之间松耦合但数据互通。 + +### 1.2 系统部署拓扑 + +``` + ┌──────────────┐ + │ 公网入口 │ + │ WAF + SLB │ + └──────┬───────┘ + │ + ┌──────────┴──────────┐ + │ │ + ┌─────┴─────┐ ┌──────┴──────┐ + │ 线上云区 │ │ 线下场馆区 │ + │ (公有云) │ │ (私有云) │ + └─────┬─────┘ └──────┬──────┘ + │ │ + ┌──────────┴──────────┐ ┌───────┴────────┐ + │ │ │ │ + ┌─────┴─────┐ ┌───────┴──┴──┐ ┌───────┴──────┐ + │ Web/小程序 │ │ AI推理GPU集群│ │ IoT/安防/VR │ + │ API网关 │ │ 容器集群 │ │ 设备网络 │ + │ CDN节点 │ │ 数据库集群 │ │ 边缘计算盒子 │ + └───────────┘ └─────────────┘ └──────────────┘ +``` + +**部署策略**: + +- **AI推理+知识图谱+核心数据**:部署在场馆私有云,保证数据安全和毫秒级低延迟; +- **Web端/小程序/云展馆**:部署在公有云,通过CDN加速港澳及海外访问; +- **两区通过VPN专线互联**,数据按需同步,保证线下体验不依赖公网; +- **全国节点**:通过S9节点协同系统远程部署组件包,各节点可独立运行,断网不失能。 + +### 1.3 系统为谁服务 + +| 用户群体 | 核心需求 | 系统提供的能力 | +|---------|---------|--------------| +| 中小学生 | 有趣、能懂、能参与 | 自适应路线、互动任务、VR体验、成长护照 | +| 大学生/青年 | 深度探究、社交共创 | 情境任务、云展馆、青年共创平台、协作工具 | +| 党员干部 | 理论深度、联系实际 | 深度路线、整风专题、行动实验室、案例库 | +| 港澳同胞 | 文化认同、湾区连接 | 繁体/英文、东江纵队专题、线上学习、轻量参与 | +| 教育工作者 | 教学资源、教研支撑 | 课程平台、案例库、学情数据、教研工具 | +| 节点运营者 | 标准化部署、独立运营 | 节点OS、组件包、远程监控、内容同步 | + +### 1.4 用户触达渠道 + +| 渠道 | 覆盖场景 | 用户体验要点 | +|------|---------|------------| +| 微信小程序 | 参观前导学、参观中联动、离馆后回访 | 无需下载、扫码即用、消息推送 | +| 线下触屏终端 | 入馆选择、展区互动、任务操作 | 直觉操作、多人共用、快速响应 | +| VR/XR设备 | 沉浸体验历史场景 | 72fps流畅、体感联动、4人协同 | +| Web端(H5) | 云展馆、课程学习、港澳访问 | 浏览器即用、3D渲染、跨设备适配 | +| AI对话终端 | 智能问答、导览讲解 | 史料引用、多语言、安全可信 | +| 节点终端 | 全国星火节点本地体验 | 离线可用、定期同步、刷卡进入 | + +--- + +## 二、AI可信知识引擎 + +### 2.1 整体架构 + +AI引擎是全馆的"大脑",不是某个展项的附属功能。采用**"知识图谱 + RAG检索增强 + 大模型微调"三层架构**,确保AI回答可信、可溯源、不臆造。 + +``` +┌────────────────────────────────────────────────────────────┐ +│ AI可信知识引擎 │ +├────────────────────────────────────────────────────────────┤ +│ │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ +│ │ 知识图谱 │ │ RAG检索增强 │ │ 大模型微调 │ │ +│ │ │ │ │ │ │ │ +│ │ 事件/人物/ │ │ 用户提问 │ │ 延安精神 │ │ +│ │ 文物/概念/ │ │ → 语义检索 │ │ 专属语料 │ │ +│ │ 地点及关系 │ │ → 召回史料 │ │ → LoRA微调 │ │ +│ │ │ │ → 生成回答 │ │ → 人群适配 │ │ +│ │ 史实锚点 │ │ │ │ │ │ +│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ +│ │ │ │ │ +│ └─────────────────┼─────────────────┘ │ +│ │ │ +│ ┌──────┴───────┐ │ +│ │ 安全护栏层 │ │ +│ │ 输入过滤 │ │ +│ │ 事实校验 │ │ +│ │ 输出过滤 │ │ +│ │ 审计追溯 │ │ +│ └──────────────┘ │ +└────────────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **知识图谱是"史实锚点"**:每个历史事件、人物、文物及其关系都建模为图谱节点,AI回答必须与图谱交叉验证,确保不歪曲史实; +- **RAG不是简单搜索**:用户提问先经过语义理解,从史料库中召回最相关的原始文献片段,再由大模型组织语言生成回答——**AI是在"读史料后回答",不是"凭记忆回答"**; +- **大模型经过延安精神专属微调**:不是通用ChatGPT套壳,而是用权威史料对国产开源大模型进行LoRA微调,让模型"懂延安、懂党史、懂教育"; +- **三层安全护栏**:输入过滤(拦截不当提问)→ 事实校验(与知识图谱比对)→ 输出过滤(拦截不当表述),**三层防线确保AI永远不会胡说八道**。 + +### 2.2 四种AI角色 + +系统不是"一个AI什么都干",而是根据场景分化为四种专业角色: + +| AI角色 | 用户场景 | 用户能做什么 | 用户看到什么 | +|--------|---------|------------|------------| +| **可信馆员** | 展区AI终端、小程序问答 | 提问历史问题、追问、要求展开 | 回答+史料来源引用+不确定性说明+追问建议 | +| **学习教练** | 任务复盘、行动回访 | 提交方案/行动、获得反馈、回答追问 | 方案对比分析+证据使用评价+改进建议+追问 | +| **策展助手** | 研究者、教育工作者 | 检索史料、关联文物、生成展陈素材 | 检索结果+关联网络+史料原文+版权信息 | +| **编审助手** | 内容创作者、编辑 | 提交作品/内容、获得审核反馈 | 史实校验结果+来源检查+合规检查+修改建议 | + +**技术亮点**: + +- **意图路由**:系统自动识别用户意图,将问题路由到最合适的AI角色和模型——简单问题用轻量模型快速回答,复杂问题用大模型深度回答,**平衡质量和速度**; +- **上下文感知**:AI知道用户当前在哪个展区、在看哪件文物、是什么人群类型,回答自动适配语境——**同一个问题在不同展区得到不同角度的回答**; +- **流式输出**:AI回答边生成边显示,用户无需等待完整回答生成完毕,**体验上几乎零延迟**。 + +### 2.3 AI回答的信任机制 + +用户每次与AI对话,系统都保证: + +- **每条回答附史料来源**:显示文献名、页码、原文片段,用户可自行验证 +- **标注不确定性**:对有争议的史实明确说明"学术界尚有不同观点" +- **禁止臆造**:AI只在已审核史料范围内回答,不临场编造 +- **安全护栏**:自动拦截不当提问和不当输出,100%拦截率 +- **全过程审计**:所有对话记录可追溯,支持质量回查和模型迭代 +- **NPC安全约束**:VR内的AI角色禁止模拟革命领袖发表新言论,仅复述已审核史料 + +### 2.4 多语言与多人群适配 + +``` +用户提问(繁体中文) + ↓ +意图识别 + 人群类型判断(港澳中学生) + ↓ +RAG检索(史料库语义检索,召回相关文献) + ↓ +大模型生成(适配港澳中学生理解水平,繁体中文输出) + ↓ +安全护栏(事实校验 + 输出过滤) + ↓ +TTS语音合成(粤语发音可选) + ↓ +回答 + 史料来源 + 追问建议 +``` + +| 语言 | 覆盖范围 | 技术实现 | +|------|---------|---------| +| 简体中文 | 所有场景 | 默认语言 | +| 繁体中文 | 港澳用户全链路 | UI翻译+AI回答繁体输出+字幕翻译 | +| 英文 | 港澳/海外用户 | UI翻译+AI双语回答+字幕翻译 | +| 粤语 | AI语音导览 | 语音合成支持粤语发音 | + +--- + +## 三、三引擎技术架构 + +三引擎是系统的"操作系统"——可信叙事引擎管内容怎么讲,学习成长引擎管用户怎么学,复制运营引擎管系统怎么复制到全国。 + +### 3.1 可信叙事引擎 + +**核心能力**:把同一权威史料转化为面向不同人群的准确表达。不是AI临场改写历史,而是在已审核内容组件中进行安全编排。 + +``` +┌────────────────────────────────────────────────────┐ +│ 可信叙事引擎 │ +├────────────────────────────────────────────────────┤ +│ │ +│ ┌──────────────┐ ┌──────────────┐ │ +│ │ 内容组件仓库 │ │ 叙事路线算法 │ │ +│ │ │ │ │ │ +│ │ 已审核的: │ │ 输入: │ │ +│ │ - 文字片段 │ → │ - 人群类型 │ │ +│ │ - 影像素材 │ │ - 学习问题 │ │ +│ │ - 3D模型 │ │ - 可用时长 │ │ +│ │ - 互动任务 │ │ - 语言偏好 │ │ +│ │ - AI讲解词 │ │ - 实时客流 │ │ +│ │ │ │ │ │ +│ │ 每个组件标注: │ │ 输出: │ │ +│ │ - 适用人群 │ │ - 节点序列 │ │ +│ │ - 时长估算 │ │ - 每节点内容 │ │ +│ │ - 审核状态 │ │ - 适配方案 │ │ +│ └──────────────┘ └──────────────┘ │ +│ │ +│ 关键原则: 不生成新内容,只编排已审核组件 │ +└────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **内容组件化**:所有展览内容被拆解为可复用的"组件"(一段文字、一段视频、一个3D模型、一个互动任务),每个组件标注适用人群和审核状态——**系统像"乐高积木"一样编排内容,而非每次重新生成**; +- **路线算法考虑实时客流**:不仅看用户人群和时长,还看当前各区域拥挤程度,**自动避开排队热点,动态调整推荐路线**; +- **同一空间千人千面**:同一展区,小学生看到动画+游戏化任务,党员干部看到原始文献+理论分析,港澳青年看到繁体+湾区连接视角——**物理空间不变,数字内容随人而变**。 + +| 用户类型 | 同一展区的不同体验 | +|---------|-----------------| +| 小学生 | 动画+游戏化任务+简短文字+卡通导览 | +| 中学生 | 因果推理任务+证据收集+历史对比 | +| 党员干部 | 原始文献+理论分析+决策复盘 | +| 港澳青年 | 繁体/英文+湾区连接视角+轻量叙事 | + +### 3.2 学习成长引擎 + +**核心能力**:管理每个人从提问、体验到行动和再传播的成长路径,对应F4成长护照。 + +``` +┌──────────────────────────────────────────────────────┐ +│ 学习成长引擎 │ +├──────────────────────────────────────────────────────┤ +│ │ +│ 参观前导学 参观中记录 离馆后回访 │ +│ ┌────────┐ ┌────────┐ ┌────────┐ │ +│ │人群选择 │ │UWB自动 │ │7天回顾 │ │ +│ │问题选择 │ │记录位置│ │30天进展 │ │ +│ │路线生成 │ │任务记录│ │90天成果 │ │ +│ │导学推送 │ │AI问答 │ │行动评估 │ │ +│ │ │ │理解表达│ │案例入库 │ │ +│ └────────┘ └────────┘ └────────┘ │ +│ ↓ ↓ ↓ │ +│ ┌───────────────────────────────────┐ │ +│ │ 统一成长档案 (X2护照) │ │ +│ │ 跨系统同步 · 全程陪伴 · 闭环追踪 │ │ +│ └───────────────────────────────────┘ │ +└──────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **7/30/90天回访机制**:不是"参观完就结束",而是通过定时推送在7天、30天、90天三个节点回访用户,**追踪从"知道"到"做到"的真实转化**; +- **跨系统数据自动归档**:票务、展区体验、AI对话、VR体验、行动反馈——所有系统的数据自动汇入同一本护照,**用户无需手动操作,系统自动记录全程学习轨迹**; +- **北极星指标可计算**:系统通过跨表关联计算"有效学习与行动转化人次"——完成核心学习路径 + 理解验证 + 形成行动 + 产生反馈的完整闭环人数,**这是衡量项目真实价值的核心指标**。 + +### 3.3 复制运营引擎 + +**核心能力**:把内容、课程、体验和运营方法打包输出到全国节点,像"连锁店"一样标准化复制。 + +``` +┌──────────────────────────────────────────────────────┐ +│ 复制运营引擎 │ +├──────────────────────────────────────────────────────┤ +│ │ +│ 旗舰中心 (L4) │ +│ ┌────────────────────────────────────────┐ │ +│ │ 权威内容生产 → 组件包打包 → 版本发布 │ │ +│ │ 全国节点调度 → 远程监控 → 数据回收 │ │ +│ └──────────────────┬─────────────────────┘ │ +│ │ 组件包分发 │ +│ ┌───────────┼───────────┐ │ +│ │ │ │ │ +│ ┌────┴────┐ ┌───┴─────┐ ┌───┴─────┐ │ +│ │L3 城市 │ │L2 标准 │ │L1 微型 │ │ +│ │节点 │ │节点 │ │节点 │ │ +│ │独立运营 │ │7天部署 │ │一体机 │ │ +│ │本地化 │ │本地AI │ │即开即用 │ │ +│ └─────────┘ └─────────┘ └─────────┘ │ +│ │ +│ 组件包内容: 知识图谱子集 + 史料向量 + 课程 + │ +│ 任务剧本 + VR场景 + 运营SOP │ +└──────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **组件包标准化分发**:旗舰中心把内容打包成版本化的"组件包",各节点拉取即用——**像App Store更新一样简单**; +- **断网不失能**:各节点本地有AI推理能力和内容缓存,公网断开时仍可独立运行,**网络恢复后自动同步**; +- **本地内容可回流**:各节点产生的优秀作品和本地化内容,可提交到旗舰中心审核后全国共享——**全国节点既是消费者也是生产者**。 + +--- + +## 四、八个旗舰产品技术架构与场景 + +### 4.1 F1"一馆千面"自适应叙事空间 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F1 自适应叙事空间系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 入馆选择终端 │ 空间联动控制 │ 学习脉络生成 │ +│ (自助机/小程序) │ (X1编排引擎) │ (离馆报告) │ +├────────────────┼────────────────┼────────────────────┤ +│ 用户画像采集: │ 设备联动: │ 报告内容: │ +│ - 人群类型(选择) │ - 屏幕内容切换 │ - 路线节点列表 │ +│ - 学习问题(选择) │ - 灯光场景切换 │ - 查看过的文物 │ +│ - 可用时长(选择) │ - 音频导览切换 │ - 完成的任务 │ +│ - 语言(选择) │ - AI讲解适配 │ - AI问答记录 │ +│ │ - 互动任务推送 │ - 个人理解表达 │ +│ │ - 客流实时感知 │ - 推荐后续学习 │ +└────────────────┴────────────────┴────────────────────┘ +``` + +**X1全场景体验编排引擎**是F1的技术核心——它是一个**实时事件驱动的编排系统**: + +``` +┌──────────────────────────────────────────────────────┐ +│ X1 体验编排引擎 │ +├──────────────────────────────────────────────────────┤ +│ 输入: │ +│ - 用户路线(来自可信叙事引擎) │ +│ - 实时位置(UWB定位 10Hz更新) │ +│ - 实时客流(摄像头+IoT传感器) │ +│ - 设备状态(监控系统) │ +├──────────────────────────────────────────────────────┤ +│ 编排逻辑 (实时流式计算): │ +│ 1. 用户进入区域 → 匹配路线节点 │ +│ 2. 查询该节点对应的内容组件 │ +│ 3. 下发指令到对应设备: │ +│ - 屏幕: 播放对应内容 │ +│ - 灯光: 切换场景灯光 │ +│ - 音频: 播放对应导览 │ +│ - AI终端: 加载对应讲解上下文 │ +│ - 互动设备: 激活对应任务 │ +│ 4. 客流拥挤 → 切换备选节点 → 重新下发指令 │ +├──────────────────────────────────────────────────────┤ +│ 输出: │ +│ - 设备控制指令(实时消息推送) │ +│ - 用户学习记录(写入成长护照) │ +│ - 客流调度信号(反馈给智慧场馆) │ +└──────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **UWB厘米级室内定位**:天花板安装UWB锚点,用户佩戴UWB手环,定位精度10-30cm,10Hz实时更新——**系统精确知道你在馆内的位置和移动方向**; +- **复杂事件处理引擎**:基于实时流式计算,在毫秒级时间内处理"用户进入区域+客流低于阈值+路线匹配"等复合事件,**触发设备联动**; +- **六类设备统一编排**:LED屏幕、灯光系统、音频系统、VR设备、互动终端、AI数字人——**一套编排引擎控制全馆所有数字设备,像指挥家指挥交响乐**。 + +**设备控制协议**: + +| 设备类型 | 控制方式 | 联动效果 | +|---------|---------|---------| +| LED屏幕/投影 | 媒体服务器API | 按用户人群切换播放内容 | +| 灯光系统 | DMX512 over IP | 按展区氛围切换灯光场景 | +| 音频系统 | 分区音频矩阵 | 按区域播放不同导览内容 | +| VR/AR设备 | 实时通信+场景切换 | 按路线推送对应VR场景 | +| 互动终端 | 实时消息推送 | 按位置激活对应互动任务 | +| AI数字人 | 远程驱动+语音合成 | 按人群适配讲解内容和语言 | + +#### 场景示例:香港中学生小陈的45分钟参观 + +**入场前(参观前一天)**: +- 小陈通过学校预约,收到小程序链接 +- 选择:中学生 / "延安精神和我们有什么关系?" / 45分钟 / 繁体中文 +- 系统生成路线:6个节点(含1个VR体验) +- 推送导学材料:3分钟短视频 + 预习思考题 + +**入馆(第0分钟)**: +- 刷身份证 + 扫小程序码 → 系统识别身份,调取路线 +- 领取UWB手环 → 路线推送至手机 + +**节点1 延安十三年全景(第0-8分钟)**: +- 走入序厅 → UWB检测位置 → X1编排引擎下发指令 +- 环形屏幕自动播放繁体字幕版全景影像 +- 灯光切换暖黄色调(窑洞氛围)→ 音频播放繁体导览 +- AI终端加载"中学生+繁体"讲解上下文 +- 小陈提问"为什么延安能成为革命中心?" → AI回答附史料引用 + +**节点2 南泥湾文物展区(第8-18分钟)**: +- UWB检测进入文物区 → 展柜屏幕播放纺车3D动画 + 繁体说明 +- 灯光聚焦展柜,环境光降低 +- 扫描文物二维码 → 手机显示文物星图(五层内容) +- 互动终端激活"纺车操作体验" + +**节点3 VR沉浸体验(第18-28分钟)**: +- 排队区观看历史背景+操作教学(约3分钟) +- 佩戴VR头显+触觉背心 → 进入南泥湾场景 +- 挥锄开荒(座椅前倾+背心振动+微风) +- 操作纺车(座椅节律振动) +- VR内AI NPC(老乡形象)讲解大生产背景 + +**节点4 东江纵队展区(第28-35分钟)**: +- UWB检测进入华南抗战区 → 灯光切换冷色调 +- 屏幕播放港九大队营救文化名人 → 小陈产生共鸣 +- AI加载东江纵队史料上下文 +- AI提问"东江纵队和香港有什么关系?" → AI回答何香凝、茅盾营救故事 + +**节点5 改革开放蛇口展区(第35-42分钟)**: +- 灯光切换明亮现代色调 +- 屏幕播放蛇口"时间就是金钱"场景 +- 互动决策"如果你是蛇口建设者" + +**节点6 行动选择(第42-47分钟)**: +- 终端基于参观记录智能推荐行动方向 +- 小陈选择团队行动"制作东江纵队短视频" +- 系统生成行动卡片,设置7/30/90天回访 + +**离馆**: +- 小程序查看离馆报告:路线完成度100%、文物8件、AI问答2次、VR 1次 +- 填写理解表达:"延安精神就是不怕困难、敢做别人没做过的事" +- 报告生成PDF,可分享 + +**离馆后**: +- 第7天:推送东江纵队延伸阅读 +- 第30天:提交短视频初稿 +- 第90天:提交完成视频 → 入选F6青年共创平台 + +### 4.2 F2"十三年·十三问"历史情境任务剧场 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F2 情境任务剧场系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 任务引擎 │ 团队协作终端 │ AI复盘引擎 │ +│ (剧本+状态机) │ (多屏互动) │ (学习教练API) │ +├────────────────┼────────────────┼────────────────────┤ +│ 任务定义: │ 协作方式: │ 复盘内容: │ +│ - 历史问题 │ - 主屏: 情境展示 │ - 团队方案 vs 历史 │ +│ - 角色分配 │ - 分屏: 证据查看 │ - AI追问(史料引用) │ +│ - 资源约束 │ - 个人终端: 决策 │ - 证据使用分析 │ +│ - 证据集 │ - 团队屏: 方案汇总│ - 现实连接问题 │ +│ - 历史事实 │ │ │ +│ - 评价维度 │ │ │ +└────────────────┴────────────────┴────────────────────┘ +``` + +**技术亮点**: + +- **任务状态机驱动**:每个情境任务有9个确定状态(介绍→角色分配→证据查看→团队讨论→方案提交→历史揭示→AI复盘→现实连接→报告生成),**状态机保证体验流程不跳步、不遗漏**; +- **VR与非VR双模式共享同一剧本**:同一任务定义、同一证据集、同一历史揭示、同一AI复盘——**VR模式提供更强的沉浸感,非VR模式保证可及性,两种模式数据互通**; +- **AI复盘不是简单对答案**:AI学习教练分析团队方案的关键词、与历史事实比对、评估证据使用情况、生成个性化追问——**像一位历史导师在做一对一辅导**。 + +#### 场景示例:南泥湾大生产任务 + +**任务背景**:1941年经济封锁,你奉命进驻南泥湾开荒。5000亩荒地、有限农具种子、冬天将至,如何确保部队和百姓度过难关? + +**角色分配(4人)**: + +| 角色 | 资源 | 约束 | +|------|------|------| +| 旅长 | 5000亩荒地、2000战士 | 不能征粮、保留战斗训练、冬天前有收成 | +| 生产队长 | 种子清单、农具清单 | 种子有限、农具不足需自制 | +| 后勤处长 | 粮食储备、百姓人口数据 | 现有粮食只够45天 | +| 政治指导员 | 战士思想状况 | 有人质疑"当兵的为什么种地" | + +**证据集(5条史料)**: +- 毛泽东"自己动手,丰衣足食"讲话 +- 三五九旅纺车(3D文物可查看) +- 王震生产报告(1943年) +- 南泥湾开荒照片(1942年) +- 老战士口述史 + +**体验流程(20分钟)**: + +| 步骤 | 时长 | 用户操作 | 系统响应 | +|------|------|---------|---------| +| 任务介绍 | 2min | 观看历史背景视频 | 主屏播放 | +| 角色分配 | 1min | 4人选择/分配角色 | 系统推送角色资源 | +| 证据查看 | 5min | 各角色查看专属证据+公共证据 | 分屏显示/VR内查看3D文物 | +| 团队讨论 | 5min | 讨论生产计划,各角色提出约束 | VR模式可在虚拟窑洞围坐讨论 | +| 方案提交 | 2min | 旅长综合意见提交方案 | 系统接收方案 | +| 历史揭示 | 2min | 观看真实历史做法和成果 | 对比团队方案vs历史方案 | +| AI复盘 | 2min | 听AI分析方案优劣 | AI教练评语+追问"如果种子不够怎么办?" | +| 现实连接 | 1min | 思考现实迁移问题 | 展示当代湾区连接问题 | +| 报告生成 | — | 获得复盘报告 | PDF推送到所有成员成长护照 | + +### 4.3 F3"一物一世界"革命文物数字生命工程 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F3 文物数字生命系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 数字采集管理 │ 五层内容管理 │ 关系星图引擎 │ +├────────────────┼────────────────┼────────────────────┤ +│ 3D扫描: │ 五层结构: │ 可视化: │ +│ - 激光扫描任务 │ L1看见: 图像/3D │ - 力导向图渲染 │ +│ - 摄影测量任务 │ L2知道: 元数据 │ - 交互式星图 │ +│ - 质量检测 │ L3理解: 关联网络│ - 时间轴 │ +│ - 元数据录入 │ L4研究: 档案 │ - 点击节点展开 │ +│ │ L5连接: 课程/任务│ │ +├────────────────┼────────────────┼────────────────────┤ +│ 数字修复工作台 │ 展示终端 │ 组件生成器 │ +│ (3D建模工具) │ (扫码→星图) │ (一物一课/短片) │ +└────────────────┴────────────────┴────────────────────┘ +``` + +**技术亮点**: + +- **五层内容架构**:每件文物不是"一张照片+一段文字",而是从"看见"到"知道"到"理解"到"研究"到"连接"的五层递进——**一件文物就是一个知识宇宙**; +- **关系星图可视化**:以文物为中心,用力导向图渲染关联的事件、人物、地点、文献、概念——**用户点击任何节点都能展开详情,像在宇宙中导航**; +- **3D模型多精度自适应**:高精度研究版支持法线贴图和PBR材质,轻量公众版自动减面+压缩纹理——**同一模型在不同设备上自动适配精度**; +- **推测性复原标识**:对有争议的复原部分用不同颜色边框区分"史实确认"和"推测复原"——**学术严谨性可视化**。 + +#### 场景示例:纺车的五层内容 + +| 层级 | 谁会看 | 看到什么 | +|------|-------|---------| +| **L1 看见** | 所有人 | 3D模型可360°旋转、高清图片、基本信息 | +| **L2 知道** | 普通观众 | 使用者、地点、时间、功能、材质、级别 | +| **L3 理解** | 想深入了解的人 | 关联星图:事件(南泥湾大生产)、人物(王震/毛泽东)、地点、文献、概念 | +| **L4 研究** | 研究者/教育者 | 原始档案、专家视频讲解、历史争议、修复记录、同类文物对比、口述史 | +| **L5 连接** | 想行动的人 | 对应课程(小学/中学/干部)、对应任务、对应VR场景、创作素材、行动模板 | + +**扫码体验流程**: + +``` +展柜前扫描二维码 + → 手机加载文物星图H5 + → 默认显示L1:3D模型 + 基本信息 + → 上滑 → L2:元数据卡片 + → 点击星图节点 → L3:关联网络可视化 + → 点击"深度研究" → L4:档案文献 + → 点击"相关课程" → L5:课程推荐 + → 点击"做一做" → 跳转到F7行动选择 +``` + +### 4.4 F4"一人一程"成长护照 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F4 成长护照系统 │ +├────────────────┬────────────────┬────────────────────┤ +│ 参观前导学 │ 参观中记录 │ 离馆后回访 │ +│ (小程序/H5) │ (终端+UWB+RFID)│ (定时推送+反馈) │ +├────────────────┼────────────────┼────────────────────┤ +│ - 人群选择 │ - 文物查看记录 │ - 第7天推送回顾 │ +│ - 问题选择 │ - 任务完成记录 │ - 第30天进展反馈 │ +│ - 团队目标创建 │ - AI问答记录 │ - 第90天成果提交 │ +│ - 参观建议生成 │ - 理解表达记录 │ - 后续课程推荐 │ +│ - 导学材料推送 │ - 行动选择记录 │ - 临展/活动提醒 │ +└────────────────┴────────────────┴────────────────────┘ + │ │ │ + └────────────────┼────────────────┘ + ↓ + ┌───────────────────┐ + │ X2 统一成长档案 │ + │ 跨系统数据同步 │ + │ GraphQL统一查询 │ + └───────────────────┘ +``` + +**技术亮点**: + +- **跨系统数据自动归档**:票务、展区、AI对话、VR体验、行动反馈——所有系统的数据通过统一API自动汇入同一本护照,**用户无需手动操作**; +- **数据采集边界明确**:系统只采集用户主动选择和主动输入的数据,**禁止采集人脸特征、情绪识别、政治倾向推断**——隐私保护是设计底线而非事后补丁; +- **多端适配**:微信小程序覆盖内地用户,独立H5门户(繁体/英文)覆盖港澳用户不依赖微信——**港澳青年不会因为"没有微信"而被挡在门外**。 + +#### 场景示例:党员干部老张的3小时学习旅程 + +**参观前(提前一周)**: +- 选择:党员干部 / "延安整风对今天作风建设的启示" / 半天 / 简体中文 +- 系统生成8节点路线(含2个情境任务+1个VR) +- 推送导学:《改造我们的学习》原文 + 整风历史视频 + 预习问题 + +**参观中(3小时)**: + +| 节点 | 内容 | 用户操作 | +|------|------|---------| +| 1 | 延安十三年全景(15min) | AI深度问答 | +| 2 | 整风运动文献展区(20min) | 查看22篇原始文献 | +| 3 | 情境任务"如何开展整风?"(25min) | 角色:政治指导员,团队制定整风方案 | +| 4 | 窑洞生活VR体验(10min) | 沉浸体验整风学习场景 | +| 5 | 群众路线展区(20min) | AI问答2次 | +| 6 | 情境任务"如何处理群众矛盾?"(25min) | 团队决策 | +| 7 | 廉政教育展区(20min) | 查看案例 | +| 8 | 行动选择(15min) | 选择行动方向 | + +**行动选择**: +- 老张选择团队行动"在单位组织实事求是专题学习会" +- 步骤:第1周收集案例 → 第2-3周组织讨论会 → 第4周形成改进方案 +- 证据要求:会议记录 + 改进方案文档 + +**离馆后回访**: +- 第7天:反馈"已收集3个形式主义案例" +- 第30天:提交会议记录+改进方案+同事反馈 +- 系统评估:行动完成 ✓ → 优秀案例纳入教研案例库 + +### 4.5 F5"永不闭馆"云上学习共同体 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F5 云上学习共同体 │ +├────────────────┬────────────────┬────────────────────┤ +│ Web3D云展馆 │ 云端课程平台 │ 协作任务平台 │ +├────────────────┼────────────────┼────────────────────┤ +│ 3D渲染引擎 │ 视频点播/直播 │ 实时音视频协作 │ +│ 虚拟漫游 │ 课程管理 │ 多人同堂任务 │ +│ AI导览 │ 学时记录 │ 粤港澳三地同步 │ +│ 文物3D展示 │ 证书发放 │ 在线研讨室 │ +├────────────────┼────────────────┼────────────────────┤ +│ 8分钟精华模式 │ 一节课模式 │ 协作任务模式 │ +│ (轻量H5) │ (视频+互动) │ (实时协作+白板) │ +├────────────────┼────────────────┼────────────────────┤ +│ 深度研究模式 │ 同步在场模式 │ +│ (文献检索+图谱) │ (直播+弹幕+连麦) │ +└────────────────┴────────────────┴────────────────────┘ +``` + +**技术亮点**: + +- **三档渲染自适应**:高端模式(WebGPU+PBR实时光照)、轻量模式(WebGL+减面模型+烘焙光照)、极简模式(全景图片热点导航)——**根据设备性能自动选择,从旗舰手机到老旧电脑都能流畅访问**; +- **渐进式加载**:先加载低精度模型让用户立即看到内容,后台静默替换高精度模型——**用户感知不到加载等待**; +- **港澳CDN加速**:静态资源通过港澳CDN节点分发,**港澳用户访问速度与内地一致**; +- **实时协作技术**:基于WebRTC的音视频连线 + 协同白板(CRDT算法支持多人同时编辑不冲突)——**粤港澳三地学生可以像在同一个教室一样协作**。 + +#### 场景示例:澳门中学生小李的线上学习旅程 + +**第一次访问(8分钟精华模式)**: +- 浏览器访问云展馆H5 → 选择繁体中文 → 8分钟精华 +- 全景图片热点导航:延安全景视频 → 纺车3D展示 → 东江纵队故事 → AI问答 +- AI回答:"延安精神核心是自力更生和艰苦奋斗。澳门回归前,澳门同胞也展现了这种精神..." +- 注册线上成长护照 + +**第二次访问(一节课模式,3天后)**: +- 选择课程"自力更生的力量"(45分钟) +- 视频:南泥湾历史(15min) → 互动:虚拟纺车(5min) → 视频:澳门回归建设(10min) → 思考题 → 测验 +- 学时记录到护照 + +**第三次访问(协作任务模式,2周后)**: +- 学校组织粤港澳三地跨校任务"三地青年共讲一个延安精神故事" +- 小李分入混合小组(广州1人+香港1人+澳门2人) +- 实时音视频连线讨论 → 协同白板绘制大纲 → 分工录制 → 在线编辑器合成 +- 提交4分钟短视频 → AI编审检查通过 → 人工审核通过 → 发布到线上专区 + +### 4.6 F6"湾区青年共创计划" + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F6 湾区青年共创平台 │ +├────────────────┬────────────────┬────────────────────┤ +│ 共创项目管理 │ AI辅助创作工具集 │ 三级审核与展示 │ +├────────────────┼────────────────┼────────────────────┤ +│ - 年度主题发布 │ - AI辅助写作 │ - AI编审自动检查 │ +│ - 混合小组组建 │ - AI辅助绘画 │ - 编辑复审(人工) │ +│ - 专家工作坊预约 │ - 短视频编辑 │ - 专家终审 │ +│ - 进度跟踪 │ - 声音档案录制 │ - 线上专区展示 │ +│ - 资源库访问 │ - 互动网页制作 │ - 优秀作品入临展 │ +└────────────────┴────────────────┴────────────────────┘ +``` + +**技术亮点**: + +- **AI辅助创作全程标注**:所有AI生成的初稿强制标注"AI辅助",人工修改后提交——**AI是工具不是作者,人的创造力是核心**; +- **AI编审自动化**:提交作品自动经过史实校验(与知识图谱比对)、来源完整性检查、版权合规检查、政治合规检查——**四项自动检查+两级人工审核,确保共创内容可信**; +- **创作资源包开放**:50件文物3D模型、100条史料文献已授权可供创作者使用——**降低创作门槛,让青年聚焦创意而非找素材**。 + +#### 场景示例:2026年秋季共创项目 + +**混合小组**:深圳大学小王(策划+文案)/ 香港中文大学小陈(视频)/ 澳门大学小李(研究)/ 中山大学小刘(交互设计) + +**创作过程(30天)**: +- 第1周:小李用策展助手API检索史料 → 确定主题"从南泥湾到蛇口——自力更生的两个故事" +- 第2周:小王用AI辅助写作写脚本(标注AI辅助)→ 小陈在蛇口拍摄 → 小刘设计交互网页 +- 第3周:整合制作(视频剪辑+交互网页+史料注释) +- 第4周:AI编审检查(史实✓来源✓版权✓政治✓)→ 编辑复审 → 专家终审 + +**成果展示**:线上专区发布 → 入选线下"湾区青年红色文创展" → 小王在开幕式做5分钟公开讲述(直播) + +### 4.7 F7"把精神带回去"现实行动实验室 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F7 现实行动实验室 │ +├────────────────┬────────────────┬────────────────────┤ +│ 行动选择终端 │ 行动跟踪系统 │ 成果回流系统 │ +├────────────────┼────────────────┼────────────────────┤ +│ - 行动方向展示 │ - 行动卡片生成 │ - 成果提交入口 │ +│ - 智能推荐 │ - 7/30/90天跟踪 │ - 成果墙展示 │ +│ - 行动模板选择 │ - 进展提醒推送 │ - 课程案例转化 │ +│ - 自定义行动 │ - 反馈表单 │ - 年度优秀评选 │ +│ - 团队行动创建 │ │ │ +└────────────────┴────────────────┴────────────────────┘ +``` + +**技术亮点**: + +- **基于参观记录的智能推荐**:系统分析用户在各展区的停留时间、AI问答内容、互动选择,**推荐最契合用户兴趣的行动方向**——在东江纵队展区停留最久的人,最可能成为"红色故事传播者"; +- **7/30/90天定时回访**:定时任务引擎在三个时间节点自动推送提醒,收集进展反馈——**把"一次性参观"变成"持续性行动"**; +- **成果回流闭环**:优秀行动成果可转化为教研案例库、课程素材、临展内容——**用户的行动不是"做完就完",而是成为系统内容资产的一部分**。 + +#### 三类行动方向 + +| 类型 | 名称 | 时长 | 适合谁 | 内容 | +|------|------|------|-------|------| +| 个人 | 实事求是调查员 | 7天 | 学生/干部 | 找一个"不实事求是"的例子,记录并提改进建议 | +| 团队 | 南泥湾式创新项目 | 30天 | 企业/机关/社团 | 用有限资源(零预算)解决一个实际问题 | +| 湾区 | 红色故事传播者 | 90天 | 港澳青年/志愿者 | 采访3位长辈记录红色故事,制作传播作品 | + +### 4.8 F8"星火节点"全国复制网络 + +#### 技术架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ F8 星火节点网络 │ +├──────────────────────────────────────────────────────┤ +│ │ +│ L4 旗舰中心 (13000㎡) │ +│ ├── 完整私有云 + GPU推理集群 │ +│ ├── 完整知识图谱 + 向量库 + 内容仓 │ +│ ├── 全国节点调度中心 │ +│ └── 权威内容生产与发布 │ +│ │ +│ L3 城市节点 (院校/区县基地) │ +│ ├── 本地服务器 + 完整展陈系统 │ +│ ├── 本地知识图谱子集 + 向量库子集 │ +│ ├── 独立运营 + 数据上报 │ +│ └── 云端连线能力 │ +│ │ +│ L2 标准节点 (高校/企事业单位) │ +│ ├── 触屏终端 + 边缘AI推理 + VR设备 │ +│ ├── 本地内容缓存 + 云端AI增强 │ +│ ├── 成长护照接入 │ +│ └── 7天标准化部署 │ +│ │ +│ L1 微节点 (一体机) │ +│ ├── 一块触屏交互一体机 │ +│ ├── 离线内容包 + AI问答轻量版 │ +│ └── 定期WiFi/4G同步更新 │ +│ │ +└──────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **四级节点梯度**:从一台一体机到13000㎡旗舰中心,**任何规模的组织都能找到适合的部署级别**; +- **组件包标准化分发**:旗舰中心把内容打包成版本化组件包,各节点拉取即用——**像App更新一样简单**; +- **边缘AI推理**:L2节点配备边缘计算盒子,本地运行轻量AI模型,复杂问题转发旗舰中心——**本地快速响应+云端深度增强**; +- **VR云端串流**:L2/L3节点无需高性能渲染主机,通过云端VR串流技术,用轻量VR头显即可体验——**降低全国部署的硬件门槛**。 + +#### 场景示例:L2标准节点部署到某高校 + +**7天部署流程**: + +| 阶段 | 工作内容 | +|------|---------| +| Day 1-2 硬件安装 | 触屏一体机×2、边缘计算盒子、VR头显×2、网络配置 | +| Day 3-4 软件部署 | 拉取标准组件包(知识图谱子集+500条史料+10门课程+2个任务+1个VR场景)、AI本地部署 | +| Day 5 系统联调 | 触屏测试、VR串流测试、云端连线测试、护照同步测试 | +| Day 6 内容适配 | 接入本校红色校史、设置本校推荐路线、配置运营信息 | +| Day 7 上线运营 | 学生刷卡进入 → 体验 → 数据上报旗舰中心 | + +--- + +## 五、VR/XR沉浸体验技术架构 + +### 5.1 VR/XR整体架构 + +VR/XR沉浸体验是线下场馆"不可替代性"的核心——线上永远无法复制的身体在场感。它不是独立展项,而是嵌入F1自适应叙事空间和F2情境任务剧场的沉浸交互层。 + +``` +┌──────────────────────────────────────────────────────────────┐ +│ VR/XR 沉浸体验系统 │ +├──────────────┬──────────────┬──────────────────────────────┤ +│ 内容生产层 │ 运行时引擎 │ 设备与体感层 │ +├──────────────┼──────────────┼──────────────────────────────┤ +│ Unity场景工程 │ 场景管理器 │ VR头显(Pico 4 Enterprise) │ +│ 3D资产管线 │ 多人同步引擎 │ MR设备(Meta Quest 3) │ +│ 交互逻辑脚本 │ 编排对接层 │ 体感座椅(6DOF动态平台) │ +│ AI NPC驱动 │ 安全监控守护 │ 手部追踪(Leap Motion) │ +│ 场景烘焙渲染 │ 性能监控 │ 触觉反馈背心 │ +│ │ │ 定位基站 │ +│ │ │ 环绕音响(5.1/7.1) │ +│ │ │ 风效/热效/气味发生器 │ +└──────────────┴──────────────┴──────────────────────────────┘ +``` + +**技术亮点**: + +- **Unity + XR Interaction Toolkit**:主流XR开发平台,支持Pico/Meta Quest等多款头显,**一次开发多设备运行**; +- **6DOF动态座椅**:六自由度运动平台,可模拟前倾、后仰、上升、下降、左右摇晃、加速感——**身体感受到的"在场"是屏幕永远无法替代的**; +- **全身触觉反馈**:触觉背心覆盖肩部、手臂、腰部、背部,可编程不同振动模式——**开荒时肩臂振动、纺车时腰部节律振动、丰收时全身轻柔振动**; +- **环境效果联动**:风效(微风/强风/气浪)、热效(微热/温暖气流)、气味发生器(尘味/泥土味)——**五感同步沉浸**。 + +### 5.2 五大VR历史场景 + +| 场景 | 历史时期 | 核心体验 | 交互重点 | 体感效果 | +|------|---------|---------|---------|---------| +| 南泥湾大生产 | 1941-1943 | 开荒、纺纱、生产竞赛 | 抓取农具、操作纺车、种植作物 | 座椅前倾+背心振动+微风+温暖气流 | +| 敌后根据地 | 1938-1945 | 游击战术、群众工作 | 地图标注、群众动员、物资调配 | 爆炸气浪+蹲伏下降+冲击振动 | +| 延安窑洞生活 | 1938-1947 | 日常起居、整风学习 | 翻阅文献、参与讨论 | 煤油灯微热+手部微振动 | +| 东江纵队游击战场 | 1943-1945 | 华南抗日、营救文化名人 | 穿越封锁线、传递情报 | 左右摇晃+全身紧张振动+夜间冷风 | +| 改革开放蛇口 | 1979-1984 | 蛇口工业区、敢为人先 | 工程决策、制度创新 | 爆破气浪+尘味+冲击振动 | + +### 5.3 多人协同VR架构 + +``` +┌──────────────────────────────────────────────────────────────┐ +│ 多人协同VR架构 │ +├──────────────────────────────────────────────────────────────┤ +│ │ +│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ +│ │ VR座位1 │ │ VR座位2 │ │ VR座位3 │ │ VR座位4 │ │ +│ │ (队长) │ │ (队员) │ │ (队员) │ │ (队员) │ │ +│ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ │ +│ └───────────┴───────────┴───────────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ 状态同步服务器 │ │ +│ │ (Photon Fusion)│ │ +│ └───────┬───────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ 房间管理服务 │ │ +│ └───────┬───────┘ │ +│ │ │ +│ ┌───────┴───────┐ │ +│ │ X1编排引擎 │ │ +│ │ (任务推送) │ │ +│ └───────────────┘ │ +└──────────────────────────────────────────────────────────────┘ +``` + +**技术亮点**: + +- **Photon Fusion状态同步**:4人同场景实时同步,头像位置、手部姿态、任务进度全部同步——**你在VR里能看到队友的虚拟化身和手势**; +- **角色与F2任务对应**:VR中的角色分配来自F2任务剧本,4人分别扮演不同角色,各有专属资源和约束——**不是"各玩各的",而是真正的团队协作**; +- **VR内AI NPC**:场景中的非玩家角色由AI可信知识引擎驱动,可以回答用户问题、提供历史背景——**VR里的"老乡"不是预设台词的机器人,而是能对话的AI角色**。 + +### 5.4 VR与F2情境任务联动 + +VR不是独立体验,而是F2情境任务的沉浸执行层。同一任务剧本在VR和非VR两种模式下运行: + +``` +F2情境任务剧场 + ├── 非VR模式: 多屏互动终端 + AI复盘 + └── VR模式: 沉浸场景 + 体感设备 + 多人协同 + AI复盘 + +共享层: + - 同一任务定义 + - 同一证据集(从知识图谱检索) + - 同一历史事实揭示 + - 同一AI学习教练复盘 + - 同一成长护照记录 +``` + +### 5.5 VR体验流程 + +``` +排队区(3分钟) +├── 观看历史背景视频 +├── 查看分配到的角色和资源约束 +├── 学习VR手柄操作和交互方式 +├── 了解安全须知和紧急退出方法 +└── 查看排队位置和预计等待时间 + ↓ +进入VR工位 +├── 佩戴VR头显 + 触觉背心 +├── 系统加载场景(按人群类型适配内容) +└── 4人同步进入同一历史场景 + ↓ +沉浸体验(8-15分钟) +├── 在虚拟场景中执行任务 +├── 抓取文物、查看证据 +├── 与AI NPC对话(可提问,NPC用史料回答) +├── 4人语音讨论+手势交互 +├── 体感设备同步场景事件 +└── 团队做出决策 + ↓ +退出VR +├── AI复盘(学习教练分析方案vs历史) +├── 现实连接问题 +├── 学习记录写入成长护照 +└── 设备复位+消毒(3分钟) +``` + +### 5.6 云端VR串流 + +为降低全国星火节点的硬件门槛,L2/L3节点可采用云端VR串流方案: + +``` +L2/L3节点 (轻量硬件) 旗舰中心/区域云端 (GPU集群) +┌──────────────────┐ ┌──────────────────────┐ +│ VR头显 │ ←── 视频流 ──→ │ 云端渲染服务器 │ +│ ↓ WiFi/5G │ ←── 音频流 ──→ │ Unity应用实例 │ +│ ↓ 解码显示 │ ── 输入流 ──→ │ 串流编码H.265 │ +│ ↓ 手柄/头显数据 │ │ 超低延迟传输 │ +└──────────────────┘ └──────────────────────┘ +``` + +| 方案 | 延迟 | 适用场景 | +|------|------|---------| +| CloudXR (NVIDIA) | 15-30ms | L3城市节点 | +| ALVR (开源) | 20-40ms | L2标准节点 | +| 本地渲染 | <10ms | L4旗舰中心 | +| WebXR | 30-80ms | F5云展馆轻量模式 | + +### 5.7 VR安全与舒适保障 + +| 保障措施 | 说明 | +|---------|------| +| 舒适度分级 | 每个场景标注舒适/适中/激烈,用户可选择 | +| 晕动症缓解 | 默认瞬移移动,平滑移动可选 | +| 时长控制 | 单次不超过15分钟,两次之间至少间隔30分钟 | +| 年龄限制 | 12岁以下不建议使用 | +| 安全区域 | 定位基站划定安全边界,越界自动暂停 | +| 紧急停止 | 手柄一键退出,工作人员可远程紧急停止 | +| 卫生消毒 | 一次性面罩+UV消毒柜,场次间隔3分钟消毒 | +| 帧率保障 | 稳定72fps(VR舒适标准),自动LOD降级保帧率 | + +### 5.8 VR场次调度 + +- 单场容量:4人 +- 单场时长:8-15分钟(按人群适配) +- 场次间隔:3分钟(设备复位+消毒) +- 日接待量:单场景约120-160人/天 +- 排队策略:相同路线优先同场、相同人群类型优先同场 +- 客流高峰:自动开启备用VR工位 + +--- + +## 六、公共平台技术架构 + +### 6.1 X1全场景体验编排引擎 + +**核心能力**:实时感知用户位置和客流,编排全馆设备联动——走到哪里,内容就跟到哪里。 + +``` +事件源 处理引擎 输出目标 +───────── ───────── ───────── +UWB位置流(10Hz) ─┐ +客流计数(实时) ─┤→ 实时流式计算 → 编排决策 → 设备控制指令 +设备状态(实时) ─┤ (复杂事件处理) (规则+AI) (实时消息推送) +用户路线(API) ─┤ +任务状态(API) ─┘ +``` + +**技术亮点**: + +- **复杂事件处理(CEP)**:不是简单的"如果...则...",而是在毫秒级时间内处理"用户进入区域+客流低于阈值+路线匹配+设备空闲"等复合条件——**像自动驾驶一样实时感知和决策**; +- **五类事件源实时融合**:UWB位置、客流计数、设备状态、用户路线、任务状态——五路数据流实时汇入编排引擎,**系统对全馆状态有"上帝视角"**。 + +| 用户行为 | 系统自动响应 | +|---------|------------| +| 走入某展区 | 屏幕切换对应内容、灯光切换氛围、音频切换导览 | +| 区域拥挤 | 推荐备选节点,避免排队 | +| 完成任务 | 自动记录到成长护照,推送下一节点 | +| AI终端提问 | 加载当前展区上下文,回答更精准 | +| VR场次到达 | 推送任务剧本到VR场景 | + +### 6.2 X2成长护照与行动档案 + +**核心能力**:所有学习记录统一归档,跨系统同步,用户随时可查。 + +``` +票务系统 ──┐ +教研系统 ──┤ +港澳专项 ──┤→ X2成长护照统一API → 统一学习档案 +数据中台 ──┤ (GraphQL查询) (全生命周期) +线下终端 ──┘ +``` + +**技术亮点**: + +- **GraphQL统一查询**:不同系统用不同技术栈,但用户通过一个API就能查询完整的成长档案——**对前端来说,所有数据来自一个"虚拟数据库"**; +- **全生命周期记录**:从第一次预约到第90天行动成果,从线下参观到线上课程,**一个人的完整学习旅程在一本护照里一目了然**。 + +### 6.3 X3权威内容治理中心 + +**核心能力**:所有内容经过三级审核才发布,版本化管理,可回滚。 + +``` +内容创建/修改 + ↓ +AI编审助手自动检查 + - 事实校验: 与知识图谱交叉验证 + - 来源检查: 是否标注史料来源 + - 合规检查: 政治安全规则引擎 + - 版权检查: 素材授权验证 + ↓ +自动检查通过 → 编辑复审 (人工) +自动检查未通过 → 退回修改 + ↓ +编辑复审通过 → 专家终审 (关键内容) + ↓ +版本发布 (带版本号,可回滚) + ↓ +同步到: 展陈系统 / 云展馆 / 课程平台 / 全国节点 + ↓ +使用反馈收集 → 定期巡检 → 需要时触发修订 +``` + +**技术亮点**: + +- **AI初审自动化**:史实校验、来源检查、合规检查、版权检查四项自动完成——**AI把审核效率提升10倍,人工只做最关键的终审**; +- **版本化快照**:每次发布生成完整内容快照,支持回滚到任意历史版本——**内容出错可以一键回退,不会"覆水难收"**。 + +--- + +## 七、安全与隐私保护 + +### 7.1 网络安全架构 + +``` +┌──────────────────────────────────────────────────────┐ +│ 互联网 │ +│ WAF (Web应用防火墙) │ +├──────────────────────────────────────────────────────┤ +│ DMZ区 │ +│ 负载均衡 + API网关 │ +├──────────────────────────────────────────────────────┤ +│ 应用区 (容器集群) │ +│ 微服务集群 (服务网格 + 自动扩缩容) │ +├──────────────────────────────────────────────────────┤ +│ 数据区 (隔离) │ +│ 业务数据库 │ 知识图谱 │ 向量库 │ 内容仓 │ +│ GPU推理集群 │ +├──────────────────────────────────────────────────────┤ +│ 设备区 (VLAN隔离) │ +│ IoT/安防/VR/灯光音频 (独立VLAN) │ +└──────────────────────────────────────────────────────┘ +``` + +### 7.2 AI安全三层护栏 + +``` +用户输入 + ↓ +┌─────────────────┐ +│ 第一层: 输入过滤 │ 拦截不当提问 +└────────┬────────┘ + ↓ +┌─────────────────┐ +│ 第二层: 事实校验 │ AI回答与知识图谱比对,发现事实错误则拦截 +└────────┬────────┘ + ↓ +┌─────────────────┐ +│ 第三层: 输出过滤 │ 拦截不当表述 +└────────┬────────┘ + ↓ +安全回答 + 史料来源 + 审计日志 +``` + +- AI不会臆造历史,只在已审核史料范围内回答 +- NPC禁止模拟革命领袖发表新言论,仅复述已审核史料 +- 全部对话可审计追溯,支持质量回查 + +### 7.3 数据隐私保护 + +| 数据类型 | 保护措施 | +|---------|---------| +| 用户身份信息 | 最小化采集,不采集与学习无关的信息 | +| 未成年人数据 | 监护人授权 + 最小化采集 + 不公开显示 | +| 港澳用户数据 | 自愿参与 + 匿名聚合 + 不做个人认同标签 | +| 人脸/情绪数据 | **不采集、不推断** | +| AI交互日志 | 脱敏存储 + 仅用于质量优化 + 定期清理 | +| 位置数据 | 仅用于体验编排,不留存个人轨迹 | + +--- + +## 八、最小可行原型 + +### 8.1 原型范围 + +``` +最小原型 = 1件文物3D展示 + 1个情境任务 + 1个AI问答入口 + + 1个成长护照H5 + 1个行动选择页 + 1个30天回访推送 +``` + +### 8.2 用户体验流程 + +``` +用户在触屏终端开始 + → 查看一件文物3D模型(可旋转缩放) + → 参与一个情境任务(阅读证据→团队讨论→提交方案→历史揭示→AI复盘) + → 向AI提问(获得带史料引用的回答) + → 打开手机H5查看成长护照 + → 选择一个行动方向 + → 30天后收到微信推送 → 提交行动反馈 +``` + +### 8.3 原型部署方案 + +``` +单服务器部署 (原型阶段): + - 1台 GPU服务器 → AI推理 + 向量检索 + - 1台 应用服务器 → 业务服务 + 缓存 + - 1台 前端服务器 → 3D展示 + 小程序后端 + - 1台 互动终端 → 情境任务 + AI问答界面 +``` + +### 8.4 原型验证目标 + +| 验证维度 | 达标标准 | +|---------|---------| +| AI回答有史料来源 | ≥90% | +| AI不当内容拦截 | 100% | +| 任务完成率 | ≥70% | +| 用户选择行动 | ≥50% | +| 30天回访反馈率 | ≥20% | +| 用户理解表达质量(专家评分) | ≥3.5/5 | + +--- + +## 九、技术风险与应对 + +| 风险 | 用户影响 | 应对措施 | +|------|---------|---------| +| AI回答慢 | 等待体验差 | 流式输出(边生成边显示)+ 轻量模型快速兜底 | +| 知识图谱内容不足 | 部分问题无法回答 | 先建延安十三年核心内容,逐步扩展 | +| 定位不精准 | 设备联动误触发 | 优化部署密度 + 区域判定容错算法 | +| 港澳网络不稳定 | 云展馆卡顿 | 港澳CDN节点 + 轻量模式自动降级 | +| VR设备故障 | 体验中断 | 冗余设备 + 远程诊断 + H5备选方案 | +| 内容审核慢 | 新内容上线延迟 | AI初审自动化 + 并行审核流程 | +| 并发高峰 | 系统卡顿 | 弹性扩缩容 + 限流降级 + 离线兜底 | +| 节点运维参差 | 各节点体验不一 | 标准化部署脚本 + 远程监控 + 自动健康检查 | + +--- + +## 十、技术团队与外部协作 + +### 10.1 核心团队 + +| 角色 | 人数 | 职责 | +|------|------|------| +| AI工程师 | 3-4 | 大模型微调、RAG、安全护栏、知识图谱 | +| 后端工程师 | 4-5 | 微服务、API、消息队列 | +| 前端工程师 | 3-4 | Web/小程序/互动终端 | +| 3D/XR工程师 | 2-3 | 3D建模、Unity VR开发、数字人 | +| 数据工程师 | 2 | 数据管道、实时计算、指标计算 | +| DevOps | 2 | 容器编排、CI/CD、监控、安全 | +| 内容工程师 | 2 | 内容组件化、审核工作流、版本管理 | +| UI/UX设计师 | 2 | 交互设计、视觉设计、体验测试 | + +### 10.2 外部协作 + +| 协作方 | 职责 | +|--------|--------| +| 党史专家组 | 史料审核、知识图谱校验、任务剧本审定 | +| 教育研究组 | 课程设计、学习效果评估方法 | +| 延安精神研究会 | 权威内容授权和编审 | +| 3D扫描团队 | 文物数字化采集 | +| 硬件集成商 | VR/灯光/音频/IoT设备安装调试 | + +--- + +## 十一、总结 + +本技术方案将创新升级方案中的"一核、双域、三引擎、四闭环、八旗舰"产品体系,转化为可落地的技术架构: + +- **AI层**:知识图谱 + RAG检索增强 + 大模型专属微调 + 三层安全护栏,确保可信、可溯源、不臆造; +- **数据层**:知识图谱、向量库、业务库、分析库各司其职,通过消息总线实时联动; +- **平台层**:X1体验编排(实时流式计算)+ X2成长护照(统一查询)+ X3内容治理(版本化审核),三大公共平台贯穿所有产品; +- **沉浸层**:Unity VR/XR + 6DOF体感设备 + 多人协同 + 云端串流,五大历史场景沉浸体验嵌入F1/F2产品; +- **应用层**:八个旗舰产品各自独立又共享平台能力,通过API和事件总线松耦合; +- **基础设施**:私有云容器编排 + GPU推理集群 + 5G/IoT设备网络 + CDN全球加速; +- **安全合规**:三层AI安全护栏 + 数据最小化原则 + 全过程审计追溯。 + +从用户视角看,技术方案支撑的核心体验闭环是: + +``` +提问 → 体验 → 理解 → 行动 → 反馈 → 再传播 +``` + +- **提问**:参观前选择学习问题,AI全程可问答 +- **体验**:自适应路线 + 沉浸VR + 情境任务 + 文物星图 +- **理解**:AI复盘 + 理解表达 + 离馆报告 +- **行动**:行动选择 + 7/30/90天跟踪 +- **反馈**:进展提交 + 成果回流 + 优秀案例入库 +- **再传播**:青年共创 + 云展馆 + 全国节点复制 + +建议从"一件文物到一次现实行动"最小原型开始,用7周时间验证完整链路,再逐步扩展为全量系统。 diff --git a/终极目标导向创新升级方案.md b/终极目标导向创新升级方案.md new file mode 100644 index 0000000..5340e90 --- /dev/null +++ b/终极目标导向创新升级方案.md @@ -0,0 +1,700 @@ +# 延安精神(大湾区)学习展示中心 — 终极目标导向创新升级方案 + +> 本方案建立在《智慧系统建设方案》的八大子系统之上,重点回答三个问题:为什么建、最终要改变什么、如何形成别人无法简单复制设备却能够复制方法的全国样板。 +> +> 编制日期:2026-07-12 + +--- + +## 一、先重新定义项目的终极目标 + +### 1.1 核心判断 + +本项目的终极目标不应停留在“建成一个采用AI、XR、8K技术的红色展馆”,而应定义为: + +> **建设一套以权威史料为根、以真实体验为桥、以现实行动为落点,能够让不同人群持续理解、主动实践、共同创造并广泛传播延安精神,且可向全国输出复制的数智化精神传承操作系统。** + +它最终要实现的不是“观众看过”,而是五个逐级递进的结果: + +1. **看得懂**:复杂理论能够被不同年龄、不同文化背景的人准确理解; +2. **愿意信**:所有表达有权威史料来源,AI回答可追溯、可核验; +3. **真正有感**:通过历史情境、文物实证和人物故事形成真实共情; +4. **能够去做**:把延安精神转化为现实学习、工作和社会实践行动; +5. **愿意再传播**:参观者从内容接收者变为讲述者、创作者和同行者。 + +### 1.2 项目价值公式 + +建议以以下公式统一后续空间、内容、系统和运营决策: + +> **项目长期价值 = 内容权威性 × 深度学习率 × 行动转化率 × 持续参与率 × 全国复制能力** + +这五项是乘法关系。任何一项接近零,项目都可能退化为一次性参观、设备展示或短期热点。 + +### 1.3 从“建馆思维”转向六个关键转变 + +| 传统建馆思维 | 终极目标导向思维 | +|-------------|-----------------| +| 建一个展览空间 | 建一套持续运行的精神传承系统 | +| 观众听讲、看展 | 观众提问、选择、协作、实践、创作 | +| 所有人看同一套内容 | 同一权威内容针对不同人群进行分层表达 | +| 参观结束即关系结束 | 形成参观前、参观中、参观后365天学习关系 | +| 以设备数量衡量先进性 | 以学习效果、行动转化和内容生命力衡量价值 | +| 复制装修、硬件和展项 | 输出知识、课程、内容组件、技术接口和运营标准 | + +### 1.4 唯一北极星指标 + +建议将“参观人次”降为基础运营指标,将以下指标作为项目北极星指标: + +> **有效学习与行动转化人次** + +一个用户同时完成以下三项,才计为一次有效转化: + +1. 完成一条核心学习路径; +2. 通过一种非应试式理解验证,如史料判断、情境协作或作品表达; +3. 形成一个可执行的现实行动,并在参观后产生至少一次反馈。 + +该指标不对个人进行思想标签或信念评分,只评估课程设计、学习参与和公共教育效果。 + +--- + +## 二、创新总体架构 + +### 2.1 对外表达:“一个馆、一朵云、一个AI、一张网、一套标准” + +| 组成 | 定位 | 核心价值 | +|------|------|---------| +| **一个馆** | 13000㎡线下旗舰中心 | 提供不可替代的实物、空间、仪式、协作与沉浸体验 | +| **一朵云** | 数字原生的云上学习共同体 | 突破时间和地域限制,延续参观前后关系 | +| **一个AI** | 权威、可溯源的延安精神可信知识引擎 | 让每个人都能提问,并获得有史料依据的分层回答 | +| **一张网** | “旗舰中心+湾区节点+全国节点”协同网络 | 把单馆影响力扩展为跨校、跨城、跨区域传播能力 | +| **一套标准** | 内容、课程、体验、数据、运营和安全标准 | 实现低成本、高质量、可监管的全国复制 | + +### 2.2 内部架构:“一核、双域、三引擎、四闭环、八旗舰、N节点” + +#### 一核:权威内容内核 + +所有展览、课程、AI回答、数字人、互动剧本和用户创作,统一建立在经过专家编审的史料库、知识图谱和版本体系上。 + +#### 双域:线下实体域 + 线上数字域 + +- **线下实体域**:负责实物见证、空间情绪、团队协作、仪式体验和身体参与; +- **线上数字域**:负责预习、复习、持续学习、跨城协作、研究检索和内容共创; +- 两者不是简单镜像,而是任务和数据连续的一体化体验。 + +#### 三引擎 + +1. **可信叙事引擎**:把同一史料转化为面向不同人群的准确表达; +2. **学习成长引擎**:管理每个人从提问、体验到行动和再传播的成长路径; +3. **复制运营引擎**:把内容、课程、体验和运营方法打包输出到全国节点。 + +#### 四个持续闭环 + +``` +权威内容闭环:史料入库 → 专家审核 → 版本发布 → 使用反馈 → 定期巡检 +学习行动闭环:参观前提问 → 现场体验 → 形成行动 → 7/30/90天反馈 +内容生长闭环:青年共创 → 专家辅导 → 合规审核 → 展示传播 → 再次创作 +全国复制闭环:组件打包 → 节点部署 → 数据评估 → 版本升级 → 扩大复制 +``` + +#### 八个旗舰创新产品 + +1. “一馆千面”自适应叙事空间; +2. “十三年·十三问”历史情境任务剧场; +3. “一物一世界”革命文物数字生命工程; +4. “一人一程”延安精神成长护照; +5. “永不闭馆”云上学习共同体; +6. “湾区青年共创计划”; +7. “把精神带回去”现实行动实验室; +8. “星火节点”全国复制网络与数字展馆OS。 + +--- + +## 三、八个旗舰创新产品 + +### F1.“一馆千面”自适应叙事空间 + +#### 3.1.1 核心创意 + +不再让所有人走同一条路、听同一套讲解,而是在同一权威史料体系下,根据人群、时间、学习目标和现场客流,组合出不同叙事路径。 + +所谓“千面”不是AI临场改写历史,而是由AI在**已经专家审核的内容组件**中进行安全编排。 + +#### 3.1.2 五类基础叙事版本 + +| 人群 | 叙事重点 | 主要体验方式 | +|------|---------|-------------| +| 党政干部 | 理论源流、群众路线、实事求是、现实治理 | 史料研读、情境决策、案例研讨、行动复盘 | +| 小学阶段 | 人物故事、生活细节、情感启蒙 | 寻迹、角色任务、文物观察、手工表达 | +| 中学阶段 | 历史逻辑、因果关系、集体协作 | 线索推理、团队任务、时间轴重构 | +| 高校与专家 | 理论深度、史料证据、研究问题 | 原始文献、知识图谱、专题研讨、研究接口 | +| 港澳青年 | 共同历史、湾区联系、当代表达 | 繁简英多语、轻量任务、同伴共创、跨境协作 | + +#### 3.1.3 体验流程 + +1. 入馆前选择“我想回答的问题”和可用时长; +2. 系统只基于用户主动选择的信息生成路线,不进行敏感属性推断; +3. 场馆屏幕、灯光、声音、AI讲解和互动任务按路线联动; +4. 客流拥挤时,系统在保持教学目标不变的前提下动态切换同等内容节点; +5. 离馆后生成个人学习脉络,而不是简单的“打卡记录”。 + +#### 3.1.4 创新价值 + +- 解决“一套内容难以覆盖所有人群”的问题; +- 使模块化空间真正具备动态更新价值; +- 将智慧导览从“找路工具”升级为“叙事编排工具”; +- 同时服务分众教育与客流分流。 + +#### 3.1.5 最小可行版本 + +先建设4条经过审核的标准路线:党政干部、青少年、港澳青年、60分钟大众精华路线;暂不追求无限生成。 + +--- + +### F2.“十三年·十三问”历史情境任务剧场 + +#### 3.2.1 核心创意 + +以延安十三年为历史主轴,不把历史做成被动观看的影片,而是选择13个有代表性的真实历史问题,让参与者在史料约束和现实条件下完成团队任务。 + +参与者不能改写历史结果,而是通过证据理解当时为什么这样选择、这些选择体现了怎样的精神,并进一步思考今天如何践行。 + +#### 3.2.2 单个任务的标准结构 + +``` +真实问题出现 + ↓ +领取人物、资源与限制条件 + ↓ +查看文物、档案、地图和口述史证据 + ↓ +团队讨论并作出方案 + ↓ +系统呈现真实历史进程及方案差异 + ↓ +AI馆员引用史料进行追问和复盘 + ↓ +连接一个当代湾区现实问题 +``` + +#### 3.2.3 可选任务方向 + +- 在物资紧缺条件下,如何组织生产并保障基本需要; +- 在复杂环境中,如何开展调查研究并作出实事求是的判断; +- 如何用群众听得懂的方式传播理论和事实; +- 如何在有限资源下完成团队分工与协作; +- 延安精神如何在华南抗战、广东改革开放和湾区建设中形成现实回响。 + +具体题目、人物、史料和结论必须经过党史专家逐项审定。 + +#### 3.2.4 评价方式 + +不设置简单的“政治正确得分”,重点评价: + +- 是否主动寻找和使用证据; +- 是否理解历史约束条件; +- 是否有效协作; +- 是否能把历史精神转化为现实问题解决方法; +- 是否能清楚说明自己的判断依据。 + +#### 3.2.5 标志性成果 + +每个团队离场时获得一份“我们如何作出选择”的复盘报告,包含使用过的史料、团队方案、历史事实和现实行动建议。 + +#### 3.2.6 最小可行版本 + +优先打造1个20分钟高完成度任务,而不是一次建设13个质量参差的展项。样板通过专家审查和用户测试后,再按统一结构扩展。 + +--- + +### F3.“一物一世界”革命文物数字生命工程 + +#### 3.3.1 核心创意 + +每件重要文物不再只有一段展签,而是形成一个可持续生长的“证据世界”。观众可以从一件实物进入人物、事件、地点、文献和当代意义的关联网络。 + +#### 3.3.2 五层数字内容结构 + +| 层级 | 内容 | +|------|------| +| 第一层:看见 | 文物高清图像、3D模型、材质与细节 | +| 第二层:知道 | 名称、年代、来源、用途、保存状况 | +| 第三层:理解 | 关联人物、事件、地点、文献和历史背景 | +| 第四层:研究 | 原始档案、专家解读、争议说明、引用方式 | +| 第五层:连接 | 对应课程、情境任务、青年创作和当代实践 | + +#### 3.3.3 创新体验 + +- 手机或展厅终端扫描文物标识,打开“文物关系星图”; +- 通过时间轴查看文物在不同历史节点的故事; +- 在数字修复工作台观察“原始状态—修复过程—展示版本”; +- 对推测性复原和已有史实使用不同视觉标识,避免混淆; +- 生成“一物一课”“一物一短片”“一物一研究包”,供学校和全国节点调用。 + +#### 3.3.4 长期价值 + +文物数字化不再只是保存项目,而成为AI知识引擎、课程研发、云展馆、短视频传播和全国复制的共同内容资产。 + +--- + +### F4.“一人一程”延安精神成长护照 + +#### 3.4.1 核心创意 + +把一次参观变成一段有起点、有过程、有行动、有反馈的持续成长旅程。成长护照不是积分游戏,而是用户与项目建立长期关系的主线。 + +#### 3.4.2 四阶段旅程 + +##### 参观前:带着一个问题来 + +- 根据人群提供适龄导学材料; +- 用户选择一个最想理解的问题; +- 学校或单位可以创建团队学习目标; +- 系统生成参观建议,不采集与学习无关的信息。 + +##### 参观中:完成一条证据路径 + +- 记录看过的关键史料和文物; +- 完成一个协作任务; +- 向可信AI提出至少一个问题; +- 形成一段自己的理解表达。 + +##### 离馆时:带走一个行动 + +- 不是生成空泛感言,而是选择一个现实、可完成的微行动; +- 形成“给未来的一封信”或团队行动卡; +- 所有AI辅助文案明确标注为辅助生成,不模拟历史人物写信。 + +##### 离馆后:7/30/90天回访 + +- 第7天:回顾一份史料或课程; +- 第30天:反馈行动进展; +- 第90天:提交作品、实践记录或团队复盘; +- 推荐下一场线上课程、临展或共同创作活动。 + +#### 3.4.3 分众护照形态 + +- **青少年成长册**:以观察、协作、表达和实践为主; +- **党员学习档案**:以课程、研讨、行动和复盘为主; +- **港澳青年同行册**:以双语内容、共同创作和跨境交流为主; +- **研究者专题档案**:以史料检索、注释和研究成果为主。 + +#### 3.4.4 数据边界 + +- 不建立个人思想倾向标签; +- 不依据人脸、情绪或非主动信息推断用户态度; +- 未成年人采用最小化采集和监护人授权; +- 对外报告只使用匿名、汇总的教育效果数据。 + +--- + +### F5.“永不闭馆”云上学习共同体 + +#### 3.5.1 核心创意 + +云展馆不应只是把线下场馆1:1复制到网页中。纯粹复刻容易变成低频、低互动的虚拟空城。 + +建议建设“数字原生”云上学习共同体:把线上最擅长的检索、协作、直播、连续学习和跨地域连接做深,把线下不可替代的实物和空间体验留在线下。 + +#### 3.5.2 五种线上模式 + +| 模式 | 建议时长 | 适用场景 | +|------|---------|---------| +| 8分钟精华模式 | 8分钟 | 大众初次触达、社交传播入口 | +| 一节课模式 | 40—45分钟 | 学校课堂、主题党课、远程研学 | +| 协作任务模式 | 30—90分钟 | 粤港澳三地同堂、跨校团队任务 | +| 深度研究模式 | 自主 | 教师、专家、大学生查询文献与文物 | +| 同步在场模式 | 活动时段 | 云端演播、论坛、沙龙、纪念活动 | + +#### 3.5.3 关键功能 + +- 云上课程、文物关系图谱、情境任务和AI问答; +- 粤港澳三地“同上一堂课、同做一个任务”; +- 线上用户可为线下展览提出问题和贡献经过审核的作品; +- 线下参观记录自动衔接线上成长护照; +- 全国节点共享直播、课程和临展内容; +- 提供低配置设备可访问的轻量模式,避免只服务高端设备。 + +--- + +### F6.“湾区青年共创计划” + +#### 3.6.1 核心创意 + +对港澳青年和大湾区青年,不仅“向他们讲”,更邀请他们在权威史料和专业指导下成为共同策展人、共同创作者和同伴讲述者。 + +从单向教育转向“共同发现—共同研究—共同表达—共同传播”。 + +#### 3.6.2 年度共创机制 + +1. 每年发布一个湾区共同主题; +2. 组建广东、香港、澳门青年混合小组; +3. 提供文物、档案、口述史和专家工作坊; +4. 创作双语短片、声音档案、互动网页、数字艺术、AI辅助作品或微型展览; +5. 经史实、版权和政治合规审核后进入线上专区; +6. 优秀作品进入线下临展,并由青年本人进行公开讲述。 + +#### 3.6.3 可形成的品牌项目 + +- “湾区青年共同策一场展”; +- “一件文物的双语讲述”; +- “我在湾区理解延安精神”年度影像计划; +- AI+红色文化创作营; +- 非遗太极跨境共创营; +- 湾区青年云端编辑部。 + +#### 3.6.4 关键原则 + +- 创作自由建立在史实准确、来源清晰、版权合规基础上; +- AI作品必须标明使用方式并经过人工审核; +- 不把青年共创变成形式化征文,而要让作品真正进入展陈和传播渠道; +- 港澳青年效果评估采用自愿、匿名、聚合方式,不做个人认同标签。 + +--- + +### F7.“把精神带回去”现实行动实验室 + +#### 3.7.1 核心创意 + +延安精神的真正落点不在展厅内,而在参观者离开之后的工作、学习和社会生活中。因此,场馆最后一个空间不应只是文创商店,而应是“现实行动实验室”。 + +#### 3.7.2 四类行动方向 + +| 精神内涵 | 可转化行动 | +|---------|-----------| +| 实事求是 | 调查研究、事实核验、问题诊断、田野观察 | +| 为人民服务 | 社区服务、志愿行动、适老助残、公共服务改善 | +| 自力更生、艰苦奋斗 | 创新实践、资源再利用、团队攻坚、长期训练 | +| 坚定正确政治方向 | 理论学习、历史研究、责任意识与集体行动 | + +具体行动项目须由学校、单位、社区或项目运营方审核管理。 + +#### 3.7.3 三种行动产品 + +1. **个人微行动**:7—30天内可以完成的小任务; +2. **团队实践项目**:学校、党组织、企业团队共同完成的现实问题项目; +3. **湾区联合行动**:粤港澳青年围绕文化传承、社区服务或数字创作协同完成。 + +#### 3.7.4 成果回流 + +- 行动结果进入成长护照; +- 典型项目经审核后进入“行动成果墙”; +- 优秀实践转化为下一年度课程案例; +- 形成“展览启发行动、行动反哺展览”的内容生长机制。 + +--- + +### F8.“星火节点”全国复制网络与数字展馆OS + +#### 3.8.1 核心创意 + +项目真正的全国示范价值,不是让各地复制13000㎡建筑和整套昂贵设备,而是输出一套可按空间、预算和人群灵活组合的“数字展馆操作系统”。 + +#### 3.8.2 四级节点模式 + +| 级别 | 建议形态 | 主要能力 | +|------|---------|---------| +| L1 微节点 | 学校、社区、党群服务中心的小型空间 | 一块屏、一套课程、一个AI入口、若干移动展具 | +| L2 标准节点 | 院校、企事业单位、区县教育基地 | 标准主题展、协作课堂、云端连线、成长护照 | +| L3 城市节点 | 城市级红色教育或文化场馆 | 本地红色叙事接入、沉浸任务、师资培训、区域运营 | +| L4 旗舰中心 | 大湾区学习展示中心 | 权威内容生产、技术研发、全国调度、师资与标准输出 | + +#### 3.8.3 五类可复制组件包 + +1. **知识包**:权威史料、知识图谱、双语术语和引用规则; +2. **课程包**:党政、学校、港澳青年和大众课程模板; +3. **体验包**:情境任务、数字文物、互动脚本、灯光声音控制协议; +4. **运营包**:预约、客流、安全、讲解、师资、活动和评估SOP; +5. **技术包**:标准API、设备适配、数据字典、部署模板和安全规范。 + +#### 3.8.4 全国协同方式 + +- 总馆统一发布权威内容版本; +- 地方节点可在规范内增加本地红色叙事; +- 所有地方内容经过本地审核和总馆规则校验; +- 总馆可发起全国同课、同展、同任务和师资研修; +- 节点运营数据只按授权和必要范围汇总; +- 通过节点效果比较持续优化课程与产品,而不是简单比较客流排名。 + +--- + +## 四、可信AI不是一个展项,而是全馆公共能力 + +### 4.1 定位 + +AI不宜被设计成单一的“数字人讲解屏”,而应作为全馆的可信知识与叙事公共能力,服务展览、课程、导览、研究、共创、审核和运营。 + +### 4.2 四种AI角色 + +| AI角色 | 核心职责 | +|--------|---------| +| **可信馆员** | 回答问题、引用来源、说明不确定性、推荐相关文物与课程 | +| **学习教练** | 根据年龄和任务进行追问、提示和复盘,不直接代替用户思考 | +| **策展助手** | 帮助工作人员检索素材、组合已审内容、检查版本和引用 | +| **编审助手** | 发现事实冲突、缺失来源、表述风险,提交人工审核 | + +### 4.3 必须遵守的边界 + +- AI回答默认附权威来源; +- 找不到可靠依据时明确回答“不确定”或转交人工; +- 不让未经审核的生成内容直接上大屏或进入正式课程; +- 不模拟革命领袖或历史人物发表未有史料依据的新言论; +- 数字角色和合成内容均明确标识; +- 核心政治和史实内容坚持专家终审; +- 记录版本、来源、模型和审核过程,支持全过程追溯。 + +--- + +## 五、六类人群的完整体验旅程 + +### 5.1 体验设计原则 + +每类人群都应形成“来之前—在馆中—离馆时—回去后”四段式旅程,而不是只设计馆内动线。 + +| 人群 | 来之前 | 在馆中 | 离馆时 | 回去后 | +|------|-------|-------|-------|-------| +| 党政干部 | 导学、问题征集 | 史料研读、情境决策、专题研讨 | 形成岗位行动卡 | 30/90天实践复盘,沉淀组织案例 | +| 小学生 | 故事预告、观察任务 | 寻找文物线索、协作体验、手工表达 | 完成成长册 | 家校共同完成一个微行动 | +| 中学生 | 时间轴预习 | 证据推理、十三问任务、历史复盘 | 输出观点与依据 | 完成研究性学习或社会实践 | +| 高校学生 | 选题与资料预检 | 文献检索、专题研讨、数字创作 | 形成课题或作品方案 | 进入青年共创计划或研究项目 | +| 港澳青年 | 繁简英导学、行程协同 | 共同历史、湾区叙事、混合小组任务 | 双语作品或联合行动 | 跨境线上协作、年度回访活动 | +| 大众游客 | 兴趣和时长选择 | 精华路线、文物体验、AI问答 | 给未来的一封信 | 线上精华课、临展提醒、家庭活动 | + +### 5.2 建议打造的“完整样板链” + +一位访客的典型体验应完整串联: + +``` +提出一个问题 + → 领取成长护照 + → 进入适合自己的叙事路线 + → 看见一件真实文物 + → 完成一次历史情境协作 + → 向可信AI追问并查看史料 + → 形成自己的理解 + → 选择一个现实行动 + → 7/30/90天持续反馈 + → 以作品、实践或讲述再次回到平台 +``` + +这条链路比单个VR项目或数字人更能代表项目的独特价值。 + +--- + +## 六、对现有八大子系统的创新升级 + +现有八大子系统继续作为技术底座,但其建设重点应从“功能清单”进一步转向“价值闭环”。 + +| 原子系统 | 创新升级方向 | 主要支撑产品 | +|---------|-------------|-------------| +| S1 AI大模型与知识引擎 | 升级为可信叙事引擎,强化来源引用、不确定性说明、分层表达和全过程审计 | F1、F2、F3、F5 | +| S2 数字展陈与沉浸体验 | 从设备播控升级为全场景体验编排,统一灯光、声音、屏幕、AI、任务与空间节奏 | F1、F2 | +| S3 智慧场馆运营管理 | 从客流安全升级为“客流+教学节奏+体验连续性”协同调度 | F1、F4 | +| S4 教研培训管理 | 从课程排班升级为参观前、中、后完整学习旅程与行动项目管理 | F2、F4、F7 | +| S5 文物数字化管理 | 从文物建档升级为“一物一世界”的数字内容生产与研究服务 | F3、F5 | +| S6 港澳青年专项 | 从双语接待升级为青年共同策展、共同创作和跨境持续协作 | F5、F6、F7 | +| S7 内容与IP孵化 | 从素材管理升级为模块化内容工厂、审核流水线与多节点分发中心 | F1、F3、F6、F8 | +| S8 数据与决策支持 | 从经营看板升级为教育效果、行动转化、内容生命力和复制质量评估 | 全部旗舰产品 | + +### 6.1 建议新增S9:标准化复制与节点协同子系统 + +现有方案中“全国复制”主要是S7和S8的附属功能。鉴于它属于终极目标,建议提升为独立子系统。 + +#### S9核心模块 + +1. 内容与课程组件注册中心; +2. 全国节点档案与权限管理; +3. 版本发布、灰度升级与回滚; +4. 地方内容接入与审核协同; +5. 设备适配和标准接口管理; +6. 远程运维、培训和服务工单; +7. 节点效果评估与质量认证; +8. 解决方案授权和交付管理。 + +### 6.2 建议增加三项跨系统公共能力 + +#### X1 全场景体验编排引擎 + +跨S1、S2、S3、S4和S7,统一管理“什么人、在什么时间、进入什么空间、看到什么内容、完成什么任务、接下来去哪里”。 + +#### X2 成长护照与行动档案 + +跨S3、S4、S6和S8,保证线上线下、参观前后、个人与团队学习连续。 + +#### X3 权威内容治理中心 + +跨S1、S5和S7,统一负责史料来源、专家审核、内容版本、AI使用、版权和对外发布。 + +--- + +## 七、内容与技术的投资优先级 + +建议按以下顺序投入,而不是先采购设备再寻找内容: + +1. **权威内容与史料体系**; +2. **核心学习体验和情境任务原型**; +3. **课程、行动和持续运营机制**; +4. **AI、数据和内容公共平台**; +5. **与体验高度匹配的沉浸设备**; +6. **大规模复制和节点扩展**。 + +### 7.1 不建议优先投入的方向 + +- 大量同质化大屏、数字人和短期炫技设备; +- 先做完整1:1云端复制,却没有线上原生课程和协作机制; +- 让AI自由生成未经审核的历史讲解; +- 只做积分、徽章、排行榜的浅层游戏化; +- 用同一套内容覆盖所有年龄和所有群体; +- 只统计客流、上座率和设备使用率,不评估真实学习效果; +- 形成只能由单一设备厂商维护的封闭系统。 + +--- + +## 八、分阶段实施建议 + +### 8.1 第0阶段:终极目标验证与治理先行(第1—3月) + +#### 主要任务 + +- 成立党史内容、教育研究、青年共创、技术安全四类工作组; +- 完成权威史料范围、内容审核规则和AI边界; +- 访谈党政干部、不同学段师生、港澳青年、大众和专家; +- 定义北极星指标及数据最小化原则; +- 选定一个“十三问”任务、一件核心文物和一条成长旅程作为原型。 + +#### 阶段成果 + +- 内容治理手册V1; +- 用户分层与旅程蓝图; +- 可信AI回答样板; +- 20分钟情境任务可测试原型; +- 成长护照原型。 + +### 8.2 第1阶段:打造最小完整闭环(第4—8月) + +#### 主要任务 + +不是同时建设所有功能,而是先打通以下完整链路: + +``` +一条分众路线 ++ 一件数字文物 ++ 一个情境任务 ++ 一个可信AI入口 ++ 一张成长护照 ++ 一个离馆行动 ++ 一次30天回访 +``` + +#### 验证重点 + +- 用户是否真正理解,而不是只觉得“科技感强”; +- AI引用和回答是否可靠; +- 情境任务是否尊重史实且具有参与性; +- 用户是否愿意在离馆后继续行动; +- 老师、讲解员和运营人员是否能够稳定执行。 + +### 8.3 第2阶段:扩展为完整旗舰体验(第9—20月) + +- 扩展4类标准叙事路线; +- 逐步建设十三问任务矩阵; +- 完成重点文物“一物一世界”; +- 建设数字原生云上学习共同体; +- 上线湾区青年共创计划; +- 完成体验编排引擎与线下设备集成; +- 建立正式内容审核和版本发布流程。 + +### 8.4 第3阶段:试运营与教育效果验证(第21—26月) + +- 党政、学校、港澳青年、大众四类专场测试; +- 对比不同路线和任务的学习效果; +- 观察7/30/90天持续参与情况; +- 验证高峰客流下体验连续性; +- 根据真实数据删减低价值展项、加强高价值环节; +- 完成首版全国复制标准。 + +### 8.5 第4阶段:形成全国复制网络(第27—48月) + +- 选择学校、党群服务中心和城市场馆各类试点节点; +- 输出五类组件包; +- 上线S9节点协同系统; +- 建立节点质量认证、师资认证和版本升级机制; +- 以3—5个不同规模节点验证可复制性后再扩大推广。 + +--- + +## 九、建议首个重点原型 + +### 9.1 原型名称 + +> **“从一件文物到一次现实行动”完整体验原型** + +### 9.2 体验组成 + +1. 用户入场前提出一个问题; +2. 通过一件真实文物进入历史情境; +3. 团队完成一个15—20分钟证据驱动任务; +4. 可信AI引用史料进行追问和复盘; +5. 用户用自己的话形成理解; +6. 选择一个7—30天现实行动; +7. 通过成长护照完成后续反馈; +8. 行动结果经授权后回流为新的展览案例。 + +### 9.3 为什么优先做它 + +该原型一次验证七项最关键能力: + +- 权威史料; +- 文物数字化; +- 沉浸体验; +- AI可信问答; +- 教育设计; +- 行动转化; +- 线上线下持续运营。 + +相比先做大量独立展项,它更能提前发现项目是否真正接近终极目标。 + +--- + +## 十、评价体系 + +### 10.1 五类核心指标 + +| 维度 | 指标建议 | +|------|---------| +| 权威可信 | 核心内容专家审核率、AI回答来源覆盖率、内容纠错闭环时长 | +| 深度学习 | 核心路径完成率、证据使用率、理解表达质量、课程目标达成度 | +| 行动转化 | 行动选择率、30/90天反馈率、团队实践项目完成率 | +| 持续参与 | 线上回访率、复访率、共创参与率、作品进入正式展示比例 | +| 全国复制 | 组件复用率、节点部署周期、地方内容接入效率、节点质量达标率 | + +### 10.2 必须坚持的底线指标 + +- 正式核心内容专家审核覆盖率:100%; +- 正式AI回答具备来源或不确定性说明; +- 未经审核的AI生成内容不得直接进入正式展陈; +- 所有数字合成角色和内容明确标识; +- 未成年人和港澳用户数据严格遵循最小必要原则; +- 教育效果评估不得转化为个人思想标签或公开排名。 + +具体业务目标值应在试运营形成基线后确定,避免脱离实际拍脑袋设数。 + +--- + +## 十一、最终形成的项目壁垒 + +当方案完整落地后,项目的竞争力不再是“拥有多少屏幕、多少VR设备”,而是形成六项难以被简单模仿的能力: + +1. **权威史料与知识图谱壁垒**; +2. **分龄、分众、分场景叙事能力**; +3. **历史体验到现实行动的教育闭环**; +4. **粤港澳青年持续共创机制**; +5. **线上线下一体化长期用户关系**; +6. **可快速部署的全国数字展馆OS与标准体系**。 + +最终,这里不只是一个“展示延安精神的场馆”,而应成为: + +> **延安精神在新时代被权威阐释、被青年理解、被社会实践、被共同创造并被全国持续传播的基础设施。** + +可以用一句更具传播性的项目主张概括: + +> **来这里,不只是了解一段历史;而是在今天完成一次选择、一次行动和一次共同创造。**