本篇目录 / Contents
- 人类投降派全片逐帧扫描数据库升级方案
- 结论
- 现有成果盘点
- 台词与逐句卷页
- LocalForensics 层
- 原始资产包
- 2037 对应资产包 2037-dont-care-final-line-to-postcredit-tail-chain/ 是一个成熟样板:同一证据包中同时有 exact 句窗、前后 gap、boundary、postcredit tail、帧图、contact sheet、音频概要 JSON、频谱/空间 JSON、颜色指标 JSON、100ms/20ms bin 指标等。
- MiMo 候选层
- 主要缺口
- 缺口一:台词编号体系没有完全并轨
- 缺口二:证据边界还没有结构化
- 缺口三:音频、画面和文章之间没有中间层
- 缺口四:公开网站和研究库还没有清晰的数据出口
- 建议数据库形态
- P0 已落地
- P0.5 站点接入
- 核心表设计
- 作品与时间结构
- 台词脊柱
- 证据来源
- 资产和指标
- 解释层与公开层
- 判断与边界
- 查询能力目标
- 研究者查询
- 观众网站查询
- 维护查询
- 构建管线
- 第 0 阶段:只读盘点
- 第 1 阶段:SQLite 骨架
- 第 2 阶段:T1 证据包解析
- 第 3 阶段:前端 API 与搜索重构
- 第 4 阶段:语义搜索
- 数据库与 Obsidian 的关系
- 第一批实施优先级
- P0
- P1
- P2
- 对网站升级的直接意义
- 证据边界
人类投降派全片逐帧扫描数据库升级方案
结论
刚完成的工作不只是“把电影逐帧扫完”。它实际上已经形成了一个四层证据系统:
T0台词脊柱:句号、时间码、角色、文本、分段卷页。T1本地取证层:LocalForensics 页、精确音频窗、帧图、联系表、颜色/亮度/音量指标、不可升级边界。T2候选理解层:MiMo 报告、候选声画观察、待人工复核的线索。T3解释与公开层:综合文章、概念页、人物库、观众网站短文和搜索页面。
现在的问题不是材料不足,而是材料太多、关系太散。大量关键信息分布在 Markdown frontmatter、正文表格、正文段落、文件名、资产目录名、JSON 指标文件和站点导出的 search-index.json 里。人能顺着经验找到,但机器无法稳定回答这些问题:
- 某一句台词有哪些 T1 证据页支持?
- 哪些音频窗证明它不是纯静默?
- 哪几帧构成这一分钟的视觉锚点?
- 哪些判断被明确降级为“不能证明”?
- 某个概念到底由哪些台词、帧、音频窗和文章共同支撑?
- 观众网站该展示哪些内容,研究者后台又该保留哪些内容?
所以升级的核心不是再多写一批长文,而是把已经完成的取证工作变成一个可重建、可查询、可导出、可接前端的数据库。
现有成果盘点
台词与逐句卷页
当前主入口是 人类投降派逐句对白声画解读总入口-2026-06-20(馆内参考,未随本文公开)。它记录的关键事实是:#1030-#2037 已完成标准细读闭合,T0 台词线最终到 #2037,#2037 为片尾前低位尾句。
逐句正文已经按卷页拆分为 41 个 Markdown 文件,主阅读路径不应再把正文塞回总入口。总入口负责目录、进度、证据规则和恢复说明;数据库应从这些卷页中提取每句的稳定命名、声画判断、证据页链接和不可升级边界。
当前导出站点的 search-index.json 已有一个可用但偏扁平的台词层:
| 类型 | 数量 |
|---|---|
| dialogue | 1995 |
| concepts | 470 |
| synthesis | 1274 |
| entities | 22 |
| parts | 6 |
| timecodeCards | 5 |
这个索引适合前端搜索,但不适合作为总数据库。它缺少 LocalForensics frontmatter、原始资产指标、证据包、帧级对象、音频窗对象和“不能证明”的结构化字段。
LocalForensics 层
wiki/sources/LocalForensics/ 当前约有 1439 个来源页,其中 source_kind: local-forensics-line-review 约 498 页,带 hs4g/dialogue/line- 标签的页面约 436 页。除此之外,还有分钟联系表、clip review、audio-visual review、exact-line review、4K micro review、p3/p6 window 等多种证据页。
这说明 LocalForensics 已经不是单一“来源摘要”。它已经承担了三种职责:
- 行级复核:锁定某句台词的 exact 音频、前后 gap、boundary、参照句和帧证据。
- 窗口复核:围绕一段时间建立联系表、画面连续性和动作/遮挡边界。
- 工程账本:记录批次、raw asset dir、指标文件、证据边界和回填状态。
数据库必须尊重这种多形态来源,而不是只抽 title/timecode/text。
原始资产包
4K no-sub restart 的核心资产包位于:
〔本地资料路径省略〕
该目录现有约 480 个一级资产包目录,三层内文件约 21094 个;主要类型为:
| 扩展名 | 数量 |
|---|---|
| jpg | 7719 |
| wav | 6779 |
| json | 6589 |
2037 对应资产包 2037-dont-care-final-line-to-postcredit-tail-chain/ 是一个成熟样板:同一证据包中同时有 exact 句窗、前后 gap、boundary、postcredit tail、帧图、contact sheet、音频概要 JSON、频谱/空间 JSON、颜色指标 JSON、100ms/20ms bin 指标等。
第一版数据库应该优先学习这种样板,而不是一次性理解所有历史资产目录命名。
MiMo 候选层
wiki/sources/MiMo/ 当前约 1970 个 Markdown 页,其中 mimo-report 约 1242 个,另有 run ledger、prompt、summary、video report card、synthesis card 等。
MiMo 层的价值在于候选发现和大范围扫视;风险在于它不能覆盖本地 T1。数据库设计上应把 MiMo 当作 candidate_observations,并显式记录它是否被 LocalForensics 确认、降级、拆分或废弃。
主要缺口
缺口一:台词编号体系没有完全并轨
前端 search-index.json 的 dialogue id 是 1 到 1995;逐句工程使用 #1 到 #2037;人物工程又有 J001、A501、Z193、R101 等角色内编号。这三个编号体系都合理,但现在缺少稳定映射表。
数据库需要把它们拆成不同字段:
canonical_line_no:逐句工程编号,如2037。site_dialogue_id:当前站点搜索 id,如1995。character_line_code:角色内编号,如J425、A737、Z489。source_sequence_id:来自 SRT 或其他转写源的原始序号。
没有这张映射表,未来任何“点击文章时间点让时间线亮起”的交互都会出现错位风险。
缺口二:证据边界还没有结构化
LocalForensics 页最珍贵的不是“证明了什么”,而是“明确不能证明什么”。例如 #2037 页明确限定:低位尾句接片尾尾部,不证明心理闭合、强宣言、角色主权恢复、音乐桥、设备声或系统 UI。
这些否定边界如果只留在正文里,前端、搜索和 AI 问答很容易把谨慎判断重新说过头。数据库应该把它们抽成一等对象:
supported_claims:可以稳定说的判断。unsupported_claims:明确不能说的判断。downgrade_reasons:为什么不能升级。risk_tags:consent、心理事实、医学事实、真实动作完成、设备声、配乐、现实身份等。
这是防止网站、文章和问答“穿帮”的底层机制。
缺口三:音频、画面和文章之间没有中间层
现在文章可以写到“#2037 exact RMS = -36.408dBFS”,但数据库不知道这个数来自哪个 JSON、哪个 wav、哪一个窗口、对应哪张帧图。前端也无法稳定做“点开台词 -> 看到对应声画证据 -> 再打开高清帧/音频窗”。
中间层应包括:
asset_packages:一个证据包目录。asset_files:包内所有 wav/jpg/json/png/log。audio_windows:exact、gap、boundary、post、ref 等音频窗。audio_bins:100ms、20ms、10ms 曲线。frames:start/mid/tail/ref/contact sheet 中的单帧。frame_metrics:亮度、颜色、色相、dominant color 等。contact_sheets:联系图和它覆盖的时间/句号范围。
缺口四:公开网站和研究库还没有清晰的数据出口
观众网站不应该原样展示研究库技术话语,也不应该把“入口/资料库/导览/教你看”等后台姿态带到页面上。数据库需要同时服务两种出口:
- 研究者出口:完整字段、证据边界、raw 资产、关系图谱、复核状态。
- 观众出口:精选短文、关键时间、台词、角色、画面锚点、少量概念解释。
这两个出口共用底层事实,但使用不同视图。不要让公开页面直接扫完整 synthesis 列表。
建议数据库形态
第一版建议使用 SQLite + FTS5。理由是:
- 单文件,适合本地 App、网站服务器和版本化导出。
- 可以用标准 SQL 表达台词、来源、资产、概念、文章之间的关系。
- FTS5 足够支撑中文分词前的基础全文检索;后续可再叠加
sqlite-vec或外部向量索引。 - 可以由 Markdown 和 raw assets 可重复构建,不把数据库变成新的唯一源头。
源头仍然是:
wiki/**/*.md
raw/assets/**/*
exports/sites/**/audience-content.json
exports/sites/**/search-index.json
数据库是派生物,构建脚本可以随时重跑。
P0 已落地
2026-07-05 已新增第一版构建脚本:
inspool-wiki-zh/scripts/build_hs4g_memory_db.mjs
脚本使用纯 Node.js 读取 Markdown/JSON/资产目录,并调用系统 sqlite3 写入数据库;不依赖 npm 包。当前输出为:
inspool-wiki-zh/exports/databases/hs4g-memory.sqlite
inspool-wiki-zh/exports/databases/hs4g-memory-build-report.json
本轮构建结果:
| 对象 | 数量 |
|---|---|
| search-index 台词 | 1995 |
| LocalForensics 来源页 | 1439 |
| MiMo 来源页 | 1970 |
| evidence_sources 总数 | 3409 |
| 带台词 # 线索的来源页 | 3235 |
| canonical # 占位线 | 1765 |
| concepts | 470 |
| entities | 22 |
| synthesis | 1274 |
| 公开短文 | 24 |
| 文章时间锚点 | 72 |
| 资产包 | 480 |
| 资产文件 | 21113 |
| 证据边界 claim_boundaries | 14382 |
抽查 #2037 已能连通:
canonical:2037
-> LocalForensics #2037 来源页
-> 2037-dont-care-final-line-to-postcredit-tail-chain 资产包
-> 28 个资产文件:10 图像、10 音频、8 JSON 指标
-> “不支持真实心理状态 / 完整退出 / 立即黑场”等边界
同时,观众短文中的 2:23:57 / 揭示 等时间锚点已进入 article_time_anchors,后续可由网站直接读取数据库来点亮时间线。
P0.5 站点接入
2026-07-05 已新增站点轻量出口脚本:
inspool-wiki-zh/scripts/export_hs4g_site_memory.mjs
输出:
人类投降派台词搜索-2026-05-31/memory-lite.json
inspool-wiki-zh/exports/databases/hs4g-site-memory.json
inspool-wiki-zh/exports/databases/hs4g-site-source-map.json
当前轻量出口结果:
| 对象 | 数量 |
|---|---|
| 带出处的站点台词 | 1995 |
| LocalForensics 来源页 | 1439 |
| 有时间窗的来源 | 978 |
| canonical # 线 | 1760 |
站点侧更新:
app.js加载memory-lite.json,台词卡显示“出处 / 图 / 声”标记。- 点击台词出处后,侧栏展示片中出处、图片缩略图、声音/图像/指标数量,以及“不能说成”的边界。
server.js新增只读/api/asset?path=...图片接口,只允许读取 offloaded raw assets 根目录下的文件。server.js新增/source/<sourceKey>跳转,公开 JSON 不暴露LocalForensics路径、复核页名或后台字段;真实 source path 存在站外hs4g-site-source-map.json。service-worker.js升级到hs4g-search-v11-memory-lite,memory-lite.json走网络优先。
验收:
app.js、server.js、service-worker.js与两个数据库脚本语法检查通过。/memory-lite.json返回200且Cache-Control: no-store。/api/asset对 #2037 联系图返回200 image/jpeg。/source/src_...返回302到对应 wiki source 页面。- Playwright 检查当前
?time=2:23:57&q=揭示页面有 3 个出处标记;最后一句我就是什么也不在乎打开侧栏后有 8 张图、图片加载成功、面板不含LocalForensics / MiMo / 复核 / 研究库 / 内部 / frontmatter / 总账。 - public-copy guard 通过。
核心表设计
作品与时间结构
| 表 | 作用 |
|---|---|
films |
作品元数据、版本、片长、母文件说明 |
film_parts |
章节/段落,接收当前 parts |
time_spans |
可复用时间段对象,给台词、来源、文章锚点、视觉锚点共用 |
台词脊柱
| 表 | 作用 |
|---|---|
dialogue_lines |
每句台词的主表:文本、起止时间、说话者、编号体系 |
speakers |
角色/说话者规范名、别名、人物页 |
line_number_aliases |
#号、站点 id、SRT id、角色内编号之间的映射 |
line_readings |
从逐句卷页抽取的稳定命名、短读、证据层级 |
line_segments |
41 个逐句正文卷页的范围、路径、状态 |
dialogue_lines 必须同时容纳“已有站点 1995 条”和“逐句工程 #2037”。不是强行二选一,而是显式标注映射关系、缺口和历史编号来源。
证据来源
| 表 | 作用 |
|---|---|
evidence_sources |
LocalForensics、MiMo、source 页总表 |
evidence_source_links |
来源页支持/反驳/参照/继承的关系 |
source_line_links |
来源页与台词句号之间的多对多关系 |
source_concept_links |
来源页与概念之间的多对多关系 |
source_entity_links |
来源页与实体/人物之间的多对多关系 |
evidence_sources 最少字段:
id
source_path
title
source_kind
canonical_status
evidence_tier
timecode_start
timecode_end
raw_asset_dir
created
updated
run_slug
summary_text
boundary_text
需要同步做字段归一化:当前 LocalForensics 中 evidence_tier 有 T1、T1_LOCAL_FORENSICS、T1_LOCAL_4K_AUDIO、T1_LOCAL_AV_PHYSICAL_MEASUREMENT 等多种写法。数据库可以保留原值,同时增加 evidence_tier_norm。
资产和指标
| 表 | 作用 |
|---|---|
asset_packages |
raw asset dir 的一级包 |
asset_files |
包内文件清单、类型、相对路径、大小、hash |
audio_windows |
exact/gap/boundary/ref/post 等音频窗 |
audio_metrics |
RMS、peak、duration、sample count、ratio 等 |
audio_bins |
100ms/20ms/10ms 曲线 |
frames |
单帧路径、时间点、角色、用途标签 |
frame_metrics |
亮度、颜色、dominant color、对比度等 |
contact_sheets |
联系图文件、覆盖范围、子帧数量 |
第一版不必做完整计算机视觉识别。只需把已经存在的 JSON 指标和命名角色抽进数据库,让前端能稳定打开高清图、联系图和证据包。
解释层与公开层
| 表 | 作用 |
|---|---|
wiki_pages |
所有 synthesis/concepts/entities/meta 页的页面级索引 |
concepts |
概念规范名、摘要、公开可见状态 |
entities |
人物/机构/地点/作品实体 |
articles |
观众短文、公开文章、研究长文 |
article_time_anchors |
文章内时间锚点,驱动时间线高亮 |
article_line_links |
文章关联台词 |
article_concept_links |
文章关联概念 |
public_routes |
哪些内容允许出现在公开网站/sitemap |
这里必须有 public_visibility 字段,例如:
private_research
public_candidate
public_featured
public_noindex_follow
public_hidden
这样网站不会再因为“全库太大”而把研究后台误当观众入口。
判断与边界
| 表 | 作用 |
|---|---|
claims |
稳定判断、候选判断、公开可说判断 |
claim_supports |
claim 被哪些来源、台词、帧、音频窗支持 |
claim_boundaries |
claim 不能升级到哪些说法 |
risk_terms |
consent、心理事实、医学事实、真实伤害、设备声等风险词 |
review_decisions |
人工复核、降级、废弃、合并、保留 |
这一组表是整个数据库最重要的“刹车系统”。如果只做全文搜索,系统会越来越会“找材料”;如果把边界结构化,系统才会知道哪些材料不能被说过头。
查询能力目标
研究者查询
- 输入一句台词,返回句号、时间码、说话者、逐句卷页、所有 T1 来源页、证据包、exact 音频窗、关键帧、相关概念和不可升级边界。
- 输入一个时间点,返回前后 30 秒台词、视觉锚点、LocalForensics 窗口、MiMo 候选、文章锚点。
- 输入一个概念,返回支撑它的台词、来源页、文章、帧和被降级的误读。
- 输入一个角色,返回角色内编号、全片台词、声画状态变化、人物工程卷页和高风险复核队列。
观众网站查询
- 输入台词片段,直接定位到时间、角色、附近剧情、对应画面。
- 点击文章中的时间,首页视觉时间线亮起对应分钟/子帧。
- 点击概念,只显示少量白话解释、相关台词、相关短文,不直接抛出技术长文。
- 点击截图,优先打开高清帧/联系图,再允许展开证据来源。
维护查询
- 找出有
raw_asset_dir但数据库没有资产清单的来源页。 - 找出有台词句号但无 T1 来源页的句子。
- 找出
evidence_tier原值未归一化的页面。 - 找出公开文章中使用了研究后台禁词或教育姿态句式的页面。
- 找出 MiMo 候选长期未被 T1 复核、降级或废弃的队列。
构建管线
第 0 阶段:只读盘点
生成一个 db-build-report.json:
- Markdown 页面总数。
- LocalForensics source_kind 分布。
- evidence_tier 原值分布。
- canonical_status 分布。
- raw asset dirs 覆盖率。
- 逐句卷页覆盖范围。
- 站点索引与逐句编号映射缺口。
这个阶段不改变任何文件,只暴露问题。
第 1 阶段:SQLite 骨架
新增脚本建议路径:
inspool-wiki-zh/scripts/build_hs4g_memory_db.mjs
输出:
inspool-wiki-zh/exports/databases/hs4g-memory.sqlite
inspool-wiki-zh/exports/databases/hs4g-memory-build-report.json
第一版只建这些表:
dialogue_linesspeakersline_number_aliasesevidence_sourcessource_line_linksasset_packagesasset_fileswiki_pagesconceptsarticlesarticle_time_anchorsclaimsclaim_boundaries
第 2 阶段:T1 证据包解析
优先解析 #2037 样板资产包和 1120-at-this-point-nooffset/ 下的后段 exact-line 包。目标是把 audio_summary*.json、audio_frequency*.json、frame_color_metrics*.json 和联系图路径抽入表中。
这一阶段先不要追求全库完美。先确保一条句子能完整展示:
台词 -> T1 来源页 -> raw asset package -> 音频窗 -> 音频指标 -> 帧图 -> 联系图 -> 不可升级边界
第 3 阶段:前端 API 与搜索重构
现有 build-search-index.js 保留为前端轻索引生成器,不建议继续把它扩成总数据库脚本。更好的路线是:
- SQLite 建成总库。
- 从 SQLite 导出公开站点需要的轻 JSON。
- 公开站点只读轻 JSON 或 API。
- 研究者工具可直接查询 SQLite。
这样公开网站不会被全库 1000+ synthesis 和 400+ concepts 拖垮,也不会把研究后台原样暴露给观众。
第 4 阶段:语义搜索
关系查询稳定后,再加向量检索:
- 文章段落 embedding。
- 台词上下文 embedding。
- 概念解释 embedding。
supported_claims与unsupported_claims分开 embedding。
语义搜索只负责“找到可能相关的东西”;最终显示仍必须回到 SQL 关系和证据层级。
数据库与 Obsidian 的关系
Obsidian 仍然是作者工作台和人工判断源头。SQLite 不是新权威,而是重建出来的索引层。
推荐规则:
- 人工判断继续写 Markdown。
- 证据页继续保留 frontmatter 和正文边界。
- raw 资产不移动、不改写。
- 数据库构建脚本只读 Markdown 和 raw assets。
- 数据库输出可以被网站、桌面 App、审核脚本和 AI 问答使用。
- 任何自动生成的数据库字段如果要回写 Markdown,必须走人工确认或单独 approve 流程。
第一批实施优先级
P0
- 建立
dialogue_lines与编号映射表。 - 建立
evidence_sources,抽取 LocalForensics/MiMo 的 frontmatter。 - 建立
source_line_links,优先从hs4g/dialogue/line-标签、正文#2037格式和 related_sources 中提取。 - 建立
asset_packages与asset_files,先记录路径、扩展名、大小、mtime。 - 建立
claim_boundaries,从“证据边界 / 不证明 / 不兑现 / 不升级”段落中做保守抽取。
P1
- 解析 #2037 与后段 exact-line 包的音频/帧 JSON。
- 给前端增加一个“证据抽屉”:台词卡可打开 T1 来源、关键帧、高清联系图和边界。
- 让文章时间锚点从数据库读取,而不是散落在
audience-content.json中手写维护。 - 给概念页建立
public_visibility,公开站点只展示可公开解释的概念。
P2
- 接入 MiMo 候选与 T1 复核关系。
- 加入语义搜索。
- 生成研究者仪表盘:覆盖率、未复核候选、证据层级漂移、公开文案风险。
- 把 macOS App 从“启动本地站点”升级成“本地数据库 + 本地站点 + 后台重建按钮”。
对网站升级的直接意义
完成数据库后,网站可以从“前端大 JSON 搜索页”升级为真正的记忆入口:
- 台词搜索:可直接返回角色、时间、上下文、画面、证据页。
- 视觉时间线:每分钟/每 6 秒子帧可回连到台词、来源页和文章。
- 文章阅读:文中时间点点击后,时间线亮起;文中概念点击后,显示短解释和证据链。
- 图片入口:截图不是装饰图,而是可回连到时间、台词、联系图和高清帧。
- 观众层:只展示精选短文和清楚的片内材料。
- 研究层:保留完整证据、字段、降级判断和 raw 资产路径。
这会让“人类投降派搜索记忆库”不只是一个网页,而是一个可持续升级的软件底座。
证据边界
本文只提出数据库结构和工程路线。它不新增任何片内事实裁决,不改变 #2037 的尾句判断,不改变角色归属、时间码、台词文本或 LocalForensics 页的证据层级。涉及公开网站的部分仅讨论数据出口,不直接生成新的观众文案。
