AI自动帮你补链接:LLM Wiki wikilink补全机制让知识网络越织越密
2026/9/15 22:17:41 网站建设 项目流程

AI自动帮你补链接:LLM Wiki wikilink补全机制让知识网络越织越密

【免费下载链接】llm_wikiLLM Wiki is a cross-platform desktop application that turns your documents into an organized, interlinked knowledge base — automatically. Instead of traditional RAG (retrieve-and-answer from scratch every time), the LLM incrementally builds and maintains a persistent wiki from your sources。项目地址: https://gitcode.com/GitHub_Trending/ll/llm_wiki

LLM Wiki 是一款跨平台桌面知识库应用,它的wikilink 自动补全机制会调用大语言模型(LLM)扫描你保存的 Wiki 页面,自动找出应指向已有页面的术语,并安全地插入[[双链]],让你的知识网络越织越密——全程不改动你的一个正文字符。

写知识笔记最痛苦的事,莫过于手动补交叉引用:写完一页综述,要逐个回忆"Transformer"该链到哪篇概念页,"注意力机制"该用哪个别名。LLM Wiki 把这个脏活交给了 AI,同时用一套**"LLM 只报答案、代码负责落笔"** 的设计,保证了自动补链既聪明又可靠。

wikilink 为什么是知识库的"黏合剂"

LLM Wiki 的 Wiki 目录采用 Obsidian 风格的[[wikilink]]语法做页面交叉引用。这些双链不只是好看:

  • 知识图谱:应用会解析每个页面里的[[链接]],构建节点-边图结构,计算关联度、发现社区聚类(Louvain 算法)
  • Obsidian 兼容:整个 Wiki 目录可直接作为 Obsidian 仓库打开,双链无缝迁移

可以说,wikilink 补全质量直接决定了知识网络的密度。链接越多越准,图谱里的"惊奇连接"和"知识空白"检测就越有价值。

核心机制:AI 只给"替换清单",代码动手改文件

整个补链逻辑集中在 enrich-wikilinks.ts。设计注释里有一段很有启发:早期版本让 LLM 直接返回"插好链接的完整页面",结果不少模型把页面重写、扩写甚至翻译了一遍,用户内容被毁。于是团队改成了现在的 v2 方案——AI 只输出一张 JSON 替换清单,字符串替换全部由代码完成(见 enrich-wikilinks.ts#L8-L25)。

这个分工带来四个"硬保证":

保证说明
内容零漂移除了插入的[[ ]],页面其余字节完全不变
frontmatter 安全YAML 头部被切出来单独处理,绝不触碰
长度可预测页面长度恰好增长 4 × 链接数
坏输出无害LLM 就算"发疯"(重写、评论、乱码),也只会被解析器丢弃,不会写坏页面

一次补链的完整流程

  1. 并行读取三样东西:目标页面正文、wiki/index.md(已有页面目录)、整个 wiki 目录树(见 enrich-wikilinks.ts#L33-L37)
  2. LLM 返回 JSON 清单:提示词要求模型只输出{"links": [{"term": "原文里的词", "target": "目录中的页面名"}]},并规定 term 必须是正文中逐字存在的子串、target 必须是目录中真实存在的页面(见 enrich-wikilinks.ts#L52-L77)
  3. 代码做安全校验:模型说得天花乱坠也没用——每个 target 都会与磁盘上真实存在的.md页面对账,对不上的链接直接丢弃;目录读取失败时宁可整轮跳过,也不引入死链(见 enrich-wikilinks.ts#L99-L104)
  4. 精准替换:对每个词只在首次出现处替换,且跳过 frontmatter 和已处于[[...]]中的文本;词面与目标名一致时写[[Transformer]],不一致时保留原文展示、写成[[目标页|原文]](见 applyLinks 实现)

为什么"JSON 清单 + 代码替换"比"整页重写"高明

这套设计本质上把判断权修改权分离了:

  • 模型最擅长判断——"Attention 这个词应该链到 attention 页"
  • 代码最擅长修改——精确的字符串插入、跳过已有链接(findUnlinkedOccurrence)、防止二次链接(linkedTargets去重)

容错解析器(parseLinkResponse)还能容忍模型多嘴:自动剥掉 ``` 围栏、从杂音中抠出第一个配平的{...},解析失败就返回空清单,宁可什么都不做,也不冒险。相关行为由场景化测试固化下来,例如"给综述页补上 Transformer/Attention 双链"、"frontmatter 永不被动"(见 enrich-scenarios.ts)。

补上的链接去哪了:从双链到知识图谱

自动补链不是终点,链接落盘后,LLM Wiki 的图谱引擎会接管:

  • 建图:wiki-graph.ts 用正则提取每页全部[[链接]],通过大小写/连字符归一化解析目标,去重边、统计链接数(见 extractWikilinks 与 buildWikiGraph)
  • 渲染:阅读视图中,wikilink-transform.ts 把[[target|alias]]转成标准 markdown 链接显示,且不会误伤代码块里的示例语法
  • 洞察:图谱之上跑 Louvain 社区检测,自动发现知识聚类、惊奇连接与知识空白

与此同时,Lint 检查还会反向督促网络密度——检测到某页面没有任何出站 wikilink时,会主动建议"添加与相关实体和概念的交叉引用"(见 zh.json#L431)。

这套机制给新手用户的 3 个实用提示

  1. 先攒页面,再谈密度:补链的 target 必须是index.md里已存在的页面。Wiki 越丰富,可链目标越多,AI 能补出的网络越密
  2. 命名要稳定:页面文件名就是链接锚点,transformer.mdTransformer.md这类同名页会让解析产生歧义而被跳过(见 collectWikiPageSlugs 的处理),保持命名风格统一即可
  3. 放心让 AI 补:最坏情况是"这轮没补上",不存在"补坏了"——JSON 清单 + 磁盘对账的双重防线,决定了这个机制可以默认开启、无需人盯

小结

LLM Wiki 的 wikilink 补全机制是一个典型的"AI 判断、代码执行"工程范本:LLM 负责发现哪些词该链到哪个页面,代码负责校验目标真实存在并做字节级安全的插入。你只管写笔记,交叉引用由 AI 悄悄织好;链接织密了,知识图谱、社区洞察和 Obsidian 互通的价值才真正兑现。核心实现都摆在 enrich-wikilinks.ts 里,值得想理解"如何安全地让 LLM 改用户文件"的开发者一读。

【免费下载链接】llm_wikiLLM Wiki is a cross-platform desktop application that turns your documents into an organized, interlinked knowledge base — automatically. Instead of traditional RAG (retrieve-and-answer from scratch every time), the LLM incrementally builds and maintains a persistent wiki from your sources。项目地址: https://gitcode.com/GitHub_Trending/ll/llm_wiki

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询