能展示来源的知识库,以及可信的演示流程

Sirui Liu Lv4

语言: English | 简体中文

发布日期:2026-10-10

我构建 FLH 的只读 Knowledge Library,让整理后的 Concept 可以被搜索,并能追溯到原始学习问题。配套合成演示及验收覆盖搜索语义、来源跳转、进程身份与可靠启动。

工程重点:全栈检索、来源追踪和演示运维。

此时系统已能记录、解释、抽取和整理知识,却缺少把知识读回来的入口。建立页面并不难,让演示能可信地运行则经历了几轮修正。

复用已有权威的只读知识库

FLH-034 加入工作台视图和三个 GET endpoint。服务只持有读取接口,不另建一套规则,展示内容来自既有 derived support、current membership、effective annotation 和 extraction provenance。

搜索采用确定性关键词前缀匹配:忽略大小写与重音,检查 Concept identity 和当前成员 unit 的措辞;identity 命中先于 wording,随后按 active/orphaned 等状态和稳定规则排序;默认 20 条,最多 50 条。

这个阶段不做词干、同义词或语义检索。Concept 页面将单元区分为当前支持、当前归属但不支持(给出原因)、关系链接和历史。来源页展示学习者原文,以及抽取真正使用的 Analysis / Feedback;后来解释变化不会重写 provenance。

演示经公共 API 写入四条合成记录、七个 Concept,用本地 stub extractor,无需 API key。浏览器 walkthrough 若发出非 GET 请求就失败。

独立验收发现的五个问题

FLH-035 在 10 月 9 日确认知识库核心合同通过,但发现边缘问题:

  1. 计划说旧 extraction 的 unit 不被搜索,实际搜索遵循 current membership,包含仍归属当前 Concept 的旧单元;页面措辞误导为“当前支持”。
  2. 宣称 loopback-only 的演示实际监听所有接口。
  3. 同一 unit 对同一 Concept 有多个关系时出现重复 React key。
  4. stop 只信任 PID 文件,可能终止不相关进程。
  5. 端口占用时 seed 请求可能发向其他程序,且 tee 掩盖失败,让 setup 假报成功。

让实现与说法一致

FLH-036 修正文档和搜索标签,保留正确的 membership 语义;服务加入 LISTEN_HOST,演示明确绑定 127.0.0.1 并检查 socket;关系行使用 link ID 作为 key。

进程身份由 PID、内核启动时间和指向演示目录的命令行共同判断。Linux 使用 /proc,macOS 使用 ps / lsof;不支持的平台拒绝,旧 PID 或重用 PID 不会被发送信号。

Setup 在启动前拒绝占用端口,readiness 只认可已启动子进程自己的 listener,seed 失败时退出非零并清理该进程。macOS 上用任务专属 sentinel 进程/端口验证;FLH-037 在 Linux 通过 84 组 probe,该轮没有真实浏览器或人工演示。

让观众理解知识,而非猜法语标题

项目负责人完成六个手工演示步骤后,反馈法语标题和解释不易理解。FLH-038 因此把 Concept 标题、解释和问题改为英文,保留法语例句和有用语法术语,并解释“归在这里”和“当前支持”的差别;API 与搜索规则保持一致。

标题还需要保持已有验收中的精确搜索预期,例如 déclencheur、vue d'ensemble 以及 irreg 的 wording 命中。为避免 subject 意外匹配 subj,调整了两段说明,再通过 HTTP 重放搜索核对;该任务没有重跑 Linux 全套 harness。

阶段范围

这一阶段知识库没有语义索引、URL 状态或 DISTINCT pair 列表,每次搜索扫描 Concept。macOS 浏览器和 Linux HTTP/进程检查分别提供不同证据;“两分钟演示”没有正式计时。后续语义搜索和云演示见系列文章。

实现结合 AI 编码工具,由我负责方向、任务与审查。

源码与证据

  • 标题: 能展示来源的知识库,以及可信的演示流程
  • 作者: Sirui Liu
  • 创建于 : 2026-10-10 12:00:00
  • 更新于 : 2026-10-25 12:00:00
  • 链接: https://vanquisher.world/zh-CN/2026/10/10/flh-knowledge-library-demo/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。