引言:
在数字化转型浪潮中,企业普遍面临信息管理效率低下、数据孤岛化、知识检索成本高等痛点。传统的文档管理系统难以应对海量非结构化数据(如技术文档、会议记录、客户资料)的智能处理需求,而依赖云端大模型又存在数据隐私泄露风险。本文旨在通过 Dify + ollama + DeepSeek 这一开源组合,为企业提供一套低成本、高可控的本地知识库解决方案,通过AI智能体从数据管理到智能问答的闭环。
Dify介绍:
官方文档:https://github.com/langgenius/dify/blob/main/README_CN.md
官方文档:https://docs.dify.ai/zh-hans/guides/application-design/creating-an-application
Dify是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(Backend as Service)和LLMOps的理念,使开发者可以快速搭建生成级的生成式AI应用。即使你是非技术人员,也能参与到AI应用的定义和数据运营过程中。
由于Dify内置了构建LLM应用所需的关键技术栈,包括对数百个模型的支持、直观的Prompt编排界面、高质量的RAG引擎、稳健的Agent框架、灵活的流程编排,并同时提供了一套易用的界面和API。这为开发者节省了很多重复造轮子的时间,使其可以专注在创新和业务需求上。
核心能力:
1.多模型支持
-
兼容Claude 3、OpenAI、DeepSeek等大语言模型,支持灵活切换,满足不同业务需求。
-
与多个模型供应商深度合作,确保开发者能选择最优模型方案。
2.可视化Prompt编排
-
提供直观的 Prompt 调试与优化界面,无需复杂代码即可构建高效 AI 交互逻辑。
-
支持 变量注入、条件分支 等高级编排功能,适应复杂业务场景。
3.RAG(检索增强生成)管道
-
内置强大的 文档检索与知识库管理,结合向量搜索技术,提升问答准确性。
-
支持 PDF、Word、Excel 等格式解析,实现企业知识的高效利用。
4.自动化工作流
-
可自定义 AI 任务流,如合同审核、报告生成、智能客服等,减少人工干预。
-
支持 多步骤任务编排,结合 LLM 与外部 API,实现端到端自动化。
5.企业级运维与监控
-
提供 日志追踪、性能监控、权限管理,满足团队协作需求。
-
支持 A/B 测试,优化模型表现,提升业务效果。
架构优势:
Dify 采用清晰的 四层架构,确保灵活性与扩展性:
-
模型层:集成多种 LLM,支持本地与云端部署。
-
数据处理层:提供数据清洗、向量化存储与检索优化。
-
应用层:支持聊天机器人、知识库、自动化流程等 AI 应用构建。
-
管理层:涵盖权限控制、日志审计与运营分析。
适用场景:
-
企业知识库:构建智能问答系统,快速检索内部文档。
-
智能客服:结合 RAG 技术,提供精准的客户支持。
-
自动化办公:实现报告生成、数据分析等任务的 AI 驱动。
Dify 通过 低代码开发、多模型兼容、企业级管理,成为企业构建 AI 应用的理想选择。无论是初创团队还是大型组织,都能借助 Dify 快速落地智能化解决方案。
Dify功能对比:
Dify与Coze对比
维度/指标 | DIFY | COZE |
模型支持 | 多模型接入(OneAPI/Ollama/OpenAI等),支持混合编排(来源3) | 侧重国内大模型(豆包/智谱),国际模型支持有限(来源4) |
知识库处理 | 支持父子文档检索,提升复杂知识库准确率(来源5) | 依赖LLM节点分类,准确率受模型限制(来源2) |
工作流可视化 | 支持节点级调试与版本控制,适合工程化开发(来源3) | 简化版流程图设计,侧重快速原型验证(来源2) |
学习成本 | 需技术背景(Python/API开发经验) | 无代码操作,1小时内可完成基础搭建 |
部署成本 | 企业版起价$500/月 | 免费版功能完整,企业定制需协商 |
运维复杂度 | 需专职运维团队 | 全托管云服务 |
Dify部署:
linux环境和windows环境安装步骤基本一致,可一同参考;
一:Docker安装
Docker 就像一个便携的软件箱子,它让您可以在不同的计算机上运行相同的程序,而无需担心复杂的安装过程。选择 Docker 的原因在于它大大简化了软件部署流程,避免了安装众多依赖软件的烦恼。安装过程较为简单, 就不赘述了。参考:环境搭建-Windows系统搭建Docker_windows docker-CSDN博客
二:获取Dify
下载Dify
获取Dify并集成到Docker当中。获取Dify有两种方式,一种是通过git clone来拉取源码(推荐),第二种是访问链接 https://github.com/langgenius/dify 直接下载ZIP。
考虑到有同学本地没有安装Git。这里使用第二种方式来下载。打开链接后点击绿色的Code,找到对应的Download ZIP 后并解压。
启动Dify
在已经下载并解压Dify后进入到Docker目录,找到 .env.example 修改为 .env 如果没有修改启动会报错:
Error response from daemon: Get "https://registry-1.docker.io/v2/semitechnologies/weaviate/manifests/sha256:17a5238fcfc31d50427bb0e8338f01c3a0d62e27fbe3b6a9a6832b6e43b638bf": EOF
在修改.env后进入docker-compose.yaml所在文件夹的终端当中运行命令:
docker compose up -d
这个命令会启动在 docker-compose.yml 中定义的所有服务;
安装成功后,在 Docker Desktop 中应该能看到以 docker 命名的文件夹,即为安装成功。
三:常见错误
1:dify用 docker compose 部署后Docker Desktop中 postgres:15-alpine 报错权限问题:
2:Docker重启后 Dify 被重新初始化什么都没有了。
参考我另一篇文章:
dify用 docker compose 部署后Docker Desktop中 postgres:15-alpine 报错; 以及每次重启Docker后Dify都被初始化问题-CSDN博客
FATAL: data directory "/var/lib/postgresql/data/pgdata" has invalid permissions UTC [57] DETAIL: Permissions should be u=rwx (0700) or u=rwx,g=rx (0750). child process exited with exit code 1 initdb: removing contents of data directory "/var/lib/postgresql/data/pgdata" running bootstrap script ...
四:配置Dify
在Dify启动成功后,可以进入自己本地的 http://127.0.0.1/install 或者http://localhost/install 页面进行配置;在Dify初次启动需要进行账户设置,默认情况下不会发邮箱进行验证;因为默认端口就是80所以可以不输端口号;
Dify面板介绍:
在登陆成功之后就可以进入到Dify的世界了。
探索:
在这个模块里,dify给我们内置了一些应用模板,以降低我们的学习使用成本。按照分类已经帮我们罗列好了,我们可以点击对应的分类查询,看中哪个鼠标放上去,点击添加到工作区即可。
工作室
在工作室模块里,多模式应用创建和复杂工作流编排、Agent 工具链配置、知识库深度集成还有很多拓展和集成的能力。
- 红框1代表当前工作空间下所有的应用。
- 红框2代表所有的应用模式, 如聊天助手、Agent、文本生成、ChatFlow、工作流等。
- 红框3代表我们可以创建对应模式的应用。
- 红框4代表我们可以在探索空间中寻找适合的模板创建应用。
- 红框5代表我们可以导入模板。
知识库
知识库中可以上传个人或企业的文件,上传之后如果设置了嵌入向量模型,会将文本转换为向量数据,用于后续相似性检索。这个后面会讲解
工具
Dify的工具是指一些让AI调用外部功能的插件,比如搜索、发微信或者查询数据,就像给AI装上手和脚,能自动执行现实任务。也可以自定义工具给Dify调用,或者将已发布的工作流发布成工具进行使用。
添加模型供应商
云部署
OpenAi
由于OpenAI、Google等海外大模型厂商对国内用户访问做了限制,导致国内用户很难轻松使用上类ChatGPT、Claude、Gemini等模型服务,很多基于ChatGPT的问答软件、开源软件,均无法通过国内网络直联api.openai.com(OpenAI的API地址)。
dify工作流有自己的api接口,但是返回格式不是标准的openai格式,因此无法对接一些标准的AI客户端。
但是可以通过OpenAI Compatible Dify插件进行API的转换, 这里就不举例了。
DeepSeek
安装DeepSeek原生的深度求索,之后在DeepSeek DeepSeek开发者平台中获取API KEY,注意:可能需要先充值,目前已经没有赠送免费的Key了。也可以安装硅基流动,这个目前有免费的。
获取深度求索API Key的链接:DeepSeek
获取API KEY之后填入,自定义API endpoint地址填写:https://api.deepseek.com
注意,如果code报错,请根据API文档检查对应错误原因;
OpenAI-API-compatible
OpenAI-API-compatible最大的优点就是不依赖单一供应商,因为国内的大模型平台基本都兼容了OpenAI-API,可以自由选择模型来源。同一套应用逻辑可无缝测试不同模型效果。比如你如果用的是阿里云百炼的大模型,但是在Dify当中又没有找到对应的大模型供应商,那么你就可以使用OpenAI-API-compatible;
阿里云百炼:https://bailian.console.aliyun.com/#/home
阿里云百炼获取API Key:https://bailian.console.aliyun.com/?tab=api#/list
阿里云百炼模型DeepSeek V3模型API文档:https://bailian.console.aliyun.com/?tab=model#/model-market/detail/deepseek-v3
进入到百炼开发者平台后同样申请API Key,在获取之后可以查看自己创建的Key;
之后比如我们想配置一个DeepSeek的模型,那么就可以在阿里云百炼的模型广场当中找到对应模型的名称和API endpoint URL即可。
之后在我们的Dify点击添加模型将我们刚才得到的信息填写上去。
到这一步 我们需要的DeepSeek模型都已经创建好了。
本地部署
如果不想使用在线模型而需要使用本地的大模型的话可以通过Ollama来实现,Dify是通过Docker部署的,而Ollama是运行在本地电脑/本地服务器的,我们需要让Dify能访问Ollama的服务。
Ollama 是一款旨在本地运行大型语言模型的工具,它为用户在本地环境中使用和与大型语言模型交互提供了极大的便利。该工具具备以下特点:
1) 多模型支持:Ollama 支持多种大型语言模型,包括但不限于 Llama2、Mistral 等。这允许用户根据个人需求和应用场景,选择合适的模型来执行各种任务,如文本生成、问答系统、对话交互等。
2) 易于安装和使用:Ollama 的安装过程设计得相对简单,用户可以在 macOS、Linux 和 Windows 等主流操作系统上轻松部署。安装完成后,用户可以通过直观的命令行界面与模型进行交互,从而降低了使用大型语言模型的技术门槛。
3) 本地运行:Ollama 允许模型在本地设备上运行,无需依赖网络连接访问云端服务。这不仅提升了数据的安全性和隐私性,还能减少因网络问题导致的延迟,实现更迅速的响应。
搜索访问官网 Download Ollama on macOS,并选择下载适用于自己的安装包进行安装。
本地Ollama安装
安装Ollama并下载本地大模型的方式在我另一篇文章当中,可以参考:
Windows本地安装Ollama(修改默认路径C盘)-CSDN博客
Dify使用在线大模型和Ollama本地模型的区别:
对比维度 | 在线大模型(如深度求索、通义千问) | Ollama 本地模型 |
数据隐私与安全性 | 数据需通过外部网络传输至第三方服务器,存在潜在隐私泄露风险,依赖供应商的数据保护措施。 | 数据完全在本地处理,无需外传,适合对隐私和安全要求高的场景(如金融、医疗)。 |
网络依赖 | 必须联网使用,依赖外部服务的稳定性和可用性。 | 本地运行,无需联网,适合网络条件受限或需要离线使用的场景。 |
成本 | 通常按调用次数或 Token 计费,长期使用成本较高。 | 初期需投入硬件资源(如 GPU/CPU、内存),但长期无额外调用费用,适合高频使用需求。 |
延迟与性能 | 受网络带宽和服务器负载影响,可能存在延迟;性能取决于供应商算力。 | 本地推理延迟更低,性能受本地硬件限制,可通过优化硬件提升响应速度。 |
模型自定义能力 | 模型参数和行为由供应商控制,用户通常无法深度定制(如调整模型架构或训练参数)。 | 支持通过 Ollama 的 Modelfile 自定义模型参数,灵活调整模型行为,适配特定业务需求。 |
部署复杂度 | 直接通过 API 调用,无需本地部署,适合快速集成。 | 需本地部署 Ollama 服务,可能涉及 Docker 配置、端口映射、网络互通等复杂操作(如跨容器访问需特殊设置)。 |
适用场景 | 适合快速原型开发、轻量级应用或对数据隐私要求不高的场景。 | 适合企业级私有化部署、敏感数据处理、需要长期稳定运行或定制化模型的场景。 |
模型支持类型 | 支持主流厂商提供的闭源或部分开源模型(如 GPT、通义千问),但模型选择受限于供应商开放范围。 | 支持本地部署开源模型(如 Llama3、Mistral、Gemma),可自由扩展模型库。 |
维护与更新 | 模型由供应商统一维护和更新,用户无需额外操作。 | 需手动更新模型版本或重新拉取镜像,维护成本较高,但可控性更强。 |
Dify关联Ollama
Dify是通过docker部署的,而Ollama是运行在电脑本地的,我们需要让Dify能够访问Ollama的服务。在Dify安装目录中docker文件夹内找到.env文件并在末尾加上下面的配置;
# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 指定 Ollama 的 API地址(根据部署环境调整IP,如果dify和ollama不在一个宿主机则将host.docker.interna换为具体IP地址)
OLLAMA_API_BASE_URL=host.docker.internal:11434
在添加完成之后需要重启Dify,直接在Docker-Desktop中选择Restart;
如果是linux的dify或者windows想使用命令行来完成操作也可以参考:
## 重启
docker-compose down && docker-compose up -d
## 停止
docker-compose down
## 停止 down 和 stop 都是停止
docker-compose stop
## 启动
docker-compose up -d
## 删除(无需操作)
docker-compose rm -f
再重启之后就可以进行操作
Dify中Ollama的安装
安装完成之后选择添加Ollama,以下信息一定要填写正确
模型名称:模型名称是ollama中已经下载好的模型,如果不知道自己下载了哪些模型可以执行:ollama list 来查看自己ollama中都拥有哪些模型;
基础URL:选择上一步在.env文件中添加的OLLAMA_API_BASE_URL的地址,并加上hppt://
如:http://host.docker.internal:11434
其他信息测试阶段可以默认;
在Dify当中验证模型
第一次当中可能会有延迟,并且图中我使用的是r1的深度思考模型;因为我们选择的版本是deepseek-r1:8b,如果更小的版本比如1.5b,的回答也可能不及续期。
请关注博主,等待后续持续更新。
下一章:
2025企业本地知识库的革新:基于 Dify + ollama+DeepSeek 来实现的AI智能体工作指南(二)工作流实用案例