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

1,594 阅读6分钟

前言

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

4. 初始化与访问 Dify

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

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

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

Dify 添加模型

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

找到 Ollama,点击添加应用。

添加聊天模型

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

添加文本模型

表单填写参考

模型名称:

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

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

➜  ~ 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

基础 URL:

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

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

Linux Docker:http://172.17.0.1:11434

创建聊天应用

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

选择模型

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

效果如下

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

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

发布

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

创建知识库

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

注册登录 Reader

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

绑定完成效果如下:

开始运行爬取站点

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

文本分段和清洗

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

创建知识库成功

测试引用知识库

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

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

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

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

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

使用 siliconflow(硅基流动)

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

cloud.siliconflow.cn/

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

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

模型名称

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

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

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

API Key

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

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

参考文献

docs.dify.ai/zh-hans/dev…

ollama.com/library