Anything LLM 是一款基于 RAG 架构的本地知识库工具。通俗来说,它能够将文档、网页等零散数据源与你本地运行的大语言模型(LLM)相结合,打造一个能够精准回答专属问题的知识库问答系统。核心思路是让大模型“记住”你的私有资料,而不仅仅局限于通用知识。该工具支持接入主流模型的 API,如 OpenAI、DeepSeek 等均可顺利集成。
环境配置与下载安装过程相当省心,基本没有复杂的坑点。安装完成后打开 Anything LLM,第一步需要选择模型。这里推荐直接使用 Ollama,工具会自动列出本地已安装的模型,你只需挑选一个即可。
接下来需要配置 Embedding(嵌入模型)和 Vector Database(向量数据库)。这两个概念容易混淆,我们分开解读。
- Embedding(嵌入):你可以将其理解为“翻译官”——它将本地文件中的文本、表格等内容转换成机器可读的“数字编码”。而且它有这样一个特性:语义相近的文本,其对应的数字编码在空间中也彼此靠近。例如,“苹果”与“水果”的向量距离很近,而“苹果”与“汽车”则相距甚远。
- Vector Database(向量数据库):它专门用来存储上述“数字编码”的仓库,且检索速度极快。当你提出一个问题时,它先将问题翻译为向量,然后迅速从仓库中提取出最相关的若干段落。举个例子,询问“苹果是什么?”时,它就会搜索“水果”“红色”“圆形”等相关的向量片段。
由于之前已经选过一次,系统会记住之前的配置,你只需要输入一个 Workspace(工作区)名称即可。不同工作区可以配置不同的知识库,彼此互不干扰。接着会显示一些引导提示,你可以先在设置中将语言切换为中文——毕竟母语界面更舒适。
初始化完成后,如果对默认的嵌入模型或向量数据库不满意,随时可以前往设置中更换。
嵌入模型的质量至关重要,它的处理精度直接决定了后续知识库回答的准确性。我们可以先选用系统自带的免费嵌入模型——完全在本地运行,无需付费,效果也足以满足日常使用。
向量数据库同样选择默认的 LanceDB,同样是本地免费方案,起步阶段完全够用。
初始设置跑通之后,我们来测试一下实际运行效果。
到这一步,基本就可以正常进行对话了。
Anything LLM 设置知识库
知识库的质量直接决定了模型基于它回答的上限。一个 AI 友好的知识库,首先需要层次分明——按主题、领域或功能分类,从宏观到具体,就像图书馆按分类摆放图书一样。其次要便于检索,需要有精准的关键词索引和全文搜索,最好还能实现智能联想,帮助你快速定位。更进一步,如果能利用知识图谱、交叉引用将数据串联成知识网络,那就会更加理想。
为了快速测试,我们让 AI 帮助生成一份测试知识库数据,格式为 MarkDown。
然后点击工作区的上传图标,即可将文件上传。
Anything LLM 支持上传的文件类型相当丰富:TXT、Markdown、PDF、Word、PPT、Excel、CSV、JSON……基本上常见的文本和表格文件都能处理。
我们将刚才生成的知识库文件上传,添加到当前工作区,然后保存。
接下来进行测试。实际效果不错,知识库中的内容基本能被准确引用。
Anything LLM 的 API 调用
不过仅仅在客户端内使用,局限性仍然比较明显。Anything LLM 贴心地提供了 API 调用能力,这样我们就可以通过代码灵活定制各种场景——例如搭建一个个人知识管理工具,或者为企业部署一个内部智能客服。
Anything LLM 本地启动后的默认端口是 3001。在调用 API 之前,需要先搞清楚两个核心概念:
- Workspace:一个独立的工作环境,用于管理特定主题或项目相关的文件与数据。上传、配置、对话都在此空间内完成,不同工作区之间数据隔离、互不干扰,方便分类管理。
- Thread:工作区中的具体对话记录,即一次聊天的完整过程。它会记录你提出的所有问题以及模型的回答,保持上下文连贯。一个工作区可以创建多个 Thread,分别处理不同的问题,也便于后续追溯。
在设置 — 工具 — API 密钥下可以创建自己的 API 密钥,同时还能查看 Anything LLM 提供的详细 API 文档。
文档中列得非常详细,基本上客户端能实现的功能,API 都能完成:各种设置、知识库上传、与大模型对话……每个接口都给出了具体参数,甚至可以直接在线测试调用。
最常用的当然是与大模型聊天的接口——因为交互都发生在 Workspace 下的 Thread 中。关键参数有两个:slug 和 threadSlug,它们分别对应 Workspace 和 Thread 的唯一标识。在客户端中看不到这两个标识,不过你可以通过接口新建 Workspace 和 Thread 来获取,或者直接查询已有的标识。
接下来大家就可以自由发挥了——利用 API 搭建自己的专属知识库应用,其实门槛比想象中低得多。
