|
之前讲过 DeepSeek + Cherry 搭建本地知识库,这样的知识库比较初级,上传的文件限制较多。无法满足更多个性化需求。今天我们来看看 DeepSeek + dify 如何搭建自己的知识库。 Dify 作为同样开源的 AI 应用开发平台,提供完整的私有化部署方案。通过将本地部署的 DeepSeek 服务无缝集成到 Dify 平台,企业可以在确保数据隐私的前提下,在本地服务器环境内构建功能强大的 AI 应用。 以下是私有化部署方案的优势: 性能卓越:提供媲美商业模型的对话交互体验 环境隔离:完全离线运行,杜绝数据外泄风险 数据可控:完全掌控数据资产,符合合规要求
前置准备硬件环境: CPU >= 2 Core 显存/RAM ≥ 16 GiB(推荐)
软件环境: Docker Docker Compose Dify 社区版
开始部署1. 安装 Difygitclone https://github.com/langgenius/dify.git # 速度太慢可以用这个 git clone https://gitee.com/dify_ai/dify cddify/docker cp.env.example .env# 创建配置文件 更新上传文件大小配置(非必须)默认上传图片大小是10MB,上传视频大小是100MB,文件默认是50MB,如果有需要修改下面对应的参数。 打开上面复制出来的 .env 文件,修改如下参数: # Upload image file size limit, default 10M. UPLOAD_IMAGE_FILE_SIZE_LIMIT=10 # Upload video file size limit, default 100M. UPLOAD_VIDEO_FILE_SIZE_LIMIT=100 # Upload audio file size limit, default 50M. UPLOAD_AUDIO_FILE_SIZE_LIMIT=50 启动 Difydockercomposeup-d#如果版本是DockerComposeV1,使用以下命令:docker-composeup-d 如果 docker 拉取镜像太慢,可以设置镜像,加到后面即可: "registry-mirrors": [ "https://hub.rat.dev", "https://dockerhub.icu", "https://docker.wanpeng.top", "https://register.librax.org" ] 访问 Dify设置管理员与登录,Dify 社区版默认使用 80 端口。 # 本地环境 http://localhost/install 登录后
2. 将 DeepSeek 接入至 Dify接入在线 api 模型配置如果本地没有部署 DeepSeek ,可以直接用硅基流动的 API 接入。 硅基流动没有硅基流动 API Key 可以参考我之前的文章申请。DeepSeek太卡了?三种满血替代方案等你查收 设置好后可以看到有很多模型可以选择: 接入本地部署的 DeepSeek如果本地部署了 DeepSeek,可以接入本地的模型。点击 Dify 平台右上角头像 → 设置 → 模型供应商,选择 Ollama,点击安装。 这里用 Ollama 客户端,则需要在本机上部署 DeepSeek,Base URL 填写 http://本机IP:11434 即可。 再添加向量模型点击保存即可。
最终系统模型设置我这里直接使用硅基流动的了。 现在 DeepSeek 就正常接入到 Dify 啦。
知识库创建知识库分段选择dify的分段有个好处,设置分段以后,可以实时预览,可以根据预览效果,自己实时调整分段策略。dify 建议首次创建知识库使用父子分段模式。 通用模式系统按照用户自定义的规则将内容拆分为独立的分段。当用户输入问题后,系统自动分析问题中的关键词,并计算关键词与知识库中各内容分段的相关度。根据相关度排序,选取最相关的内容分段并发送给 LLM,辅助其处理与更有效地回答。 在该模式下,你需要根据不同的文档格式或场景要求,参考以下设置项,手动设置文本的分段规则。 分段最大长度,指定分段内的文本字符数最大上限,超出该长度时将强制分段。默认值为 500 Tokens,分段长度的最大上限为 4000 Tokens; 分段重叠长度,指的是在对数据进行分段时,段与段之间存在一定的重叠部分。这种重叠可以帮助提高信息的保留和分析的准确性,提升召回效果。建议设置为分段长度 Tokens 数的 10-25%; 文本预处理规则,过滤知识库内部分无意义的内容。提供以下选项: 替换连续的空格、换行符和制表符 删除所有 URL 和电子邮件地址
这里选择通用模式看看效果: 父子模式与通用模式相比,父子模式采用双层分段结构来平衡检索的精确度和上下文信息,让精准匹配与全面的上下文信息二者兼得。 其中,父区块(Parent-chunk)保持较大的文本单位(如段落),提供丰富的上下文信息;子区块(Child-chunk)则是较小的文本单位(如句子),用于精确检索。系统首先通过子区块进行精确检索以确保相关性,然后获取对应的父区块来补充上下文信息,从而在生成响应时既保证准确性又能提供完整的背景信息。你可以通过设置分隔符和最大长度来自定义父子区块的分段方式。 其基本机制包括: 
选择父子模式看看效果: 这么看区别不是很大。 继续选择索引方式和检索设置,都采用推荐设置: 这样知识库就创建成功了,等待嵌入处理完成。 使用创建应用点击工作室,我们可以看到有很多丰富的应用,包括聊天助手、Agent、工作流等 我们选择最简单的应用,聊天助手,点击聊天助手。 添加知识库创建好后添加知识库 点击召回设置: Score 阈值是设置本文片段的相似度阈值,这里设置 0.7 。 调试与预览
这样我们就可以发布了,发布之后返回工作室就可以看到刚刚创建的应用啦。
总结DeepSeek + Dify 的知识库构建功能确实强大,有多种分段索引模式可选,里面还有不少可以深入研究的东西,后续会慢慢整合更新~
|