如何基于AnythingLLM和Ollama构建本地知识库问答系统?

摘要:基于 AnythingLLM 及 Ollama 构建本地知识库 RAG Ollama AnythingLLM 1. 什么是 RAG RAG(Retrieval Augmented Generation)检索增强生成,是 2023 年最火热的
基于 AnythingLLM 及 Ollama 构建本地知识库 RAG Ollama AnythingLLM 1. 什么是 RAG RAG(Retrieval Augmented Generation)检索增强生成,是 2023 年最火热的 LLM 应用系统架构,它的作用简单来说就是通过检索获取相关的知识并将其融入 Prompt,让大模型能够参考相应的知识从而给出合理回答。 现在的大模型在企业应用中存在着很多挑战,首先第一点就是大模型的世界知识是完全来自于模型预训练中提供的数据,是有限的,那么企业本身的业务知识与产品知识,这些大模型都是不知道的。如果通过微调等方式去给大模型补充这些知识,成本高且可控性低,大部分场景是不适合的。以及大模型有比较严重的幻觉问题,也就是大模型在不熟悉的领域会提供不正确的答案,那在企业应用的场合里很多都是严肃的场景,对于这方面的接受程度是比较低的。 所以出现了 RAG。RAG 给大模型提供了一个外部的知识库,这个知识库可以是文档的集合也可以是网站或者是其他结构化非结构化的知识库,当用户提出问题的时候,通过 Embedding 向量化处理和关键字查询等各种检索方式,把相关内容从知识库中拉出来,并通过优先级重排等操作再提供给 LLM,LLM 就会根据检索出来的知识和用户的问题,做针对性的回答。 这个就好像给大模型一个企业私域知识的字典,大模型可以根据用户的问题一边查字典一边根据字典当中的说明进行回答。 给出一个 RAG 的运作流程图。 这种方式一方面给大模型提供了补充企业内部知识的一个途径,另外通过这些外部知识的约束,也可以大大降低大模型的幻觉问题,特别适合去做一些企业相关的问答产品,从给内部人员使用 AI 的业务助手,到给一些 C 端用户使用的 AI 客服或 AI 营销产品等。 RAG 现在已经成为了 AI 企业应用当中最容易落地的一种方式,各种方案与产品层出不穷。但是要想把 RAG 真的做好也不是一件易事,比如如何去组织知识、如何提高检索质量等,都会对 RAG 最后呈现的效果起到至关重要的作用。 所以从关于 RAG 的解释上就可以推断出,RAG 与 LLM 相结合其实就可以构建出一个私有的、本地知识库,这也是现在构建知识库的主要手段。 使用 Ollama 和 AnythongLLM 的组合就是很常见的一种构建知识库的手段。 2. 什么是 Ollama Ollama 是一个免费的开源项目,是一个专为在本地机器上便捷部署和运行 LLM 而设计的开源工具,可在本地运行各种开源 LLM,它让用户无需深入了解复杂的底层技术,就能轻松地加载、运行和交互各种LLM模型。 Ollama 最初是被设计为本地(主要是开发)运行LLM的工具,当然现在也可以在服务器(面向用户并发提供服务)上使用,并且兼容 OpenAI 接口,可以作为 OpenAI 的私有化部署方案。 Ollama 的特点: 本地部署:不依赖云端服务,用户可以在自己的设备上运行模型,保护数据隐私。 多操作系统支持:无论是 Mac、Linux 还是 Window,都能很方便安装使用。 多模型支持:Ollama 支持多种流行的 LLM 模型,如 Llama、Falcon 等,包括最近 Meta 公司新开源的大模型 llama3.1 405B 也已经更新,用户可以根据自己的需求选择不同的模型,一键运行。 易于使用:提供了直观的命令行界面,操作简单,上手容易。 可扩展性:支持自定义配置,用户可以根据自己的硬件环境和模型需求进行优化。 开源:代码完全开放,用户可以自由查看、修改和分发(虽然没有很多人会去修改) 3. 什么是 AnythingLLM 从上面的描述与说明中可以知道,对于企业来说幻觉是阻碍大模型应用的严重缺陷性问题,以及除了幻觉,通用大模型无法满足企业实际业务需求,涉及到知识局限性、信息安全等问题,企业不能将私域数据上传到第三方平台训练。 而 AnythingLLM 就是为解决这个问题而生的框架。它能在本地轻松构建基于 LLM 的 AI 应用,集成 RAG、向量数据库和强大的 Agent 功能,是高效、可定制、开源的企业级文档聊天机器人解决方案,能够将任何文档、网页链接、音视频文件甚至只是一段文字,转化为 LLM 可以理解的上下文信息,并在聊天过程中作为参考。还可以自由选择不同的 LLM 或向量数据库,并进行多用户管理和权限设置。 主要功能: 多用户管理和权限控制: 让团队协作更轻松,每个人都能安全地使用 LLM。 AI Agent 加持: 内置强大的 AI Agent,可以执行网页浏览、代码运行等复杂任务,自动化程度更高。
阅读全文