当前位置: 首页 > news >正文

使用 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.png e8a8569d4c9dbd666f18a022e0815507.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.png c795f635b9bbd2798553ae7ee6d875b0.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

相关文章:

  • 框架ThinkPHP(小迪网络安全笔记~
  • 计算机组成原理—— 外围设备(十三)
  • 配置Open-R1,评测第三方蒸馏模型的性能2
  • 2025百度快排技术分析:模拟点击与发包算法的背后原理
  • 一个简单的ubuntu/开发板初始化脚本
  • Redis 09章——哨兵(sentinel)
  • HTML元素
  • MATLAB中lookBehindBoundary函数用法
  • 滑动窗口——优先队列写法
  • 分享一个解梦 Chrome 扩展 —— 周公 AI 解梦
  • sql盲注脚本
  • 【数据结构入门 65 题】目录
  • 字符串(典型算法思想)—— OJ例题算法解析思路
  • Anaconda3 介绍和安装
  • 静默安装OGG for MySQL微服务版本,高效开展数据同步和迁移
  • FreeRTOS第5篇:事件的“广播站”——事件组与事件标志
  • 2025寒假天梯赛训练5
  • 如何通过 prometheus-operator 实现服务发现
  • Serverless(无服务器架构)和 FaaS(函数即服务)是什么?全方位解析
  • 搭建一个经典的LeNet5神经网络
  • 为发期刊,高校学者偷贩涉密敏感数据!国安部披露间谍案细节
  • 宇树科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入
  • 泰特现代美术馆25年:那些瞬间,让艺术面向所有人
  • 工行回应两售出金条发现疑似杂质:情况不属实,疑似杂质应为金条售出后的外部附着物
  • 央行:下阶段将实施好适度宽松的货币政策
  • 安徽亳州涡阳县司法局党组书记刘兴连落马