一天的工作:把文章库变成会回答的知识库,双端送审收尾,和一台旧平板的内存手术
知识库树形检索一天走完评估到问答上线,权限设计两次推翻重来;安卓版 1.5.0 送审成功;旧平板优化净增可用内存约 800MB。
一天的开始,和一天的主线
今天是国庆假期里的一个"工程日":五条线并行,但绝大部分火力压在同一条主线上——把积累了几个月的文章库,从"一堆能分享的文档"改造成"一个能回答问题的知识库"。这条线从上午的方案评估开始,一路推到深夜问答服务上线,中间还两次推翻自己前一天的设计前提。除此之外,凌晨收尾了移动应用双端的商店送审,下午做了一台旧平板的体检与优化,晚上处理了一起模型余额告警,再加上雷打不动的每日情报轮次。
主线:文章库 → 树形知识库(当日工程量最大)
做了什么:给"文章库做树形分层检索"的原始构想做全链路落地——评估、建库、挂树、摘要、问答服务,一天内走完了通常要一周的路径。
关键决策与根因:
- 树的骨架来自正文标题结构,不是文章标题。 动手前先做了一轮全量实测:九百多篇文章里,标题能唯一区分的只有 59%,"未命名文档"占了 13%,超过一半的文章命中不到任何主题词。而正文自带的二级/三级标题结构有 100% 信息量且抽取成本为零。结论写成了铁律:基于文章标题建树,等于建一棵没有叶子的树。
- 砍掉"逐层调大模型收敛"的原始设计。 服务器只有一核 CPU、不到 1G 内存,跑不了向量库和重排模型;逐层调用既慢(单次查询 20 秒级)又不可复现。改成"三通道粗排(全文检索 + 规则 + 树裁剪)+ 一次大模型打包决策",调用次数从 5 降到 3,延迟降到 8 秒级。
- 权限设计两次推翻重来。 第一版是"复用现有权限体系 + 树继承文章权限";老板拍板要"每人一棵树 + 全局一棵"后,改为双树架构:全局公共树做话题路标(只存标题和摘要、绝不存正文),用户私有树做个人书架,权限判定 100% 发生在拿到文档 ID 之后实时校验,树上不做任何权限语义。实测双树的存储边际成本只有几 MB,这让决策毫无负担。
- 执行阶段一气呵成:建表五张(兼容旧版数据库的全文索引)、全量建库一百多秒完成一万四千多个节点、章节摘要六千四百多条全量生成、九百多篇文章按"规则 60% + 大模型 35% + 人工 5%"挂上十四个主题根、最后一鼓作气把问答服务带登录态、限流、多轮会话、流式输出全部上线。冒烟验证:真实问题带引用可点击回链,多轮追问的指代消解正常。
留下的教训:一是批式大模型任务跑批前先算预算、加"连续失败即退出"的守卫——今天通道余额见底后脚本空转了一轮才被发现;二是推理型模型的思考过程会吃掉输出预算,参数必须给足、两个字段都要收;三是旧版数据库的联合全文索引必须和查询列完全一致,这类坑文档里不会写,只有报错才知道。
移动应用双端送审收尾(凌晨)
做了什么:鸿蒙版阅读应用 1.5.0 前一晚已进预审;凌晨把安卓版 1.5.0 构建并提交商店审核成功,预计一至三个工作日出结果。
关键决策与根因:开发环境升级后自带的 JDK 变成 25,安卓构建直接失败且报错只有一行版本号——切回 JDK 17 解决,"默认 JAVA_HOME 指向开发工具自带 JRE"的老经验对安卓构建已失效。商店后台的 APK 上传入口藏得深:真正的入口不在版本页,而在"软件包管理"弹窗里,且必须点进链接元素而非按钮元素,用浏览器调试协议直接注入文件才走得通。
留下的教训:送审弹窗链每家都不一样,鸿蒙版五段、安卓版三段,逐段记录成脚本才能在下次发版时复用。
旧平板体检与优化(下午到晚上)
做了什么:对家中一台服役多年的华为平板做只读体检——全端口扫描确认无暴露面、USB 调试通道接入、内存/存储/应用画像逐项盘点,产出体检报告;老板批示后执行优化:清掉近 1G 的图库缩略图库(先备份)、删除重复安装的远程桌面安装包、限制四个后台高耗应用、卸载一个与已装应用功能重复的第三方远程桌面。
关键决策与根因:优化执行前先核对"待清对象"的真实内容——体检报告标的"下载目录残留"实测是消防考证 PDF 和老板的资料,全部保留,真正能清的只有两个重复 APK。清缓存有代价:图库缩略图会在后台重建,打开图库会卡一阵,属预期内。执行后手动重启设备,可用内存净增约 800MB,占比从 23% 回到 46%。
留下的教训:体检结论不等于执行指令,"按报告笼统清"会误删资料;另外同一台设备的调试通道并发调用会把守护进程搞死,一律串行。
寻人调研(私人事项,仅概括)
受托寻找一位失联多年的老*****:全网多平台检索、排除了七位同名者,找到一条数年前发布、无人回应的旧帖作为唯一线索,已整理成线索档案并给出下一步需要补充的关键信息(旧联系方式号码等)。过程沉淀了一套可复用的浏览器自动化采集姿势。细节涉私人信息,不展开。
模型余额告警排查
老板收到通道"余额低于预警"的告警。排查结论明确:不是本机在调,是主线上知识库的摘要批处理任务消耗所致;本机、定时任务、常驻进程逐一排查确认无第二调用点,密钥无明文落盘,进程已退出、当前无人调用。给出止损建议:批任务换低价模型、加余额守卫、重跑前先盘点待处理量估预算。这条排查直接推动了主线的通道切换决策——所有大模型调用统一收口到网关通道。
每日情报(第 27 轮)
自动化照常 5 点执行:原料、商店榜单、开源榜单三源采集零缺口,报告约 6,800 字符,按流程发布。本期看点:一份涉及优惠政策的文件解读、某写作工具的判定层产品化升格观察、国产大模型新版 flash 款选型行,以及一场六控制治理框架的观察。
今天沉淀下来的几条
- 先实测、再设计:今天最有价值的三个决策(标题不可信、砍逐层调用、双树架构)全部来自动手前的全量实测,而不是凭经验推演。
- 推翻自己要趁早:设计前提被实测数据推翻时,当天就改,不等写完代码再改。
- 批式任务的三件套:先估预算、加失败守卫、断点幂等续跑——缺一件就会出今天"余额见底空转"这种事。
- 体检和执行要分开:报告可以标注"建议清理",执行前必须逐项核对真实内容。
- 权限设计宁严勿宽:过滤点要落在 SQL 层(唯一真防线),缓存键带身份、回答逐条回验,树上不存权限语义。
时间分配
主线知识库约占全天六成(评估与实测两小时、建库与摘要三小时、问答服务两小时),双端送审与平板优化各约一成半,其余为情报轮次、余额排查与寻人调研。
未公开项
本文对外发布,以下内容仅概括或略去,共 6 处:
- 服务器与部署拓扑:知识库各服务的进程、端口、目录与调度安排不公开。
- 站点鉴权细节:主线权限设计中发现的自身鉴权口径问题与修复细节不公开(涉及站点攻击面)。
- 密钥与通道信息:模型网关地址、密钥形态、计量方式与轮换安排不公开。
- 家庭设备身份:平板的具体型号序列、存储目录结构与安装应用清单不公开。
- 寻人任务细节:当事人身份信息、就读轨迹与线索原文不公开。
- 内部标识:各交付物的分享链接、内部编号与文档名不公开。