Dify开发Deepseek本地知识库检索应用

之前有使用AnythingLLM以及Page Assist来加载本地文档作为知识库进行上下文聊天背景,但效果不是很理想(也有可能没玩明白),今天使用本地部署的Dify自定义开发一个相同功能的应用。

💞更多内容,可关注公众号“ 一名程序媛 ”,我们一起从 0 - 1 学编程💞

1 Ollama运行大模型

这个教程已经很多了,有不懂的也可以参考之前的文章按步走即可,这里重点提一下要拉取的模型

ollama pull deepseek-r1:1.5b
ollama pull nomic-embed-text

确保Ollama is running...

Dify 》 设置 》 模型供应商中将拉取的模型添加进来

2 添加知识库

切换到“知识库”界面,点击“创建知识库
拖动本地文档以上传,点击“下一步”进行“知识库预处理”,也即“分段和清洗

这一步是关键,分段的结果直接决定着后续知识招回的结果
通过设置“分段标识符”来解析我们自己的文档,点击“预览块”来查看分段结果,如果非预期,则调整标识符后,再次预览,如果始终达不到预期分段效果,则要考虑修改源文档后再次上传处理

分段预览Ok后,索引方式可选择“经济”或“高质量”,描述里已经说的很清楚,经济方式不消耗tokens,但效果可能不理想
这里选择“高质量”,Embedding模型选择Ollama拉取的nomic-embed-text

检索设置可默认“向量检索”,也可选择“混合检索”效果可能会更好
最后“保存并处理”,等待完成即可

3 创建空白应用

  1. 回到“工作室”界面,点击“创建空白应用
  2. 应用类型选择“Chatflow”,这种可以反复询问确认以贴合本意
  3. 设置一个可识别的名称,“创建”即可

4 编排本地知识库应用

默认可能已经添加了三个节点:开始,LLM大语言模型,直接回复

不管默认如何,我们在“开始”节点之后添加一个“知识检索”节点,右侧会显示节点属性

  • 我们在“查询变量”里选择“开始”下的“sys.query”变量,也即用户聊天窗口中的输入内容
  • 再在“知识库”属性下添加刚才建立的本地文档知识库

点击“LLM”大模型节点,在其属性设置中“模型”选择“deepseek-r1:1.5b

  • 上下文”选择“知识检索”下的“result”变量
  • SYSTEM”提示词可编辑为如下内容

