资讯详情

完整解析LLM Wiki Lint结构检查器:矛盾、孤儿、缺失全揪出来的源码拆解

📅 2026/9/16 15:26:40 | 华诺云谱 👁 阅读
完整解析LLM Wiki Lint结构检查器:矛盾、孤儿、缺失全揪出来的源码拆解
完整解析LLM Wiki Lint结构检查器矛盾、孤儿、缺失全揪出来的源码拆解【免费下载链接】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_wikiLLM Wiki 是一款跨平台桌面应用能自动把文档变成互相链接的知识库。它的Lint 结构检查器就像给知识库做体检孤立页面Orphan、失效链接Broken Link、无出链页面乃至 LLM 才能发现的内容矛盾一次全揪出来还能一键修复。本文带你从源码层面看懂这套检查器是怎么工作的。Lint 检查器能查出哪些问题LLM Wiki 的检查分为两层对应四类问题层级问题类型说明严重度结构层orphan孤立页面没有任何其他页面链接到它提示结构层broken-link失效链接[[wikilink]]指向的页面不存在警告结构层no-outlinks无出链页面本身没有引用任何其他页面提示语义层semantic语义问题矛盾contradiction、过时stale、缺失页面missing-page、建议由 LLM 判定结果统一用LintResult结构承载包含类型、严重度、涉及页面、描述以及自动修复所需的建议目标页src/lib/lint.ts结构检查三步扫描 Wiki 目录入口是runStructuralLint流程很直接src/lib/lint.ts读文件递归遍历wiki/目录只处理.md文件且排除index.md和log.md它们本就不参与互链抽取信息每页解析出标题frontmatter 的title或第一个#标题、所有[[wikilink]]出链、以及用于推荐候选的 token 集合标题 正文前 4000 字符后台计算把数据丢给 Web Worker 执行核心算法 src/lib/lint-structural.worker.ts避免大库检查时卡死界面。核心算法computeStructuralLint在 src/lib/lint-structural-core.ts 中孤立检测统计每页的入链次数inboundCounts零入链即孤儿——但它同时给出suggestedSource推荐最该链接到它的页面失效链接检测每个出链先归一化去掉wiki/前缀、.md后缀、统一小写查不到目标即告警并附上suggestedTarget候选页无出链检测outlinks为空即标记附suggestedTarget推荐该链接谁。亮点断链修复建议是怎么猜出来的失效链接最有价值的不是报错而是推荐正确目标。源码里藏着一套相似度引擎src/lib/lint-structural-core.ts二元片段索引把每个页面名拆成相邻双字串bigram建倒排索引transfomer能通过片段命中transformer而不必逐页全量比对编辑距离兜底对候选用 Levenshtein 距离 归一化算相似度同基名得分 0.96、包含关系 0.82超过 0.74 才给出建议中文友好NFKC 归一化让全角/简体变体等价匹配单字 CJK token 降权 0.35防止常见字误伤。对应场景的测试也很有趣——attention页里写错成transfomer检查器能精准推荐transformer.mdsrc/lib/lint-structural-core.test.ts。性能上同样下过功夫5000 个页面要求 5 秒内完成防止所有页对彼此全扫描的写法回潮src/lib/lint-structural-core.test.ts。语义检查让 LLM 找出结构层看不见的矛盾结构层只能看链接图而内容矛盾需要理解力。勾选语义检查 (LLM)后runSemanticLint会把每页的摘要frontmatter 前 500 字符拼进 Prompt让 LLM 以固定格式输出问题块src/lib/lint.ts---LINT: contradiction | warning | 两个页面的版本描述冲突--- entities/a.md 声称 X而 concepts/b.md 声称 Y…… PAGES: entities/a.md, concepts/b.md ---END LINT---用正则LINT_BLOCK_REGEX解析回LintResult并做了一道防误报过滤LLM 常把已经存在的页面误报为缺失missingPageAlreadyExists会对名称做 NFKC 归一化后精确比对命中即丢弃src/lib/lint.ts——这是针对非英文 Wiki 的实战修正。修复从发现到一键落地检查结果不是终点。在 src/components/lint/lint-view.tsx 中每类问题都有对应修复动作实际文本变换由 src/lib/lint-fixes.ts 完成问题一键修复动作孤立页面appendWikilink在推荐页面的## Related下自动插入[[该页]]失效链接rewriteWikilinkTarget把断链改写为候选页找不到候选时ensureBrokenLinkStub自动建一个占位 stub 页无出链appendWikilink给页面补上最相关页面的链接语义问题转入待审阅队列由人工决策批量修复还有一个细节多项问题若命中同一页面会先在内存中依次应用所有文本变换只写盘一次避免互相覆盖src/components/lint/lint-view.tsx。删除孤儿页则走级联删除连带清理向量块和全站引用。检查规则可配置按项目保存点界面左上角的齿轮可打开规则面板支持三个开关src/lib/lint-config.ts不报告孤立页面ignoreOrphan不报告无出链页面ignoreNoOutlinks忽略页面清单ignorePages每行一个 slug 或路径如archive/legacy-page配置以 JSON 保存在项目内.llm-wiki/lint-config.json随项目走。注意忽略清单按完整路径匹配忽略顶层foo不会误伤archive/foo——这个边界在测试中有专门覆盖src/lib/lint-structural-core.test.ts。上手建议新建 Wiki 后先跑一次纯结构检查不开语义快速清理断链和孤儿界面进度条可随时取消页面多起来后勾选语义检查重点看contradiction和stale警告把确实不要管的页面加进忽略清单保持结果列表干净善用转入待审阅把批量操作交给 Review 队列逐条确认避免误改。整套 Lint 源码集中在几个文件检查主流程 src/lib/lint.ts、结构算法 src/lib/lint-structural-core.ts、界面与修复 src/components/lint/lint-view.tsx、状态管理 src/stores/lint-store.ts。读懂它们你就掌握了 LLM Wiki 维持互联知识库健康的关键一环。【免费下载链接】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),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。