使用 Dify + DeepSeek 打造自己的本地知识库问答

前言

扣子大家大部分同学应该不会太陌生,可能有的同学或多或少都已经用过了,但是总觉得把一些信息源放到上面会泄漏(特别是公司内部使用,有一些内容可能涉密),此时我们便可以自己部署一个类似 Coze 的开源项目 - Dify。

 相关应用描述 

接下来是本文中会涉及到的一些简单描述:

  • Dify:开源AI应用开发框架,支持可视化编排AI工作流,提供知识库管理、模型集成等功能;

  • Docker:容器化部署工具,确保环境一致性,简化依赖管理;

  • DeepSeek:国产高性能大语言模型,提供等多种参数规格;

  • Ollama:本地大模型运行框架,支持主流开源模型部署;

 术语 

知识库:知识库在大模型中指的是能够存储、检索和传播大量知识信息的系统结构或数据库形式。大模型通过学习丰富的上下文对话数据,可以理解、处理和生成自然语言,从而构建了一个动态的知识库。这个知识库包含了大量的语料数据,如文本、图片、视频等,为模型在不同场景下提供参考,并帮助模型进行理解和推理。在训练过程中,模型会不断更新和扩展这个知识库的内容,使其能够更好地理解用户意图并生成相关回应。

工作流:工作流是大模型中的一个概念,它通常用于描述模型在处理输入数据时的流程步骤。具体来说,工作流可能指的是从输入到输出的计算过程,其中包含各个阶段的数据处理和信息整合。这可以帮助我们理解大模型是如何将各种信息组织起来并逐步转化为输出结果的过程。

 安装 Dify 

1. 安装 Docker

  • 安装 Docker Desktop
    从 Docker 官网 下载 macOS 版本的安装包(.dmg),双击运行并拖拽至应用文件夹。首次启动需接受服务协议,并选择“推荐设置”以自动配置环境。

2. 克隆 Dify 代码并配置环境

  • 克隆仓库
    在终端中执行以下命令,将 Dify 代码克隆到本地:

    git clone https://github.com/langgenius/dify.git
  • 复制环境变量文件
    进入 Docker 目录并复制示例配置文件:

    cd dify/docker
    cp .env.example .env

    根据需求修改 .env 文件(如调整端口或密钥)。

3. 启动 Dify 容器

  • 一键启动服务
    根据 Docker Compose 版本选择命令:

    # Docker Compose V2
    docker compose up -d

    成功启动后,会创建多个容器,包括数据库(PostgreSQL)、缓存(Redis)、向量引擎(Weaviate)等。

  • 检查容器状态
    运行 docker compose ps 确认所有容器处于“Up”状态,尤其是 apiwebworker 等核心服务。

如果看到图下几个服务均运行完成,即可开始下一步。

image
image

4. 初始化与访问 Dify

  • 完成管理员设置
    浏览器访问 http://localhost/install,设置管理员账号和密码。

如果打开后,一直是如下图的情况,不要着急,可以打开 F12,在 Network 中,找到 setup 请求,看看是否已经正常返回 200(我这边大约1分钟左右)。请求成功后刷新页面即可看到图二中的设置账户密码页面。

db376419ed130e8282d0156d4e44555a.pnge8a8569d4c9dbd666f18a022e0815507.png
  • 登录主界面
    访问 http://localhost 进入 Dify 工作台,可开始创建 AI 应用或配置大模型。

5437c7843aef6e183213a65dc1509434.png

 Dify 添加模型 

在首页右上角,找到个人信息处(右上角),点击设置。切换到模型供应商 Tab 页签。

dd7850203941b17d79bc234ab348c294.png

找到 Ollama,点击添加应用。

345fd4dcec87b9019ef2de9c27efc303.png

添加聊天模型

填写添加模型的对应表单内容

ec03ba54a88ef501cef7b27ca94bc612.png

添加文本模型

6291d3cd56b2795543b1c6f868cd1c85.png

表单填写参考

模型名称:

在终端,执行 ollama list 查看自己在 Ollama 中已经下载的模型。

如果还没有安装,请查阅这个文档《五分钟让你本地部署一个 DeepSeek (快速指北)》https://giao.club/posts/1739113066711.html

