跳转至

06-10

今天搭建最小demo

今天我让DeepSeek接入Claude code先根据karpathy的最初思路llm-wiki.md,建立了一个最简单版的llm-wiki。并且上传到GitHub中,push了第一版的wiki系统。

wiki如今能支持DeepSeek的api。

第一次尝试:面对pku compiler course documentation 建立wiki

我把之前学的北大编译实践的实验文档下载了下来放到源文件中。

让我来尝尝咸淡。

真长啊,怎么会有这么多词条啊。

代码阅读(还没写reflection)

代码阅读顺序

第一步:看产出(Obsidian 里看,10 分钟)

打开 Obsidian,看点有代表性的页面:

  • wiki/index.md — wiki 的目录,了解生成的内容结构

  • 随便打开几个 [[page]] — 看页面长什么样,感受交叉引用的密度

  • Graph view(左边工具栏点图谱图标)— 看知识网络的形状,哪些页面是枢纽

  • 看一个页面的 Backlinks(右侧面板)— 感受「哪些其他页面引用了这个页面」

第二步:理解 Prompt(最重要,20 分钟)

wiki_engine/llm_client.py

这是整个系统的核心。重点看这三个东西:

名称 作用 说明
BASE_SYSTEM_PROMPT 告诉 LLM「你是 wiki 维护者」 定义了 LLM 的角色和行为准则
INGEST_PROMPT_TEMPLATE 告诉 LLM 怎么处理新资料 定义了输出格式——LLM 就按这个格式返回结构化结果
QUERY_PROMPT_TEMPLATE / LINT_PROMPT_TEMPLATE 查询和检查的指令 同理

关键认知:在这个系统里,Prompt 就是「代码」。你通过自然语言指令编程,LLM 执行。这和传统编程的区别只是——编译器变成了 LLM,C++ 语法变成了 markdown格式指令。

下面的 DeepSeekClient._call_api() 和 AnthropicClient._call_api() 是纯粹的网络调用——怎么把 prompt 发给 API、怎么取回结果。跟调用任何 HTTP API没本质区别

第三步:理解编排(15 分钟)

wiki_engine/engine.py

重点看三个方法的流程:

  • ingest() — 读文件 → 调 LLM → 解析输出 → 写页面 → 更新 index → 记 log

  • query() — 搜 index → 读页面 → 调 LLM → 展示答案(可选保存为页面)

  • lint() — 读全部页面 → 调 LLM → 展示报告

关键认知:Engine 做的是「体力活」(文件 I/O、解析、index 维护),LLM 做的是「脑力活」(理解内容、写文章、找联系)。这种分工是这个架构的核心。

方法 _parse_ingest_result() 值得细看——它展示了如何把 LLM 的自然语言输出解析成结构化的数据(页面列表、更新列表、交叉引用等)。这是 AI应用中常见的模式:LLM 输出半结构化文本 → 正则解析 → 变成程序可操作的数据

第四步:基础设施(10 分钟)

wiki_engine/indexer.py   — index.md 的维护逻辑(怎么加条目、怎么更新摘要)

wiki_engine/logger.py    — log.md 的追加逻辑(怎么记录操作、怎么 grep)

第五步:入口(5 分钟)

cli.py                   — argparse 子命令,调用 engine

config.yaml              — 所有可配置项

总结:这个系统的「骨架」

你 → cli.py → engine.py → llm_client.py → DeepSeek API
                      ↓              ↑
                indexer.py    system prompt(核心逻辑)
                logger.py
                      ↓
                wiki/*.md(持久化产物)

从外到内读一遍,你应该能理解「用 LLM 构建应用」的基本模式:Prompt 定义行为,Engine 做编排,文件系统做持久化,LLM API做推理。这和你写过的任何传统程序本质上是一样的——只是有一部分逻辑不是用代码写的,而是用自然语言写的。

reflection:

产出

词条简介的末尾几乎都将完整的句子从中截断了。

[[awesome-sysy-repo.md]] — The **awesome-sysy** repository is a GitHub repository associated with the PKU compiler course. It c

写了这么多,没有什么阅读欲望。