以下是关于本地知识库的相关内容:
一、本地知识库进阶 如果想要对知识库进行更加灵活的掌控,需要使用额外的软件 AnythingLLM。它包含了所有 Open WebUI 的能力,并额外支持选择文本嵌入模型和向量数据库。 安装地址:https://useanything.com/download 。安装完成后进入配置页面,主要分为三步:
二、构建本地知识库 AnythingLLM 中有 Workspace 的概念,可以创建自己独有的 Workspace 与其他项目数据隔离。
三、RAG 是什么 利用大模型的能力搭建知识库是 RAG 技术的应用。在进行本地知识库搭建实操前,需先了解 RAG。 RAG 实现方法是检索增强生成(Retrieval Augmented Generation),过程包括文档加载、文本分割、存储、检索和输出。 文档加载可从多种来源加载,包括非结构化、结构化和代码等数据。 文本分割将文档切分为指定大小的块。 存储涉及将文档块嵌入转换成向量形式并存储到向量数据库。 检索通过算法找到与输入问题相似的嵌入片。 输出是将问题和检索出的嵌入片提交给 LLM 生成答案。
四、Obsidian 与 Cursor 结合 因为 Obsidian 浏览器剪藏插件强大而开始玩 Obsidian,想打造本地知识库加 AI 加持。Obsidian 的 AI 插件配置复杂,体验不佳。 发现 Cursor 能解决问题,主要有三类作用:
如果想要对知识库进行更加灵活的掌控,我们需要一个额外的软件:AnythingLLM。这个软件包含了所有Open WebUI的能力,并且额外支持了以下能力选择文本嵌入模型选择向量数据库[heading2]AnythingLLM安装和配置[content]安装地址:https://useanything.com/download当我们安装完成之后,会进入到其配置页面,这里面主要分为三步1.第一步:选择大模型1.第二步:选择文本嵌入模型1.第三步:选择向量数据库[heading2]构建本地知识库[content]AnythingLLM中有一个Workspace的概念,我们可以创建自己独有的Workspace跟其他的项目数据进行隔离。1.首先创建一个工作空间1.上传文档并且在工作空间中进行文本嵌入1.选择对话模式AnythingLLM提供了两种对话模式:Chat模式:大模型会根据自己的训练数据和我们上传的文档数据综合给出答案Query模式:大模型仅仅会依靠文档中的数据给出答案1.测试对话当上述配置完成之后,我们就可以跟大模型进行对话了[heading1]六、写在最后[content]我非常推崇的一句话送给大家:看十遍不如实操一遍,实操十遍不如分享一遍如果你也对AI Agent技术感兴趣,可以联系我或者加我的免费知识星球(备注AGI知识库)
因为利用大模型的能力搭建知识库本身就是一个RAG技术的应用。所以在进行本地知识库的搭建实操之前,我们需要先对RAG有一个大概的了解。以下内容会有些干,我会尽量用通俗易懂的描述进行讲解。我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,我们该怎么做呢?实现这一点的主要方法就是通过检索增强生成RAG(Retrieval Augmented Generation)。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给LLM。我们可以将一个RAG的应用抽象为下图的5个过程:文档加载(Document Loading):从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器,包括PDF在内的非结构化的数据、SQL在内的结构化的数据,以及Python、Java之类的代码等文本分割(Splitting):文本分割器把Documents切分为指定大小的块,我把它们称为“文档块”或者“文档片”存储(Storage):存储涉及到两个环节,分别是:将切分好的文档块进行嵌入(Embedding)转换成向量的形式将Embedding后的向量数据存储到向量数据库检索(Retrieval):一旦数据进入向量数据库,我们仍然需要将数据检索出来,我们会通过某种检索算法找到与输入问题相似的嵌入片Output(输出):把问题以及检索出来的嵌入片一起提交给LLM,LLM会通过问题和检索出来的提示一起来生成更加合理的答案[heading2]文本加载器(Document Loaders)[content]文本加载器就是将用户提供的文本加载到内存中,便于进行后续的处理
这几天因为看到了Obsidian的浏览器剪藏插件的强大(这个下节讲)所以开始玩Obsidian,想要搞一个符合自己要求的本地知识库再加上AI的加持。也装了几个Obsidian的AI插件,结果发现配置非常复杂,体验不太行,想要顺畅使用的话得看文档,甚至还有看文档都无法结局的恶性Bug,我得搜Github其他人的问题才能搞定。这些插件的作用主要是内置在Obsidian里面的AI助手,可以帮你检索你的笔记和基于笔记生成新的内容。然后我就想能不能用Cursor这些AI IDE解决这个问题,反正他解决的也是类似的问题,检索代码,回答代码问题,生成新的代码,HTML是标记语言,Markdown也是标记语言是吧。结果发现还真能用,而且非常顺滑,主要是三类作用:帮助你用模糊的问题检索你的笔记库,而不是关键字帮助你基于笔记库进行研究,可以结合多个笔记软件给出建议帮你生成和修改笔记,比如生成整个笔记文件或者修改你写的笔记文案教程里为了照顾大多数人我会用默认中文而且免费的Trae演示,但是由于现在AI IDE都大同小异所以你用Cursor或者Windsurf也可以看懂甚至,快捷键和按钮位置都一样的。