➜  ~ ollama list
NAME                  ID              SIZE      MODIFIED
deepseek-r1:latest    0a8c26691023    4.7 GB    About an hour ago
deepseek-r1:1.5b      a42b25d8c10a    1.1 GB    5 days ago
b7ea80012c003fb6b1a835d744b95dd8.png

基础 URL:

此处特别注意,别填写 localhost 作为主机,你需要使用 ip 或者 docker 宿主机

windows/macos 使用: http://host.docker.internal:11434

Linux Docker:http://172.17.0.1:11434

创建聊天应用

在工作室,点击创建空白应用。

5dfb2cd763643f4cec9933a04cffdb92.png
选择模型

此处选择前面创建的模型,这里不换本地无法运行的。

2b5271e4016025c84252a0f00b04a6cc.png
效果如下

我还是不死心又试了下  7b 模型,根本带不动,在这里立一个 flag ,今年必定换电脑,下面这回答耗费 235 秒。

deab7707f6210365708ae107a20cf13e.png

接下来,我都将使用1.5b 模型讲解。

发布

点击右上角发布应用,即可在“工作室”看到,刚创建的应用了。

6dd0d4e3a073291b0f6b757dcf2391c5.png

创建知识库

目前 Dify 支持 3 种方式导入知识库,我这里选择【同步自 Web 站点】,计划直接导入我自己的博客站点。

c51f3c408bac92d2d8b8d52f9ac330cf.png
注册登录 Reader

直接在 https://jina.ai/reader/ 注册账号,随后在左下角复制自己的密钥,填写进 Dify 即可。

a0a9233cbcda032f75a4943b6bb0184c.png

绑定完成效果如下:

28bf5d68570919346312cd7563c1c8f3.png
开始运行爬取站点

这里你可以选自己的博客,或者别人的博客,甚至是某某官方技术文档也可以。总之你需要选择你相信的内容作为知识库,否则到时候 deepseek 引用你的知识库时,可能将你引导错误。

d1842ca5932bdd2898150bf5df3e194e.png
文本分段和清洗

这里会使用到前面添加的 Embedding 模型。其他的都用默认值,点击保存并处理。

b43193c7d6d0c6779a3109d726e53deb.png
创建知识库成功
13c1f290084134124ae74d4d79e67fba.png
测试引用知识库

进入到前面创建的应用内,绑定知识库作为上下文,提出文章中所包含相关字眼,然后向它提问。

477d5e9de1283d2627da3c7d2baa1db6.png

它输出的内容,会将知识库结合自己的看法,来生成内容进行对话。

可以看到下面我问它,怎么做一个升降桌,它的内心戏码也比较足。

9409ee18dbfe2e80ddaabd1831075fc3.pngc795f635b9bbd2798553ae7ee6d875b0.png

这里的内容只是作为参考,如果你的内容足够多,发布之后,可以放入公司的文档资料,作为上下文,然后将这个应用内嵌到某个系统中,例如文档小助手之类的。

你可以选择运行、嵌入网站,或者 API 方式调用。

65700dcc508ac722b9d9e0a0abdacba6.png

 使用 siliconflow(硅基流动) 

如果你追求极致的性能和高参数模型,你还可以通过 Dify 接入硅基流动的模型(主要是额度又高,还有免费的模型)。

https://cloud.siliconflow.cn/

注册就送 ¥14 ,真不是打广告。

还是按照之前的做法,直接添加一个模型。

98df3ca3b9949fa53e8b9b2df2e158b4.png

模型名称

只需要去模型广场,找到【只看免费】,我这里还筛选了个 DeepSeek,大家可以按需查找。我这里选的是 8B 的DeepSeek。

fae38b66149e777b2305e8e0c34f76ac.png

找到免费模型后,点击在线体验进行对话。

6562802fc0ea340671cb6633d5384504.png

随便输入一个聊天内容,打开F12直接找到 Payload 参数中的 model 这个就是免费的模型名称。

c64154861a9afe73cdc3f7b131eb0824.png

API Key

直接在这里 https://cloud.siliconflow.cn/account/ak 进行新建 API 密钥,复制过去就行。

其他的,按照之前的做法即可,这里只是为了测试更高模型对知识库的引用是否有所不同。不得不说,免费的午餐还是香一些。

 参考文献 

https://docs.dify.ai/zh-hans/development/models-integration/ollama

https://ollama.com/library

<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、付费专栏及课程。

余额充值