一、关于本文
本文介绍在银河麒麟服务器V10SP3-2403环境上部署Dify,组合在线的模型及本地deepseek模型实现构建本地的知识库(可以作为单独的webapp、也可以提供api接口&SDK以便其他开发程序接入,比如微信客服助手小程序、web网页嵌入、C端客户端等)。
二、环境架构说明
1)操作系统环境:
- 【离线&在线】麒麟服务器操作系统V10SP3-2403 x86:部署Dify,配合后续的大模型来使用(安装环境的时候需要联网)、部署本地离线的DeepSeek,提供本地离线API(安装环境的时候需要联网)
- 【在线】 麒麟桌面操作系统 V10SP1-2403 x86:通过Web端访问Dify 制作出来的webapp应用(知识库入口)。
2)API使用
- 【在线】Siliconflow:硅基流动平台,提供高效能、低成本的多品类 AI 模型服务。(这里为啥不直接使用DeepSeek官网的,你们可以猜猜)
- 【离线】DeepSeek:使用官网提供的部署包进行部署安装,提供本地离线API
- Ollama:一个开源的本地大语言模型运行框架
大致的部署架构如下:
本文主要介绍在线模型+Dify+本地知识文件制作本地知识库(下面图片里黄色部分)(离线模型参考在麒麟操作系统上基于DeepSeek搭建本地&在线部署知识库方法说明 三、4)来部署接入Dify即可,具体Deepseek的搭建本文不在赘述,重点介绍Dify的部署流程)
这个架构类型单纯是个人见解,并非官方解释说明。
注-相关介绍:
- 麒麟软件:国产操作系统、麒麟操作系统——麒麟软件官方网站
- Ollama:Ollama
- DeepSeek:DeepSeek
- CherryStudio:Cherry Studio - 全能的AI助手
- Dify:https://docs.dify.ai/zh-hans
- Siliconflow:https://siliconflow.cn/zh-cn/
三、各模块组件安装说明
1)麒麟软件系统安装
镜像下载地址:双源飞流下载站
安装说明:kylinos华东知识库 · 语雀
此问的麒麟服务器SP3-2303是图形化默认安装,另外本地部署deepseek的时候关闭了防火墙,这里需要注意:部署Dify的时候,不要关闭防火墙。部署Dify的时候,不要关闭防火墙。
部署Dify的时候,不要关闭防火墙。
sudo systemctl status firewalld.server #查询状态 sudo systemctl start firewalld.server #如果状态关闭,请执行此开启
可以提前给服务器配置一个IP,后续其他设备来链接Dify使用
2)在线API注册使用
- 注册: Siliconflow账号申请
点击链接后,可以根据提示注册号账号,当前注册还送免费的token(非广告)。
注册后的使用方法参考:在麒麟操作系统上基于DeepSeek搭建本地&在线部署知识库方法说明 3)3.在线API使用注册。
如果是本地deepseek模型实现构建本地的知识库,这里使用的就是本地部署deepseek后的API信息。
3)Dify安装(Docker Compose部署方法)
注:需要链接互联网
安装Dify官方提供了多种方式,比如Docker Compose、本地源码、宝塔面板等等(见Dify官方文档说明);本文介绍使用Docker Compose部署Dify,官方对于此部署的要求如下:
要求:
- Docker 19.03或者更高
- Docker Compose 1.28或者更高
文档里使用的物料已经上传:下载压缩包获取
也可以网盘获取:
链接: https://pan.baidu.com/s/14GVD6k55nnJuXNzyuz8S8w?pwd=1234 提取码: 1234
3.3.1)安装Docker
在麒麟sp3-2403服务器上安装的docker是20.10.16(不使用默认仓库里的docker)
在文章最顶处获取下载:docker-install-x86.tar.gz
复制到服务器上,进入解压后文件夹里执行:
sudo tar -xvf docker-install-x86.tar.gz
sudo cd docker-install-x86/
sudo rpm -ivh *.rpm
docker -v #检查docker版本
3.3.2)安装Docker Compose
在文章顶端获取压缩包,解压将docker-compose-linux-x86_64导入服务器
可以将此文件复制到/usr/sbin目录下(其他PATH识别的目录都可以)
sudo cp docker-compose-linux-x86_64 /usr/sbin/
docker-compose-linux-x86_64 -v #查看版本
至此docker和docker compose已经部署好了,可以执行以下来判断是否一致
3.3.3)下载克隆Dify代码仓库
本文不介绍官方的git克隆的方式(不FQ的话,不稳定),可以通过下列链接来下载Dify源码(当前版本是0.15.3):
https://github.com/langgenius/dify/archive/refs/tags/0.15.3.zip
3.3.4)修改配置文件
解压zip:
sudo unzip 0.15.3.zip
修改配置:
sudo cd dify-0.15.3/docker
sudo mv .env.example .env
sudo mv middleware.env.example middleware.env
替换docker-compose.yaml文件(如果安装官网的执行docker-compose up -d 是会出现因为没有FQ很多组件无法正常下载的情况)
获取方式(文章关联的物料里的:docker-compose.yaml文件)(先把下载的文件放到root下后执行下面命令)
sudo cp /root/docker-compose.yaml docker-compose.yaml
3.3.5)启动docker容器
在dify-0.15.3/dockr目录下执行:
sudo docker-compose-linux-x86_64 up -d
执行过程:
执行完毕再执行下会有以下结果:
检查容器是否正常:
sudo docker-compose-linux-x86_64 ps
通过这些步骤,你应该可以成功在本地安装 Dify。
自定义配置
编辑 .env
文件中的环境变量值。然后重新启动 Dify:
注:本文默认没有修改,可以按照Dify官网的介绍来自定义环境变量值。如果不配置,可以跳过
sudo docker-compose-linux-x86_64 down && sudo docker-compose-linux-x86_64 up -d
3.3.6)访问Dify
你可以先前往管理员初始化页面设置设置管理员账户:
服务器自身可以打开浏览器,地址栏输入:http://localhost/install
其他通网络的客户端的浏览器里(服务器也可以),地址栏输入:http://服务器的ip/install
这里就是可以设置管理员的邮箱、用户名、密码。设置完后要记好。
设置完后,可以通过浏览器访问:http://服务器的ip
登录管理员的账号
四、Dify初使用(知识库创建、webapp应用下发)
这里先说明下Dify的功能很全、大家可以主要参考官方文档做学习了解。还可以度娘下其他大佬整理的对Dify的功能使用介绍。笔者本身也在学习的过程中,本文后续只对创建知识库,发布webapp使用知识库做简单说明。建议大家还是边操作边查看Dify官网的说明文档来指导自己的学习测试。
1)添加模型入口
看图说话吧,大家参照图片来操作:
下图在设置里选择,模型供应商
2)模块添加本地API(本地Deepseek)
给Dify添加本地搭建的Deepseek 模型,可以按照下图选择
3)模块添加在线API(互联网)
这里还是选择笔者使用的:siliconflow(硅基)
4)创建知识库
看图操作:
这里可以导入本地已有文件,支持的文件格式也很多。也可以通过外网及网站爬虫。
随机选择一个文件后,选择下一步:
这里会进入到知识库的设置的地方,这些只是需要大家先参考官方的说明来对此做了解。比如分段设置里分段标识符、分段最大长度、分段重叠长度、还有父子分段(这个是建议选择)、还有索引方式(建议选择高质量)、Embedding类型,看添加的模块里有哪些(BBAI/bge-m3)、检索设置(这部分按照推荐选择的是混合检索)
点击下一步到:
这个时候知识库创建好了,会进入到索引的过程,这个过程很好理解,导入的知识库文件,他需要做索引检索的文本预处理的过程,传入的文件文字量越大、耗时越多(也可添加模型类型有关系(如果是本地部署的Deepseek 671b肯定会比1.5b 快(在他们资源对对应匹配上的情况下))),这里只是上传了一个txt来做测试。
4)知识库的分段及召回测试
点击上传的知识库文件,可以看到分段后的内容,如果文档内核比较多,这个分段里内容可能会有误,需要去在设置知识库的时候做调整。
点击召回测试(这个我理解就是对知识库的测试,看看分段是否被召回)
5)创建聊天窗口(创建应用)
Dify支持多种类型的应用创建,聊天助手、Agent、文本生成应用、Chatflow、工作流等
这里选择聊天助手,设置应用名称及图标、描述信息点击下一步
在这里会进入这个应用的编排界面,这里可以设置以下:
- 提示词:这个应用角色身份的定义的地方,可以点击星号来使用提示词生成器生成提示词
- 变量:变量能使用户输入表单引入提示词或开场白
- 上下文:关联创建的知识库
提示词生成器:
上下文的地方点击添加关联知识库:
变量的地方比较复杂在,dify支持添加插件工具,在这里可以引入这些工具来,这部分还需要再学习了解掌握这部分的作用。
不通过提示词生成器也可以直接写,也会生效
发布应用:
这里点击右上角的发布,可以选择多种模式,比如运行、就是直接一个WebApp
点击start chat就可以开始
发布的这个web地址就可以给其他用户使用,作为webApp来使用
五、结语
Dify 核心功能亮点应该是智能工作流引擎与企业级扩展能力。智能工作流引擎提供可视化的全流程编排工具,涵盖任务发起、规则设定到结果交付、支持通过 动态表单组件(如下拉框/单选框)控制用户输入维度、集成 多类型功能节点(数据预处理、模型推理、格式转换等),自由组合业务逻辑。企业级扩展能力表现在支持从任意来源获取数据:爬虫抓取、API对接、数据库直连等及细粒度权限管理体系:团队成员角色划分、操作审计日志、敏感信息隔离。
另外在学习和实践上可以通过优先学习官方Dify提供的实用案例来研究案例中的策略模式(多模式路由机制等),在深度开发方向也要尝试通过决策树实现多业务场景跳转构建复杂条件分支,探索Dify 已有的例如调用外部API扩展文本生成后的执行能力(如自动发送邮件)等插件生态功能。
注:文档整理仓促,如有错误的地方烦请指出。
附录一些其他功能设置项:
六、踩坑
1)服务器防火墙要开启
2)要替换公网镜像地址(docker-compose.yaml)
如果不替换执行会报以下错误:
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
3)浏览器访问dify出现:Application error: a client-side exception has occurred (see the browser console for more information)
这个是因为浏览器的版本问题,至于要什么版本的浏览器暂时不确定,出现这个问题后,就更换浏览器试试
笔者是麒麟桌面2403操作系统+firefox 115.9
在桌面系统安装此浏览器方法:
sudo apt-get -f install firefox-esr firefox-esr-locale-zh-hant