4.1 搭建个人知识库
想象一下,你手头有大量文档,你想快速知道这些文档的内容、内容之间的关联性,但是一个个阅读太费时间;或者你拥有某个牛人所有的资料,想模拟和这个牛人的对话,学习他的思想;或者你电脑上有一大堆法律文档,想快速找出相似案例,目前的检索方法不够高效。
面对这些情况,我们该如何处理呢?此时你可以用AI搭建一个知识库助手。
与搭建知识库密切相关的技术是RAG(Retrieval-Augmented Generation,检索增强生成),核心原理是利用向量化技术,将语义相似的内容聚集在一起。语义相似是指含义相近,即使字面表达不同。例如输入“我很生气”,系统可能会找到“愤怒”、“恼火”、“气愤”等词,这些词虽然不同,但都表达了类似的情绪——生气,RAG可以将这些情绪词汇聚集在一起。
RAG的工作流程可以分为检索、增强、生成三个阶段。
当用户提出问题时,系统会从预先准备的知识库中检索相关文档。例如,对于"公司的年假政策是什么?"这个问题,系统会搜索包含休假政策信息的文档。接下来,从检索到的文档中提取到的关键信息,将其与用户的原始问题结合,形成一个增强的提示(prompt),这个提示包含了更丰富的上下文信息。最后,大模型使用这个增强后的提示来生成回答。由于提示中包含了特定的领域知识,生成的回答通常比仅依赖模型本身的知识更加准确。
以下是常用的RAG工具。这些工具在开源社区中备受关注,并且更新迭代速度较快。
序号 | 名称 | 简介 | GitHub 仓库地址 |
---|---|---|---|
1 | Dify | 开源LLM应用开发平台,提供AI工作流、RAG管道等直观界面。 | https://github.com/langgenius/dify |
2 | Quivr | 你的第二大脑,利用 GenerativeAI 的力量成为您的个人助理! | https://github.com/QuivrHQ/quivr |
3 | Open WebUI | 面向 LLM 的用户友好型 WebUI | https://github.com/open-webui/open-webui |
4 | LangchAIn-Chatchat | 基于LangchAIn和ChatGLM等语言模型的RAG和Agent应用。 | https://github.com/chatchat-space/LangchAIn-Chatchat |
5 | chatgpt-on-wechat | 支持多种平台接入的聊天机器人,支持多种语言模型。 | https://github.com/zhayujie/chatgpt-on-wechat |
6 | anything-llm | 一款全栈应用程序,可让您将任何文档、资源或内容转换为上下文。 | https://github.com/Mintplex-Labs/anything-llm |
7 | FastGPT | 一个基于LLM的知识平台,提供数据加工、RAG检索和视觉AI工作流编排等能力。 | https://github.com/labring/FastGPT |
8 | DocsGPT | 一款先进的开源解决方案,可简化在项目文档中查找信息的过程。 | https://github.com/arc53/DocsGPT |
9 | RAGFlow | 基于深度文档理解的开源 RAG(检索增强生成)引擎。 | https://github.com/infiniflow/ragflow |
10 | Reor | 私人和本地的AI个人知识管理应用程序。 | https://github.com/reorproject/reor |
11 | haystack | LLM编排框架是构建高级RAG、问答和对话机器人的定制化生产级应用的解决方案。 | https://github.com/deepset-AI/haystack |
以RAGFlow为例,搭建个人知识库的流程如下:
- 打开官网(网址:ragflow.io)并注册账号。
- 创建项目:假如我想学习某位企业家的所有思想,我可以把他写的文章,接受采访的资源放入RAG,让AI模仿他的语气、思维方式回答问题。
- 上传文件(Add file):上传准备好的资料,系统将自动对上传的文件进行向量化处理。
- 创建助手(Create an Assistant):点击chat,然后选择"Create an Assistant"(创建助手)。按照系统指引,填写必要的配置信息。
- 开启聊天:配置完成后,就可以开始与你想学习的企业家对话了!这个AI助手将模仿这位企业家的思维方式和表达风格回答你的问题。回答问题时,会优先从上传的资料中检索信息回答问题。
除了RAGFlow外,FastGPT、Dify效果也不错,你可以根据需要选择。RAG还可以与本地化运行大模型工具相结合,实现本地RAG,可参考上一章节内容。