AIGC·非著名程序员
26-06-01 20:11 微博认证:微博新知博主 科技博主 头条文章作者 微博原创视频博主

今天聊一聊我打造的 LLM-Wiki 知识库,把整个设计思路跟大家讲清楚。

做知识库这件事,核心就两个环节:输入和输出。输入决定了你怎么把信息存进去,输出决定了你怎么把知识用出来。下面分别展开说。

1、输入:怎么存

输入这一块,支持两种方式。一种是直接贴链接,一种是粘贴文字内容。

贴链接的话,内置了爬虫工具,会自动帮你摘取网页里的正文内容。公众号、知乎、各种网页都支持,抓取完之后会转换成 Markdown 格式的文档存下来。

但存储这一步,做得比你想象的要细。AI 拿到一篇文章之后,不是原封不动地扔进去就完事了。它会先分析这篇内容,然后把文章拆分成多个知识节点。因为一篇文章里往往不只有一个观点,每一段可能都包含一个独立的概念或判断,AI 会把这些概念和知识节点单独提取出来,分别存储。

所以最终存下来的东西有三层:原文、拆分出来的知识节点、以及一个索引文件。这样做的好处是,后续输出的时候可以精准地找到某个具体的知识点,而不需要把整篇文章都读一遍。

另外,输入的 token 消耗基本是固定的。每存一篇文章,token 量就那么多,不会随着知识库变大而增加。真正费 token 的是输出环节,这个后面会讲怎么解决。

2、输出一:发芽报告

第一个输出功能,我叫它发芽报告,本质上是一个今日回顾。

比如你今天存了5篇文章,到了晚上你只需要说一句发芽报告,AI 就会自动把今天存入的这些知识节点进行碰撞融合,生成一篇新的文章。这篇文章逻辑通顺,而且会产生一些你单独看每篇文章时不容易想到的新观点。因为它把不同文章里的知识节点做了交叉链接,碰撞出了新的东西。

这里有个关键问题:假设你知识库里已经存了上千篇文章、上千个知识节点,生成发芽报告的时候要不要把所有节点都读一遍?如果读一遍,token 就爆了。

我的做法是用 grep 命令的方式来解决。AI 会把今天新存入的知识节点,通过图谱关系找到跟它们相关联的已有节点,挑出四五个最相关的来融合,生成一篇带有新观点的回顾文章。整个过程用的是命令式查询,不需要做大规模的意图识别,所以 token 消耗非常低。

我们都知道,大模型里真正费 token 的大头是意图识别。grep 命令的方式绕过了这一步,直接通过结构化的图谱关系去找节点,所以特别省。

3、输出二:主题融合生成

第二个输出功能是主题生成。你输入一个主题,AI 会从整个知识库里找到跟这个主题相关的内容,融合生成一篇新文章。

同样的问题:知识库里存了一千篇、一万篇文章怎么办?AI 不可能把所有文章都读一遍,上下文直接就爆了。

这里我采取的是分步筛选的方法。

第一步,AI 对你输入的主题做一次意图识别,拆分出十个左右的标签或关键节点。这一步费的 token 很少,就几个词的事。

第二步,基于这些标签,用 grep 命令的方式去知识库里做结构化查询,找到跟这些标签相关的文章,进行第一轮筛选。

第三步,再进行两三轮的逐步收窄,直到筛选出跟你的主题最接近的几篇文章。

最后一步,把筛选出来的这几篇文章的内容进行融合,生成一篇基于你输入主题的新文章。

整个查询过程,不管知识库里是一千篇还是一万篇文章,用的都是 grep 命令式的查询,基本不费 token。只有最开始的意图识别和最后的融合生成才会消耗 token。所以整个流程下来,token 量控制在几千以内就能完成,非常经济。

4、总结一下整体设计

输入端:链接或文字进来,AI 自动拆分成知识节点加原文加索引,token 消耗固定且低。

输出端:两种模式。发芽报告通过 grep 命令找到今天新节点的关联节点,碰撞融合生成新观点。主题生成通过意图识别加多轮 grep 筛选,精准定位相关内容再融合。两种模式都通过结构化查询绕过了大规模意图识别的 token 消耗,让整个知识库不管存了多少内容,输出的成本都是可控的。

这就是 LLM-Wiki 知识库的完整原理。核心思路就一句话:用结构化存储降低输入成本,用 grep 命令式查询降低输出成本,让知识库能真正用起来,而且用得起。

#How I AI##科技先锋官#

发布于 山东