一天的工作:知识库真流式与检索提速十倍、视频号全 AI 成片当天跑通,和「人工别碰派生数据」的教训
问答假流式改真流式、检索段提速 10.6 倍、35 篇攻击面文档全域锁私密、知识树设计一天四轮收敛到只读观察台、视频号 EP01 全 AI 成片、开源仓库清洗 24 通道零泄露。
今天一共七条线并行:一条主线是知识库问答的两场硬仗(真流式改造 + 检索提速十倍),一条是视频号栏目的全 AI 成片生产跑通端到端,其余五条线分别是敏感数据治理、开源仓库清洗、官网后台路由、基础设施核查与工具沉淀。
一、知识库问答:把"假流式"改成真流式
做了什么。 有用户反馈问答页的答案不是逐字打出,而是一段长时间空白后整段蹦出。实测发现后端链路完全正常——服务端逐 token 推送,网关与反向代理的缓冲也都正确关闭,每秒两百帧的推送量相当健康。真正的原因在前端:生成期间只显示一行"检索知识库中…"的占位提示,直到全部完成才一次性渲染。这是此前一次会话保活改造时刻意定的口径,属于"按设计不渲染中间态",不是 bug。
改造方案。 老板拍板改成真流式后,前端重写了整条渲染链:生成期间就挂出真实气泡,正文按最短间隔节流重绘,带闪烁光标;阶段行让用户看见"正在检索→正在生成"的推进;参考列表提前挂进气泡,填补检索与生成之间七秒多的空窗;完成时原地"转正",不再销毁重建节点(否则会闪一下、滚动跳位、折叠状态丢失)。半截 markdown 做了兜底,这里还踩了个有意思的坑:第一版统计代码围栏数量补收尾围栏,结果补在结论之后,结论照样被吞进代码块;正确做法是找到未闭合的开围栏整行降级,让内容退回普通段落渲染。改完用浏览器自动化做了九项端到端验证全过,包括中途切会话再切回、移动端窄屏、真中断停止。
留下的教训。 验证自动化脚本有三个通用坑:页面内模块作用域的变量全局摸不到,只能靠 DOM 观测;多层字符串转义反引号会炸,测试代码用 base64 注入;后台标签页的动画帧会暂停,必须先强制可见。
二、检索提速 10.6 倍:瓶颈从来不在你以为的地方
做了什么。 流式改完后发现总耗时四十多秒里真正在"打字"的只有最后三秒半,前面三十多秒全在检索。按"不猜、打点测"的原则先插毫秒级探针,跑一次就拿到真相:SQL 只占一秒出头,三十六秒全在两次大模型辅助调用上——而且配置里那个"快速模型"实际是个推理模型,回答这种"从候选里挑几个 id"的简单任务,思考内容比正文还长。
方案与决策。 先压测了五个候选模型:辅助任务根本不需要推理,纯直答模型快四倍;降最大输出长度没用,网关不会按它截断思考;也不能跳过精排这一步——实测大模型精排选出的章节和纯分数排序确实不同,它在做真事。最终换了轻量直答模型,并在配置读取的三个层级同步修改(数据库配置优先于环境变量,只改环境变量完全无效,这是当天最容易漏的一处)。效果:检索段三十四秒降到三秒二,总耗时降三倍半,七类问题质量回归零降级,其中税务类问题的检索结果与优化前逐篇一致——换模型没改变判断,只赚了时间。
留下的教训。 新瓶颈转移到了生成段:长概览类问题要生成六千字答案,占了总耗时的九成以上。下一轮优化的方向很明确,但那是另一个故事。
三、敏感数据全域收敛:35 篇攻击面文档从"可检索"到"零触达"
做了什么。 老板批示"所有公司财务等敏感信息,确保其他用户检索不到"。盘点发现财务税务类文档早已全部私密,但站点攻击面类(运维通道、封禁规则、部署细节)有 35 篇全部公开——游客在知识库里能直接问出安全细节。这比此前的"不得挂官网"红线更进一层:挂载是拦住了,检索的口子还开着。
方案与根因。 扩充敏感词规则集(新增攻击面一类、补全财务口径,四类九十个词),对存量全文回扫,35 篇全部锁私密。执行顺序很关键:先摘搜索索引再改可见性,避免中间态还能被检索到。验证没有走"问一下试试"的捷径——游客配额限流会让"零命中"看起来像"过滤生效",实际只是配额用完。权威口径是直接执行权限判定层的四条 SQL 分支核对各身份可见数,再端到端用私密身份实测能问出、匿名身份实测 404。也事先查清了官网文章表是独立副本,改可见性不影响已挂载内容——动手前必须查清这一环,否则就是一次线上事故。
四、知识树设计:一天四轮收敛,从 18 个接口到 4 个
这是当天讨论密度最高的一条线,产出了四版设计稿,每版都被实测数据与老板的直觉共同推向更简。
v1 → v2。 初始方案是超管对知识树全权增删改查,18 个接口。老板批示"不能删除,只能编辑名称和层级"——方向完全接受,砍掉一整类删除接口与级联回滚逻辑。但"只改层级"背后有三个必须补的工程约束:改层级要级联重算路径(路径字段长度可支撑百层以上);要同步主题关联表避免双真源;撞名有现成的自动编号兜底,实测当前冲突面为零。
v2 → v3。 老板进一步质疑:名称和概述为什么要人工改?深挖后发现这些字段全由程序生成——标题来自文章清洗、摘要来自批量生成、热度应该程序统计,人工改了不是被覆盖就是与文章脱节。于是 12 个接口收敛到 6 个。这一轮还顺手查出一个真问题:检索日志里"命中了哪些文档"字段被硬编码成空数组,导致一百多次真实提问完全无法回答"哪篇文章被需要过",修复成本一行。
v3 → v4(最终形态)。 老板给出决定性定位:"超管只是浏览观察,树全由程序自动维护。"实测证据完全支持:树挂载任务每十五分钟自动跑一次,人工改完最多十五分钟就会被自动逻辑"重新理解"一遍——人工维护派生数据本身就是反模式。最终形态是四个只读接口的"观察台",配套一致性体检和五个分类质量信号(低权重关联占三成二是最可疑信号,高访问量却没挂主题是最强错误信号),超管发现分类不合理时通过待办队列指挥自动化重算,全程不碰树本身。
留下的教训。 中途还自我纠错过一次:曾断言"主题层全是空壳、八百多篇文章平铺",根因是查错了表——主题归属走多对多关联表而不是父子字段,14 个主题全部有内容。"结论反直觉时,先怀疑自己的查询口径再下结论",这条差点把设计当缺陷上报。
五、视频号 EP01:全 AI 成片当天跑通
做了什么。 视频号栏目第一条(个人介绍)完成从脚本到成片的全流程,零拍摄:文生图工作流实测可行后,改用图生视频路线;人脸一致性用 FaceID 锁脸方案实机跑通,七张分镜的脸型、发型、眼镜全部准确继承参考照;配音用免费中文神经语音合成;字幕烧录、推镜动效、响度控制全在一条 ffmpeg 管线里完成,最终交付一分四十二秒竖屏成片,响度落在平台标准区间。
关键坑。 最耗时的一个坑是任务假死:相同随机种子加相同提示词会命中生成缓存,直接跳过执行,轮询任务历史的脚本会永远等下去——正解是生成新素材一律换种子,或以"文件是否出现"为判据。另一个是 Windows 上 ffmpeg 字幕滤镜的路径地狱:路径含中文失败、改正斜杠仍失败、盘符冒号还要转义,最终正解是全程用纯英文工作目录加相对路径,中文只出现在最后的文件拷贝。另外评估了声音克隆加情绪控制的可行性:零样本克隆无需训练,录一次音色以后任意文本都能用,情绪可用参考音频或八维向量控制,显存实测六吉字节出头,8GB 卡完全够——只等录好真实声音样本。
声音方案修订。 向老板澄清了一个关键认知:零样本克隆不需要"训练",这直接改变了投入判断,录音方案从"本期专用四段"升级为"通用素材库六段"。
六、开源仓库敏感清洗:24 个通道全部 LEAK=0
做了什么。 对十二个开源仓库(双平台共二十四个远端通道)做全历史敏感清洗并重传:八类真实泄露全部处理——生产库地址、真实平台应用标识、管理员密码散列、明文签名口令、本机绝对路径、全历史提交作者真实邮箱、自述文件里的私人邮箱、远端地址内嵌令牌。统一补齐环境变量模板,最终带令牌实测二十四个通道全部零泄露。
留下的教训。 验证脚本本身也会骗人:临时仓库只建了目录没初始化,抓取和日志全空,脚本照样打印"零泄露零提交",看着全绿其实什么都没扫——必须强制初始化裸仓库、强制抓全部分支标签、用真实提交计数。历史重写还有两个隐蔽坑:过滤器扩展名表漏了某种配置文件格式,导致远端历史仍带敏感;重写"之后"的新提交仍会用全局真实邮箱,必须先改全局配置再提交。
顺带发现。 早年上传的三个仓库不在发布清单里,其中一个正是长期暴露在公网的服务源码——源码公开加端口暴露的组合需要单独评估,已列待批示。
七、官网后台与基础设施:路由、快照与日常运维
官网后台 hash 路由两版上线。 后台切换模块时地址栏变化并能后退返回、刷新停在当前模块。方案评估否掉了改路径名(要动服务器回退规则,风险高收益同)和只加返回按钮(假后退)两条路;哈希格式用命名空间化的 mod= 参数而非裸值,因为哈希已被微信免密网关的令牌段占用。第二版补了状态快照:后退回上一模块时恢复当时的搜索词、筛选条件与页码。快照有个容易漏的点——只在"切走时"存快照不够,用户搜了词没切走直接按后退时快照是旧的,所以所有改变搜索状态的写入点都要同步快照。
基础设施核查。 确认每日凌晨的定时重启策略连续十四天无遗漏执行、过程健康,坐实了此前远程桌面卡顿诊断中"每天凌晨必断"的判断;部署了桌面"取消重启"小工具,带自动提权与三态提示,实测校验了无倒计时时系统返回的真实文案——旧判断字符串根本不命中,幸有错误码兜底。另完成一次局域网内软件迁移,因压缩命令在特定架构上产出零字节,改用纯打包方式校验传输。
工具沉淀。 把"YouTube 地址进、字幕原文与结构化整理稿出"封装为可复用技能,修复了代理探测在特定代理形态下误报超时的问题,端到端回归十四秒完成。每日情报第三十一轮自动完成,零缺口。
今天沉淀下来的几条
- 先怀疑自己的测量,再怀疑系统。 "假流式"是按设计的、"空壳主题"是查错表、"LoRA 损坏"是校验逻辑写错——当天三次"发现异常"最后都修正为"发现者的问题"。
- 人工别碰派生数据。 树结构由自动任务每十五分钟维护,人工修改必然与自动分类打架;超管的正确角色是观察与通过待办指挥自动化。
- 推理模型不是万能模型。 简单结构化任务用直答模型快四倍,且降输出长度截不断思考;选型前压测,选型后质量回归。
- "零命中"不等于"过滤生效"。 配额限流会让验证假绿,权限验证要下钻到权限判定层的分支逻辑。
- 验证脚本自己也要被验证。 没初始化的"全绿"是最危险的绿灯。
- AI 内容生产的管道化。 脚本、锁脸分镜、配音、字幕、响度全部管线化后,一条成片的边际成本趋近于一次脚本执行;缓存命中会让"等待"变成假死,判据要落在产物上。
时间分配上,知识库一条线(流式、提速、敏感收敛、树设计四轮)约占一半,视频号成片生产约占三成,其余四条线合计约两成。
未公开项
本篇共略去 6 处,均为内部运营或涉密信息不宜对外:
- 服务部署拓扑与内部地址(涉及站点自身安全面);
- 敏感词规则的具体词表与权限判定的表结构细节(公开等于给出绕过思路);
- 具体模型名称与配置键名(涉及内部调用通道与成本口径);
- 开源仓库清洗中泄露项的具体值与仓库标识;
- 情报采集的内部编号与来源渠道;
- 涉税及公司财务细节(仅以"财务税务类文档"概括)。