|
落地知识库,常见的方案有哪些?以下是三种落地知识库方案
一、基于在线平台 以Dify为例,了解如何基于平台搭建Agent+RAG的知识库 1、Dify 什么是Dify(Define & Modify)?Dify是一个开源的大语言模型(LLM)应用开发平台(https://dify.ai/zh),旨在简化和加速生成式AI应用的创建和部署。该平台结合了后端即服务(Backend as Service, BaaS)和LLMOps的理念,为开发者提供了一个用户友好的界面和一系列强大的工具,使他们能够快速搭建生产级的AI应用。它支持多种大型语言模型,如Claude3、OpenAI等,并与多个模型供应商合作,确保开发者能根据需求选择最适合的模型。Dify通过提供强大的数据集管理功能、可视化的Prompt编排以及应用运营工具,大大降低了AI应用开发的复杂度。
2、Dify特点 1)低代码/无代码开发:Dify通过可视化的方式允许开发者轻松定义Prompt、上下文和插件等,无需深入底层技术细节。 2)模块化设计:Dify采用模块化的设计,每个模块都有清晰的功能和接口,开发者可以根据需求选择性地使用这些模块来构建自己的AI应用。 3)丰富的功能组件:平台提供了包括AI工作流、RAG管道、Agent、模型管理等丰富功能组件,帮助开发者从原型到生产的全过程。 4)支持多种大语言模型:Dify已支持主流的模型,开发者能够根据自己的需求选择最适合的模型来构建AI应用。 3、应用场景 Dify提供四种基于LLM构建的应用程序,可以针对不同的应用场景和需求进行优化和定制。 Dify + RAG搭建知识库
如何将文档上传到Dify知识库构建RAG?将文档上传到Dify知识库的过程涉及多个步骤,从文件选择、预处理、索引模式选择到检索设置,旨在构建一个高效、智能的知识检索系统。
1) 创建知识库:Dify主导航栏中的“知识”,在此页面可以看到已有的知识库。 创建新知识库:拖放或选择要上传的文件,支持批量上传,但数量受订阅计划限制。 空知识库选项:如果尚未准备文档,可选择创建空知识库。 外部数据源:使用外部数据源(如Notion或网站同步)时,知识库类型将固定,建议为每个数据源创建单独知识库。
2) 文本预处理与清理:内容上传到知识库之后,需要进行分块和数据清洗,这个阶段可以理解为内容的预处理和结构化。 自动模式:Dify自动分割和清理内容,简化文档准备流程。
自定义模式:对于需要更精细控制的情况,可选择自定义模式进行手动调整。 3) 索引模式:根据应用场景选择合适的索引模式,如高质量模式、经济模式或问答模式。 高质量模式:利用Embedding模型将文本转换为数值向量,支持向量检索、全文检索和混合检索。
经济模式:采用离线向量引擎和关键字索引,虽然准确率有所降低,但省去了额外的 token 消耗和相关成本。
问答模式:系统会进行文本分词,并通过摘要的方式,为每段生成QA问答对。 4) 检索设置 (1)在高质量索引模式下,Dify 提供三种检索设置:向量搜索、全文搜索、混合搜索 向量搜索:将查询向量化,计算与知识库中文本向量的距离,识别最接近的文本块。
全文搜索:基于关键字匹配进行搜索。 混合搜索:结合向量搜索和全文搜索的优势。 (2)在经济索引模式下,Dify 提供单一检索设置:倒排索引和TopK 倒排索引:一种为快速检索文档中的关键字而设计的索引结构。 TopK和分数阈值:设置检索结果的数量和相似度阈值。 Dify + Agent 如何在Dify平台搭建Agent?在Dify平台上,通过选择模型、编写提示、添加工具与知识库、配置推理模式及对话开启器,最后进行调试预览并发布为Webapp,实现Agent的创建与部署。 1) 探索与集成应用模板 Dify平台提供了丰富的“探索”(Explore)部分,其中包含多个代理助理的应用模板。用户可以直接将这些模板集成到自己的工作区中,快速开始使用。同时还允许用户创建自定义代理助理,以满足特定的个人或组织需求。 2) 选择推理模型 代理助理的任务完成能力很大程度上取决于所选LLM模型的推理能力。建议使用如GPT-4等更强大的模型系列,以获得更稳定、更精确的任务完成结果。 3)编写提示与设置流程 在“说明”(Instructions)部分,用户可以详细编写代理助理的任务目标、工作流程、所需资源和限制条件等提示信息。这些信息将帮助代理助理更好地理解并执行任务。 4) 添加工具与知识库 工具集成:在“工具”(Tools)部分,用户可以添加各种内置或自定义工具,以增强代理助理的功能。这些工具可以包括互联网搜索、科学计算、图像创建等,帮助代理助理与现实世界进行更丰富的交互。 知识库:在“上下文”(Context)部分,用户可以整合知识库工具,为代理助理提供外部背景知识和信息检索能力。 5) 推理模式设置 Dify支持两种推理模式:Function Calling和ReAct Function Calling:对于支持该模式的模型(如GPT-3.5、GPT-4),建议使用此模式以获得更好更稳定的性能。 ReAct:对于不支持Function Calling的模型系列,Dify提供了ReAct推理框架作为替代方案,以实现类似的功能。 6)配置对话开启器 用户可以为代理助理设置对话开场白和初始问题,以便在用户首次与代理助理交互时,展示其可以执行的任务类型和可以提出的问题示例。 7) 调试与预览 在将代理助理发布为应用程序之前,用户可以在Dify平台上进行调试和预览,以评估其完成任务的有效性和准确性。 8) 应用程序发布 一旦代理助理配置完成并经过调试,用户就可以将其发布为Web应用程序(Webapp),供更多人使用。这将使得代理助理的功能和服务能够跨平台、跨设备地提供给更广泛的用户群体。
二、基于开源项目 Langchain-Chatchat本地知识库(开源模型)搭建 LangChain-Chatchat 基于 ChatGLM 等大语言模型与 LangChain 等应用框架实现,开源、可离线部署的 RAG 与 Agent 应用项目,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。 1、Langchain-Chatchat 介绍 此项目支持市面上主流的开源 LLM、 Embedding 模型与向量数据库,可实现全部使用开源模型离线私有部署。同时也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。
1)实现原理 1. 加载文件 → 2. 读取文本 → 3. 文本分割 → 4. 文本向量化 → 5. 问句向量化 → 6. 在文本向量中匹配最相似的 Top K 个 → 7. 将匹配的文本作为上下文,结合问题构造 Prompt → 8. 提交至 LLM 生成回答,如下图所示
从文档处理角度来看,实现流程如下:
2)功能介绍 3)模型框架支持 本项目中已经支持市面上主流的如 GLM-4-Chat 与 Qwen2-Instruct 等新近开源大语言模型和 Embedding 模型,这些模型需要用户自行启动模型部署框架后,通过修改配置信息接入项目,本项目已支持的本地模型部署框架如下:
除上述本地模型加载框架外,项目中也为可接入在线 API 的 One API 框架接入提供了支持,支持包括 OpenAI ChatGPT、Azure OpenAI API、Anthropic Claude、智谱清言、百川 等常用在线 API 的接入使用。 2、构建本地知识库的步骤 1). 环境配置 在构建本地知识库之前,需要确保满足一定的硬件与软件要求。硬件方面,推荐使用NVIDIA显卡配置,具体取决于模型大小。软件方面,需要确保Python环境和必要的依赖库安装,如langchain、faiss、chroma等。 2). 模型下载与初始化 使用Git LFS安装工具来下载模型文件,并确保模型文件夹名称与配置文件中的模型名称一致。接着,通过示例脚本初始化知识库和配置文件,包括设置大模型存放路径、嵌入模型等。 3). 数据处理与向量化 构建知识库的关键步骤之一是数据处理与向量化。这包括读取文本数据、将文本分割成可管理和理解的部分、使用嵌入模型将文本转换为向量等。Langchain-Chatchat提供了完善的工具链来支持这些步骤,如DirectoryLoader用于加载文件夹中的文件,CharacterTextSplitter用于切割文档,以及OpenAIEmbeddings用于计算嵌入向量。 4). 匹配查询与生成答案 在向量库中查找与问题最相似的部分,并集成上下文和问题以生成答案,是使用Langchain-Chatchat构建知识库问答机器人的另一个关键步骤。这通常涉及使用语言模型(LLM)进行理解和生成。Langchain-Chatchat支持多种开源模型和向量数据库,如ChatGLM、LLaMA、Qwen、Yi等模型,以及FAISS、Chroma、Milvus等向量数据库,满足不同需求与场景。 5). 部署与访问 完成上述步骤后,可以通过一键启动服务来访问Web UI或API服务。Langchain-Chatchat提供了详细的启动指南和访问链接,使得开发者能够轻松地在本地或网络受限环境中部署问答机器人。 三、从0开始搭建 1、本地部署 RAG 知识库的核心优势 数据隐私保护:所有数据在本地处理,避免敏感信息外泄,尤其适合教育、医疗等隐私敏感领域812。 成本控制:长期使用成本显著低于依赖云服务 API,老旧设备(如 16GB 内存 + 8GB 显存)也能运行12。 定制化能力:支持私有知识库嵌入(如企业文档、个人笔记),提升模型回答的精准性812。 离线可用性:无需网络连接,解决服务器拥堵问题,响应速度更快 2、开源模型(可本地部署) 1).Meta 的 LLaMA 系列(美国) LLaMA/LLaMA 2:参数规模 7B-70B,开源推动社区衍生模型(如 Alpaca、Vicuna)。 应用场景:学术研究、定制化开发。 2).Mistral AI 系列(法国) Mistral 7B/8x7B:高效小参数模型,性能媲美更大规模模型。 Mixtral 8x22B:混合专家(MoE)架构,支持多语言。 3).中国开源模型 智谱AI的 ChatGLM-6B/GLM-4:中英双语优化,支持低成本部署。 零一万物 Yi 系列:Yi-34B 在多项基准测试中表现优异。 深度求索的 DeepSeek:数学与代码能力突出。 3 从零到一使用Ollama搭建本地大模型与知识库 Ollama是一款简单易用的开源工具,能够让你在本地轻松运行各种大模型。它支持多种操作系统,包括Windows、Mac和Linux,甚至可以在树莓派这样的低功耗设备上运行。Ollama的安装和使用都非常简单,特别适合初学者和想要快速搭建本地大模型的开发者。 1)、安装Ollama 下载与安装 访问Ollama的官方网站:https://ollama.com/ 点击下载按钮,选择适合你操作系统的版本进行下载。 安装包下载完成后,双击运行安装程序,按照提示完成安装。 验证安装 安装完成后,打开命令行工具(在Windows中是CMD或PowerShell,Mac中是Terminal)。 输入ollama -v,如果显示版本号,则表示安装成功。 2)、配置Ollama 为了避免大模型占用过多C盘空间,你可以修改Ollama的模型保存路径。
修改环境变量 右键点击“此电脑”(Windows)或“系统偏好设置”(Mac),选择“属性”或“高级系统设置”。 进入“环境变量”设置,新建一个名为OLLAMA_MODELS的变量,并指向你希望存放模型的目录。 3)、下载并运行大模型 选择并下载大模型 Ollama支持多种大模型,你可以在Ollama的官方模型库中选择合适的模型进行下载。 例如,要下载经过中文微调的Llama3-8b大模型,你可以在命令行中输入:
运行大模型 下载完成后,模型会自动启动一个对话界面。你可以开始与它进行交互了。 4)、安装并使用AnythingLLM AnythingLLM是一个功能强大的大模型开发工具,可以帮助你更好地管理和使用本地大模型。 下载与安装 访问AnythingLLM的官方网站:https://useanything.com/ 下载并安装适合你操作系统的版本。 配置并连接Ollama 打开AnythingLLM,在配置界面中输入Ollama服务器的地址(默认是http://127.0.0.1:11434)。 选择你想要使用的Ollama模型。 5)、创建本地知识库 上传并导入文档
在AnythingLLM中,创建一个新的工作空间,并上传你的私有知识文档。 将上传的文件导入到工作空间中,并等待文件向量化入库。 设置知识库模式
根据你的需求,选择合适的知识库模式。 6)、应用与扩展 现在,你已经成功搭建了一个本地的大模型与知识库,可以随时随地与它进行交互了。 你还可以根据需要,继续下载和运行其他大模型,或者扩展你的知识库。 |




























