00:00:00Andrey Karpathy 刚刚把钥匙交给了我们
00:00:02指向他个人的 Obsidian RAG 系统。
00:00:06我给 RAG 打上了引号
00:00:07因为这个强大的 Obsidian 知识库
00:00:10没有向量数据库,没有嵌入
00:00:12也没有复杂的检索过程。
00:00:15然而它解决了完全相同的问题
00:00:17即那些声称能做的更复杂的 RAG 结构,
00:00:21那就是让我们的远程语言模型
00:00:23能够处理大量文档并回答问题
00:00:27并收集关于它们的准确信息。
00:00:30而这个基于 Obsidian 的系统最棒的地方
00:00:32在于它非常轻量级,基本上是免费的
00:00:36而且它是完美的折中方案
00:00:38对于独立操作员或小型团队来说。
00:00:41所以今天我要向你们展示
00:00:42Karpathy 的 Obsidian 知识系统是如何运作的,
00:00:45如何亲自搭建它
00:00:46以及它与传统 RAG 系统之间的区别
00:00:50这样你就知道这是否是适合你的选择。
00:00:52我们要创建这个 Obsidian 驱动的
00:00:54知识系统的过程,是昨天发布的
00:00:58在 Andre Karpathy 的一篇非常详尽的 Twitter 帖子中。
00:01:02现在,这篇文章最大的启示
00:01:04是我们能够创建
00:01:05大语言模型知识库
00:01:07它们的运作方式基本上相同
00:01:09就像 light RAG 或 RAG anything 之类的
00:01:12或任何其他基于 Obsidian 的 graph RAG 系统。
00:01:17而且我们能以一种相当简单的方式做到这一点
00:01:20只需对我们的文件系统进行巧妙的结构化
00:01:23以及我们实际摄入数据的方式。
00:01:25最终结果是我能够摄入
00:01:28相当可观的数据和文档量
00:01:32到我的 Obsidian 库中,并使用 Claude code
00:01:35来询问相关问题,
00:01:36理清不同事物之间的联系,
00:01:38也就是你所做的事情
00:01:41使用传统的 RAG 系统,
00:01:43但没有任何开销,设置也简单得多。
00:01:46正如 Andre 所展示的,设置看起来像这样。
00:01:49首先,我们有数据摄入。
00:01:51我们引入文章,
00:01:52我们引入论文,
00:01:53我们从互联网或任何地方引入代码库,
00:01:57然后把它们放进一个 raw 目录
00:02:00就在我们的 Obsidian 库内部。
00:02:02这基本上是暂存区
00:02:03在它被转化为 Wiki 之前。
00:02:05我们作为这个互动中的人类
00:02:07能够通过 Obsidian 看到这一切的发生。
00:02:10出于所有意图和目的,Obsidian 就是我们的前端。
00:02:13在这里我可以看到所有文档是如何排列的。
00:02:15在这里我可以阅读所有的 Wiki。
00:02:17所以它并没有被抽象到一个黑盒子里,
00:02:20不像一个 RAG 系统。
00:02:21即使是在像 Light RAG 这样的图 RAG 设置中,也挺难的,
00:02:25真正深入其中去查看每样东西。
00:02:29我的意思是,我可以,但尽管这看起来很酷,
00:02:31但这并不是很高效。
00:02:33从那里,你只需进行问答
00:02:35通过像 Claude code 这样的工具。
00:02:37正如 Andre 在这里所展示的,
00:02:38他原本以为他将不得不动用
00:02:40像 RAG 这样的东西,
00:02:42但大语言模型一直表现得很好
00:02:43在自动维护索引文件
00:02:45以及它所阅读的所有文档的简短摘要方面。
00:02:47这也是我们也能做到的事情
00:02:49通过一个相当简单的 Claude.md 文件,
00:02:52我会把它提供给你们。
00:02:53你会发现那个 Claude MD,
00:02:55以及一份书面指南
00:02:56附带了一堆提示词
00:02:57在我的免费 Chase AI 社区里。
00:03:00那里会有一个链接
00:03:01就在这个视频的描述中。
00:03:03说到 Chase AI,你也知道这会到来,
00:03:06快速推销一下我的 Claude code 大师班。
00:03:08几个星期前才发布,
00:03:09它是从零到 AI 开发者的最佳去处,
00:03:12特别是如果你不具备技术背景。
00:03:15你可以在置顶评论中找到链接。
00:03:18所以如果你认真想学习这个工具,
00:03:19请务必查看一下。
00:03:22现在,在我们进入具体的
00:03:24如何为你自己设置这个 Obsidian 系统之前,
00:03:28让我们来看看实际的文件结构
00:03:30因为这对于理解很重要
00:03:32数据是如何进入我们的库
00:03:34然后被转化为 Wiki 的。
00:03:36Obsidian 库是所有东西存放的地方。
00:03:39正如你会看到的,如果你从未用过它,
00:03:41当你下载 Obsidian 时,
00:03:42你需要指定一个特定的文件夹作为库。
00:03:45在我的案例中,它就直截了当地叫做 vault。
00:03:48那是 Obsidian 中所有内容的存放处。
00:03:50作为库的一个子文件夹,
00:03:52我们将有一个 raw 文件夹。
00:03:54raw 文件夹是所有研究资料存放的地方。
00:03:58任何我们想要手动包含在这些 Wiki 中的东西都会放在这。
00:04:01这基本上就是暂存文件夹。
00:04:02所以这就是所有原始数据保存的地方。
00:04:05这可以是 Markdown 文件。
00:04:06也可以是 PDF。
00:04:07而且我要教你们如何使用 Obsidian clipper
00:04:10来基本上把任何网页转换成 Markdown 文件
00:04:14并自动发送到 raw 文件夹。
00:04:16我们将有另一个子文件夹
00:04:18那就是 Wiki 文件夹。
00:04:19所以大语言模型会做的事情,
00:04:21Claude Code 会为我们做的事情,是按需进行的,
00:04:24或者你甚至可以把它变成一个技能或实现自动化,
00:04:27就是我们将它指向 raw 文件夹并说:
00:04:29“嘿,我想要你创建一个关于你一直在
00:04:33收集信息的任何主题的 Wiki。”
00:04:35从那里,它就会创建一个关于那个主题的 Wiki。
00:04:37你可以看到我们这里有三个不同的 Wiki,
00:04:41一个是关于 AI 智能体,一个是关于 RAG 系统,
00:04:43还有一个是关于内容创作。
00:04:45现在,在 Wiki 文件夹和这些子 Wiki 文件夹之间
00:04:50是总索引 Markdown 文件。
00:04:53这基本上就是一个列表
00:04:54列出了所有已经创建的不同 Wiki。
00:04:58因为其理念是当你,也就是你,
00:05:02当你和 Claude Code 对话时,好吧,
00:05:04那是那边的 Claude Code,然后说:
00:05:06“嘿,我想了解更多关于 AI 智能体的信息。
00:05:08我想要询问关于我的 Wiki 的问题。”
00:05:12那么,它会做什么呢?
00:05:13好吧,它会去库里查找
00:05:15因为你可能已经在那里了。
00:05:17然后它会去 Wiki 文件夹。
00:05:18它会去总索引文件夹说:
00:05:21“嘿,我们创建了哪些 Wiki?
00:05:23哦,他想知道 RAG 系统。”
00:05:26好的,它就转到 RAG。
00:05:28而 Wiki 文件夹本身也有索引文件
00:05:31用来拆解所有的额外内容。
00:05:33所以 Obsidian 赋予我们的
00:05:35以及这种文件结构赋予我们的
00:05:36是一条非常清晰的寻找信息的路径,
00:05:39即使我们有大量的信息在到处漂浮。
00:05:41这对 Claude Code 很有帮助
00:05:42因为它不会面临太大的问题
00:05:45去寻找数据。
00:05:46我们不需要运行一百万次工具调用
00:05:48来查看我们的文件结构中有什么。
00:05:50但它对你也有帮助,因为去哪里很清楚。
00:05:52例如,左边这里是我的 Obsidian 文件夹。
00:05:56我在 Obsidian 用户界面中,
00:05:57稍后我们会过一遍下载流程。
00:05:59但如果我想看一个 Wiki,我该怎么做?
00:06:01我就去 Wiki 文件夹。
00:06:03我有一个总索引文件
00:06:04列出了其中的所有内容。
00:06:06目前,它只有三样东西。
00:06:07但即便有 3000 样,也不会太难。
00:06:10然后从那里,你知道,我可以点击它。
00:06:12它会带我进入那个特定 Wiki 的索引。
00:06:16然后我可以查看里面的不同内容。
00:06:18就是这么简单。
00:06:19对 AI 来说也是这么简单,
00:06:21这就是为什么我们能够使用
00:06:22基本上只是一个 Markdown 文件结构
00:06:24来某种程度上模仿 RAG 系统。
00:06:27虽然那个理论很酷,
00:06:28现在让我们进入如何为你自己实际设置它。
00:06:31首先,你需要下载 Obsidian。
00:06:33你只需前往 obsidian.md,点击 Download Now,
00:06:37按照向导操作。
00:06:38它是完全免费的。
00:06:40然后你要指定某个文件夹作为库。
00:06:43只需创建一个,把它叫做 vault。
00:06:45对我来说这很简单,对你可能也管用。
00:06:47创建好库之后,
00:06:49我们现在需要在里面建立这个文件结构。
00:06:52最简单的方法就是使用 Claude Code。
00:06:54只需在库中打开 Claude Code。
00:06:57那就是我所在的目录。
00:06:59然后你要给它一个提示词
00:07:01告诉它去创建这个文件结构。
00:07:03现在,幸运的是,我已经创建好了提示词。
00:07:05所以你可以直接复制这个东西并粘贴到 Claude Code 中。
00:07:08现在,如果你像我一样,已经使用过 Obsidian
00:07:10一段时间了,你可能已经有了
00:07:13一堆文件夹在那里面。
00:07:14所以也许你不想把它叫做 raw。
00:07:17也许你想把它叫别的。
00:07:18关键在于你只需要指定
00:07:20某个文件夹,就像我说的,作为某种存放区域
00:07:23或暂存区域,让所有这些信息
00:07:25在被转化为 Wiki 之前倾倒在这里。
00:07:27所以根据需要进行调整。
00:07:28接下来的事情是创建一个 Claude.md 文件。
00:07:31个人助理类型的项目,像这样
00:07:33非常依赖 Markdown 的,使用 Claude.md 非常完美。
00:07:37这个 Claude.md 文件详细说明了
00:07:40知识库的规则,
00:07:41以及基本上如何遍历它。
00:07:43这样我们在提问时
00:07:44就不会浪费 Token 了。
00:07:46此外,我这里有一个完整的 Claude.md 模板提示词
00:07:50供你使用。
00:07:50这个 Claude.md 文件还会告诉 Claude
00:07:53如何构建这些 Markdown 文件。
00:07:55所以通过这种 Wiki 链接格式,
00:07:58文件遍历会变得非常容易。
00:08:00现在让我们来聊聊如何将内容
00:08:02引入这个 raw(原始)文件夹。
00:08:03也就是最初如何将数据导入我们的系统。
00:08:06嗯,一个超级简单的方法
00:08:08就是使用 Obsidian Web Clipper(网页剪藏器)。
00:08:10我会把它的链接放在课程里,
00:08:13或者你可以直接访问 obsidian.md/clipper。
00:08:16这只是一个 Chrome 扩展程序,
00:08:18它可以非常轻松地将网页转化为数据,
00:08:22变成一个 Markdown 文件。
00:08:23并在 Obsidian 内部查看这些文档。
00:08:25就是它处理图片比较费劲。
00:08:26它甚至根本不会把图片带进来。
00:08:27它只会把它们显示为一个链接。
00:08:29但我希望能直接在 Obsidian 里
00:08:31看到这些摄取文档中的图片。
00:08:33那我们该怎么办呢?
00:08:34我们可以使用一个 Obsidian 社区插件
00:08:37来帮助解决这个问题。
00:08:39Obsidian 的酷炫之处之一
00:08:41就是它的社区插件。
00:08:42那里有成千上万个插件。
00:08:43如果你在 Obsidian 界面中,
00:08:46我现在就在桌面端应用里。
00:08:47点击这里的齿轮图标,
00:08:50进入 "社区插件"。
00:08:52点击 "浏览"。
00:08:54然后搜索 "Local Images Plus"。
00:08:56下载、安装并开启它。
00:09:00确保它已启用。
00:09:01你可以通过查看社区插件标签页
00:09:03确认它是否已开启,
00:09:05看到这个小开关打开就行。
00:09:08现在,如果我们使用 Obsidian 网页剪藏器,
00:09:11我可以在这边的扩展程序里看到它,
00:09:13你看发生了什么。
00:09:15它立刻抓取了所有内容。
00:09:17如果我点击 "添加到 Obsidian",
00:09:19我就能看到整篇文章,包括图片。
00:09:21不过,在网页剪藏器里
00:09:24还有一件事需要设置,
00:09:25就是确保它能自动
00:09:26把内容拉取到 raw 文件夹中。
00:09:29我不想每次都手动操作。
00:09:30你只需要进入网页剪藏器的选项。
00:09:34我刚才右键点击了它。
00:09:35然后在左边显示 "默认" 的地方,
00:09:38我创建了自己的新模板,
00:09:39但如果你愿意,也可以用默认的,
00:09:42在这里找到位置和笔记位置。
00:09:47你需要把路径从 "clippings" 改为 "raw"。
00:09:52这样当你使用网页剪藏器时,
00:09:54它就会自动进入 raw 文件夹。
00:09:56所以,有了 Obsidian 网页剪藏扩展
00:09:59和图片社区插件,
00:10:01我们现在可以将互联网上的任何网页
00:10:04转化为用于构建 Wiki 的 Markdown 文件。
00:10:08但这只是数据漏斗之一。
00:10:10这是一个手动的方法。
00:10:11我们也可以让 Claude Code 来承担大量的繁重工作。
00:10:14比如,我想创建一个
00:10:16关于 Claude Code 技能的 Wiki。
00:10:17所以我告诉 Claude Code:
00:10:18“我们来创建一个关于 Claude Code 技能的 Wiki 吧。”
00:10:20“我已经往 raw 文件夹里放了一些信息,”
00:10:23“就是通过网页剪藏器拉取的内容。”
00:10:25“你去进行自己的研究,并带回相关的原始”
00:10:27“MD 文件来生成那个 Wiki。”
00:10:29那么它会做什么呢?
00:10:30它会去网上使用它的标准网页搜索,
00:10:32然后它会自己创建一个关于 Claude Code
00:10:36技能的 Wiki。
00:10:37所以你会发现,这个 raw 文件夹,
00:10:40这整个原始数据流水线,更多是为你准备的。
00:10:42那是当你想要手动放入某些信息时用的。
00:10:44当然你也可以让 Claude Code 来做,
00:10:46但 Claude Code 也足够聪明,它基本上可以
00:10:49进行研究,
00:10:50自己判断哪些内容相关,然后直接创建 Wiki。
00:10:53这个 raw 文件夹其实是为作为人类的你
00:10:55提供某种程度的组织管理。
00:10:58这是 Claude Code 返回的结果。
00:10:59它创建了 Claude Code 技能 Wiki。
00:11:02我们可以看到它在主索引(Master Index)中被引用了。
00:11:05如果我点击它,
00:11:07就会跳转到 Claude Code 技能的索引。
00:11:10目前它有四篇文章。
00:11:12这是技能概览文章。
00:11:15你可以看到它链接到了外部网站,同时也链接到了
00:11:18我们 Obsidian 库(Vault)中的不同文章。
00:11:21如果我点击 "技能生态系统",这里有更多内容。
00:11:25点击 "顶级技能",以此类推。
00:11:27一篇文章到另一篇文章之间有非常清晰的路径,
00:11:30以及它们之间的关联方式,
00:11:32这意味着当你向 Claude Code 询问这些
00:11:34文章和主题时,
00:11:35它回答问题的成本既低又快,
00:11:39这也就引出了一个显而易见的问题。
00:11:41我们到底还需要 RAG 吗?
00:11:43当我们看到像 LightRAG 这种设置时,
00:11:45你看了我最近关于 LightRAG 和 RAG 的几个视频,
00:11:48再看到 Obsidian 的设置如此简单,
00:11:51你可能会想,“既然这样,”
00:11:52“我为什么还要费心去搞那些”
00:11:55“更复杂的设置呢?”
00:11:56事实是,如果你是一个独立开发者、
00:11:59个人运营者,或者是一个不需要处理
00:12:02数千份文档的小团队,
00:12:04答案大概是:Obsidian 对你来说更有意义。
00:12:08它很轻量,你真的不需要 RAG。
00:12:11这些大语言模型,
00:12:12以及像 Claude Code 这样的外挂工具,足以应对
00:12:16你的使用场景。
00:12:17我们可以坐在这里深究
00:12:18Obsidian RAG 和真正 RAG 之间的区别。
00:12:21但关键在于规模,对吧?
00:12:24我们要处理的规模是数百万份文档吗?
00:12:27因为在某种规模下,
00:12:29使用专业的 RAG 系统
00:12:32会更便宜、更快速。
00:12:33无论 Claude Code 导航你创建的
00:12:38这个 MD 文件网络的能力有多强。
00:12:40但这个疑问你并不需要
00:12:42立刻得到确切答案。
00:12:44为什么不先从 Obsidian 这样的工具开始呢?
00:12:47如果很明显,
00:12:48你的规模已经超出了这个工具的处理范围,
00:12:51那就再转向 RAG。
00:12:53我觉得人们太纠结于
00:12:55解决这个问题了,其实去尝试、去实验就好了。
00:12:58使用像 Obsidian 这样的类 RAG 系统
00:13:01又不需要你付出什么成本。
00:13:03如果行不通,那就行不通,没关系。
00:13:05那就换成 LightRAG 吧。
00:13:06人们总是想在评论区里
00:13:09反复争论这个,动手试试就知道了。
00:13:11我想到了某个节点,你会非常清楚
00:13:14什么时候需要转向真正的 RAG 系统。
00:13:16但这种做法的好处是,
00:13:19大多数人其实并不需要真正的 RAG 系统。
00:13:21他们真的不需要,对吧?
00:13:22即使是在小型业务团队的情况下。
00:13:24所以,拥有一个像
00:13:27Obsidian 知识库这样经过妥善编排的系统,
00:13:30我认为对大多数人来说都是巨大的福音。
00:13:33希望这次拆解对你有帮助。
00:13:35一定要去看看 Andre 关于这个话题的帖子。
00:13:37他讲得非常详尽。
00:13:39别忘了查看免费的 Chase AI 学校。
00:13:41视频说明栏里有链接,
00:13:43那里有所有的提示词以及关于具体操作的文字说明。
00:13:47如果你在任何环节感到困惑,记得去看看。
00:13:50如果你想看那门大师课,
00:13:52也可以关注一下 Chase AI Plus。除此之外,
00:13:54请告诉我你的想法,我们下次见。