你要根据用户输入的问题{{#sys.query#}}和提供的参考{{#context#}},找出最符合的一条记录,
然后直接输出找到的这条最符合的记录。

点击“直接回复”节点,在回复内容中直接使用“LLM”下的“text”变量即可

5 完善应用

完成以上操作,一个应用也就完成了,但效果如何,还需要反复调试
点击“预览”,尝试交流一下,根据deepseek思考的过程,可以知道我们给出的提示词是否Ok,如果让大模型很矛盾,则我们要回头去调整提示词
如果看到思考过程中,对于检索出来的片段,deepseek不能很好的获取我们的问题结果,则要考虑是不是我们提供的数据定义不够明确,考虑是否需要完善知识库

经过反复调试,你终将拥有一个你自己打造的听话又适用的AI助手,不会“”回答了!

💞更多内容,可关注公众号“ 一名程序媛 ”,我们一起从 0 - 1 学编程💞
在这里插入图片描述

<think>嗯,用户想在Docker里配置DifyDeepSeek连接本地知识库。首先,我需要回忆一下DifyDeepSeek的基本配置步骤。根据引用[3],Dify的安装需要克隆仓库、设置环境变量并用docker compose启动。那如何让DeepSeek集成进去呢?可能需要在Dify的配置里指定模型路径或API端点,尤其是本地部署的DeepSeek模型。 接下来,本地知识库的连接。Dify支持RAG,可能需要将本地的文档路径挂载到Dify的容器里,或者配置数据库连接。用户提到的是本地知识库,所以可能是指文档存储的位置。在docker compose文件中,可能需要添加volume挂载,把宿主机的文档目录映射到容器内相应的路径。 然后,检查环境变量,特别是模型相关的设置,比如DEEPKEEP_MODEL_PATH或者API密钥。如果DeepSeek是通过API访问的,可能需要配置API密钥;如果是本地运行的模型,可能需要设置本地服务的地址和端口。 还要考虑网络配置,确保Dify容器能访问DeepSeek服务。如果DeepSeek也在Docker中运行,可能需要使用同一个Docker网络,或者通过links连接。用户的问题可能涉及到多个容器之间的通信,需要确认docker compose中的服务定义是否正确关联。 另外,查看Dify的文档是否有关于集成本地模型的具体步骤,比如修改哪个配置文件或环境变量。引用[3]提到在.env文件中配置环境变量,可能需要在这里添加DeepSeek的相关参数。 最后,测试配置后的系统是否能正确调用DeepSeek处理知识库的数据。可能需要进入Dify的管理界面,创建应用并选择DeepSeek作为模型,然后上传文档测试RAG功能。如果遇到连接问题,检查日志,docker compose logs 服务名,看看是否有网络错误或配置错误。 总结步骤应该是:安装Dify,配置环境变量,部署DeepSeek模型,挂载知识库目录,设置模型连接参数,启动服务并测试。需要确保每一步的配置正确,特别是路径和网络设置。</think>### 分步指南:Docker 中配置 DifyDeepSeek 连接本地知识库 #### 1. 基础环境准备 **步骤说明**:确保 Docker 服务已正确安装并运行 ```bash # 启动 Docker 服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker ``` 引用[^1]提到的基础操作需优先完成,确保容器环境正常[^1]。 --- #### 2. 部署 Dify 平台 **步骤说明**:通过 Docker Compose 启动 Dify 容器 ```bash # 克隆 Dify 仓库并进入目录 git clone https://github.com/langgenius/dify.git cd dify/docker # 复制环境变量模板并修改配置 cp .env.example .env # 编辑 .env 文件(需指定本地知识库路径和模型参数) vim .env # 启动 Dify 容器 docker compose up -d ``` 在`.env`文件中需关注以下关键参数: ```bash # 本地知识库存储路径映射(示例) VOLUME_PATH=/path/to/local/knowledge:/app/knowledge # DeepSeek 模型集成参数(根据实际部署方式调整) DEEPSEEK_API_KEY=your_api_key DEEPSEEK_MODEL_ENDPOINT=http://deepseek-container:port/v1 ``` 引用[^3]强调了环境变量对服务连接的重要性[^3]。 --- #### 3. 配置 DeepSeek 本地服务 **场景分析**: - **若使用 API 服务**:直接在 Dify 后台配置 API 密钥和端点 - **若本地部署模型**:需在 Docker 中运行 DeepSeek 容器并与 Dify 网络互通 **示例配置**: ```bash # 创建共享网络(若需要容器间通信) docker network create ai-network # 启动 DeepSeek 容器(假设已构建镜像) docker run -d --name deepseek \ --network ai-network \ -p 8000:8000 \ deepseek-image:latest ``` 在 Dify 的模型管理界面添加自定义模型,填写容器内服务地址。 --- #### 4. 集成本地知识库 **操作步骤**: 1. 在 Dify 控制台创建应用,启用 **RAG 功能** 2. 通过 **数据集管理** 上传本地文档(需确保容器内路径可访问) 3. 在应用工作流中绑定 DeepSeek 模型和知识库数据集 **关键配置点**: - 挂载本地知识库目录到容器(通过 Docker 卷映射) - 数据集解析设置需匹配文档格式(如 PDF/Markdown) --- #### 5. 验证与调试 **验证方法**: ```bash # 查看容器日志确认服务状态 docker compose logs -f dify-worker # 测试知识库检索功能 curl -X POST http://localhost/api/v1/knowledge-test \ -H "Content-Type: application/json" \ -d '{"query": "测试问题"}' ``` 若返回结果包含知识库内容,则集成成功。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值