Dify本地部署教程:零基础搭建AI应用开发平台

什么是Dify?为什么值得学习
Dify是一款开源的大语言模型应用开发平台,融合了后端即服务(BaaS)和LLMOps的理念,让开发者甚至非技术人员都能快速搭建生产级的生成式AI应用。
这里有两个关键概念值得展开理解。BaaS(Backend as a Service) 是一种云服务模式,开发者无需自行搭建和维护后端服务器、数据库、用户认证等基础设施,而是通过API直接调用云端提供的后端功能,Firebase、Supabase都是典型的BaaS产品。BaaS的概念起源于移动互联网时代——当时开发者需要快速构建App后端却缺乏服务器运维能力,Parse(2011年)是最早的BaaS平台之一,后被Facebook收购。这一模式的核心价值在于将基础设施的复杂性完全抽象化,让产品团队能将精力集中在业务逻辑而非底层架构上。值得注意的是,BaaS与PaaS(Platform as a Service)的区别在于粒度:PaaS提供的是运行环境和中间件,开发者仍需编写和部署完整的后端代码;而BaaS则将后端功能直接封装为可调用的API服务,开发者几乎不需要编写任何服务端代码。
LLMOps 则是借鉴了MLOps(机器学习运维)的理念,专门针对大语言模型应用的全生命周期管理而提出的概念,涵盖提示词管理、模型版本控制、性能监控、成本追踪、数据标注与评估等环节。MLOps本身脱胎于DevOps的持续集成/持续部署(CI/CD)理念,将软件工程的最佳实践引入机器学习模型的训练、部署和监控全流程。LLMOps在此基础上进一步针对大语言模型的特殊性——如提示词的版本管理、Token消耗的成本控制、模型输出的质量评估——进行了专项扩展。传统MLOps关注的是模型训练数据的版本管理和模型权重的迭代,而LLMOps更多聚焦于提示词工程的可复现性、多模型的A/B测试对比、以及输出内容的安全合规审查,这些都是LLM应用区别于传统机器学习系统的独特运维挑战。Dify将这两者融合,意味着开发者既不需要关心后端架构,也不需要手动处理LLM应用运维中的繁琐细节。
与另一个知名的AI开发框架LangChain相比,如果说LangChain是一个工具箱(里面有锤子、钉子等各种工具),那么Dify更像是一套完整的脚手架——不仅有工具,还经过了系统的工程设计和软件测试,能直接支撑构建企业级应用。
具体来说,LangChain是由Harrison Chase于2022年底发起的开源框架,以Python和JavaScript为主要开发语言,提供了链(Chain)、代理(Agent)、记忆(Memory)、检索(Retrieval)等模块化组件,开发者需要编写代码将这些组件组装成应用。它的灵活性极高,但学习曲线陡峭,且从原型到生产级部署之间存在大量工程化工作。Dify则走了一条不同的路线——它提供了可视化的编排界面、内置的工作流引擎、开箱即用的RAG管道和完善的API管理,将大量工程化工作封装在平台内部,让开发者聚焦于业务逻辑本身。两者并非完全竞争关系:LangChain更适合需要深度定制化、对底层控制要求极高的场景,而Dify则更适合希望快速交付可用产品、团队中包含非技术成员的场景。事实上,Dify的底层也部分借鉴了LangChain的设计思想,并在其基础上增加了更完善的工程化封装。
更重要的是,Dify完全开源,意味着可以免费使用,并且能在开源基础上进行自由扩展。
Dify的核心能力
- 将AI应用的创意直接落地为可用产品
- 通过API将大语言模型集成到已有业务系统中
- 作为企业级大语言模型基础设施,加速AI技术在业内推广
- 独立开发者或技术爱好者也能通过提示工程和Agent技术创建自己的AI应用
其中,提示工程(Prompt Engineering) 是指通过精心设计输入给大语言模型的提示词来引导模型产生期望输出的技术,包括零样本提示、少样本提示、思维链(Chain of Thought)、角色扮演等多种策略,是当前使用LLM最核心的技能之一。零样本提示(Zero-shot)指不提供任何示例直接描述任务;少样本提示(Few-shot)则在提示词中附带若干输入输出示例,帮助模型理解期望的格式和风格;思维链(Chain of Thought)由Google Research于2022年提出,通过引导模型逐步展示推理过程来显著提升复杂推理任务的准确率。在此基础上,研究者们还发展出了更多高级技术:Tree of Thoughts(思维树)允许模型并行探索多条推理路径后择优选择;Self-Consistency(自洽性)通过多次采样并投票选出最一致的答案来提升可靠性;而System Prompt(系统提示词)的设计则直接决定了AI应用的"人格"与边界,是Dify等平台中最核心的配置项之一。
Agent(智能体)技术 则更进一步,它赋予LLM自主规划、工具调用和多步推理的能力。一个典型的Agent会接收用户任务,自行拆解为子步骤,根据需要调用搜索引擎、代码执行器、数据库查询等外部工具,最终综合结果给出答案。ReAct(Reasoning + Acting)和Function Calling是目前主流的Agent实现范式。ReAct由普林斯顿大学和Google联合提出,其核心思想是让模型在"思考(Reasoning)"和"行动(Acting)"之间交替循环,每次行动后观察结果再决定下一步,这种交织的推理-行动模式使Agent能够处理需要多轮工具调用的复杂任务。近年来,随着模型能力的提升,Multi-Agent(多智能体)架构也逐渐兴起——多个专职Agent分工协作,由一个Orchestrator(编排者)Agent负责任务分配和结果汇总,这种架构在处理复杂的跨领域任务时展现出远超单一Agent的能力上限,也是Dify工作流模块所支持的高级应用模式之一。
Dify支持的模型生态
Dify支持数百个模型,覆盖国内外主流大语言模型:
- 国外:OpenAI、Gemini、Claude等
- 国内:智谱、百川、讯飞星火、通义千问、文心一言、DeepSeek、月之暗面等

说个细节,不同模型支持的功能有所差异。在Dify的模型列表中,锤子图标表示支持工具调用(适合构建Agent),眼镜图标表示支持视觉能力。如果你想构建一个能调用工具的Agent,需要选择带有锤子标记的模型,如DeepSeek、月之暗面等。
这里的工具调用(Function Calling) 能力是指大语言模型能够识别用户意图后,自动生成结构化的函数调用请求,由外部系统执行后将结果返回给模型进行整合。OpenAI在2023年6月率先推出了Function Calling功能,随后各大模型厂商纷纷跟进。其底层实现原理是:模型在训练阶段通过大量的工具调用示例进行微调(Fine-tuning),学会将自然语言意图映射为符合JSON Schema规范的结构化参数;在推理阶段,开发者将可用工具的名称、描述和参数定义以特定格式注入系统提示词,模型便能在合适时机输出工具调用指令而非直接生成文本回答。并非所有模型都支持这一能力,它需要模型在训练阶段就针对工具调用场景进行专门的微调。值得一提的是,OpenAI后来将Function Calling升级为更通用的Tool Use接口,支持同时定义多个工具并允许模型在单次响应中并行调用多个工具,大幅提升了复杂任务的执行效率。在Dify中,锤子图标标识的模型意味着它们经过了工具调用训练,能够可靠地解析工具描述、生成调用参数并处理返回结果,这是构建可靠Agent的基础前提。
Dify教程整体框架
本教程分为七大模块,循序渐进地带你掌握Dify:
- 认识Dify:了解平台定位和核心能力
- 本地部署:在本地环境安装和配置Dify
- 构建AI应用:创建智能聊天机器人、Agent智能体等
- 工具箱使用:为AI应用配置和调用各类工具
- 工作流设计:针对特定业务场景编排自动化工作流
- 知识库挂载:导入企业产品数据作为AI的外挂知识库(RAG)
- 应用发布:发布为公开站点或通过API内嵌到现有应用
其中第6个模块涉及的RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将外部知识检索与大语言模型生成能力相结合的技术架构,由Meta AI Research于2020年在论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中正式提出。其核心流程是:先将企业文档、产品手册等数据切分为文本块,并通过Embedding模型转化为高维向量存储在向量数据库中;当用户提问时,系统先通过语义相似度检索出最相关的文本块,再将这些文本块作为上下文注入到LLM的提示词中,让模型基于真实数据生成回答。
这里的向量化过程值得深入理解:Embedding模型(如OpenAI的text-embedding-ada-002或国内的智谱Embedding)将每段文本映射为一个1536维或更高维度的浮点数向量,语义相近的文本在这个高维空间中的距离更近。向量数据库(如Weaviate、Qdrant、Milvus、Pinecone)专门优化了高维向量的近似最近邻(ANN)搜索算法,能在毫秒级别完成百万量级向量的相似度检索,这是RAG系统能够实时响应的技术基础。ANN算法的主流实现包括HNSW(Hierarchical Navigable Small World,层次化可导航小世界图)和IVF(Inverted File Index,倒排文件索引)等,它们通过牺牲极小的精度换取数量级的检索速度提升。在文本切分策略上,RAG系统的效果很大程度上取决于分块(Chunking)的粒度与方式:按固定字符数切分简单但可能割裂语义;按段落或章节切分保留了语义完整性但块大小不均;而递归字符切分(Recursive Character Splitting)则是目前最常用的折中方案,优先按段落分割,超出长度限制时再按句子、词语逐级细分。RAG有效解决了LLM的知识截止日期限制和幻觉问题,是当前企业级AI应用中最主流的知识增强方案。Dify内置了完整的RAG管道,支持多种文档格式导入、自动分块、向量化和检索策略配置。
本地部署Dify:宝塔面板方案详解
Dify有多种部署方式,包括源码启动、Docker部署等。经过综合对比,本教程选择了通过宝塔面板部署的方案,这种方式对新手最为友好。
第一步:安装虚拟机和Linux系统
所需软件:
- VMware Workstation 或 VMware Player(虚拟机软件)
- Ubuntu 22.04 ISO镜像文件(Linux操作系统)
VMware Workstation 是业界领先的桌面级虚拟化软件,它通过Hypervisor技术在物理机上模拟出完整的硬件环境,允许在一台电脑上同时运行多个独立的操作系统。Hypervisor分为两类:Type 1(裸金属型,如VMware ESXi)直接运行在硬件上,性能更高,用于企业数据中心;Type 2(托管型,如VMware Workstation)运行在宿主操作系统之上,安装使用更简便,适合个人开发者。VMware Workstation属于Type 2 Hypervisor,通过Intel VT-x或AMD-V等硬件虚拟化扩展指令集来提升虚拟机性能,现代CPU几乎都支持这些特性。值得一提的是,VMware在2024年被博通(Broadcom)收购后调整了授权策略,VMware Workstation Pro对个人用户免费开放,这使得它成为Windows用户体验Linux环境的零成本首选方案。对于Mac用户,则可以选择VMware Fusion(同样对个人用户免费)或Apple Silicon芯片原生支持的UTM虚拟机作为替代。
选择 Ubuntu 22.04 LTS(Long Term Support,长期支持版)作为部署系统,是因为它是目前最流行的Linux服务器发行版之一,拥有五年的官方安全更新支持(至2027年4月)、丰富的软件包生态和活跃的社区支持。LTS版本意味着长期稳定维护,非常适合作为服务部署的基础环境。Ubuntu基于Debian发行版,使用APT(Advanced Package Tool)包管理系统,相比CentOS/RHEL系列拥有更新的软件包版本,与Docker等现代云原生工具的兼容性也更好。Linux内核的多用户、多进程架构天然适合服务器场景:进程隔离保证了不同服务互不干扰,文件权限系统提供了精细的安全控制,而SSH远程访问能力则让服务器管理不受物理位置限制。对于Windows用户来说,通过虚拟机运行Linux是体验服务器部署流程的最低成本方案,也避免了双系统安装的风险。
安装VMware后,按照以下步骤创建新虚拟机:
- 打开VMware,选择「创建新虚拟机」
- 选择「稍后安装操作系统」
- 系统类型选择Linux → Ubuntu 64位
- 虚拟机名称自定义,安装位置务必选择非C盘(避免缓存文件撑爆C盘)
- 磁盘大小分配20GB即可(仅用于Dify部署的话足够)
- 完成创建

创建完成后,虚拟机还是空的,需要挂载Ubuntu镜像:
- 选择虚拟机 → 编辑虚拟机设置
- 找到CD/DVD选项,选择「使用ISO镜像文件」
- 浏览并选择下载好的Ubuntu 22.04 ISO文件
- 确定后播放虚拟机

启动后选择「Try or Install Ubuntu」,在安装界面中将语言切换为中文简体,选择最小安装(仅用于部署Dify足够),设置用户名和密码后等待安装完成。安装完成后重启,移除ISO镜像即可。
第二步:安装宝塔面板
在Ubuntu系统中打开终端(快捷键Ctrl+Alt+T),访问宝塔官网获取Linux面板的安装命令:
- 进入宝塔官网 → 产品 → 宝塔Linux面板 → 安装免费版
- 选择Ubuntu系统对应的安装命令并复制
- 在终端中粘贴命令并回车执行
- 输入系统密码(输入时不会显示,正常输入后回车即可)
- 确认安装路径后等待安装完成
安装完成后,宝塔会提供面板登录地址(内网地址)、用户名和密码。将地址复制到浏览器中即可访问宝塔管理界面。
宝塔面板(BT Panel)是由广州堡塔安全技术有限公司开发的Linux服务器运维管理面板,自2014年发布以来积累了大量国内用户。它将Nginx/Apache配置、MySQL数据库管理、FTP服务、防火墙规则、定时任务、SSL证书申请等繁琐的服务器运维操作全部封装为Web图形界面,使得没有Linux命令行经验的用户也能完成服务器的日常管理。宝塔面板本质上是一个运行在服务器上的Web应用,通过调用系统命令和配置文件来管理各类服务,其核心价值在于将Linux的学习门槛从"需要熟悉数十条命令"降低到"会点击鼠标即可"。对于本教程的场景,宝塔最关键的作用是提供了Docker的图形化管理界面,让Dify的部署过程无需接触任何命令行操作。
安装后建议立即修改默认配置:
在终端输入bt命令可以快速修改面板端口、密码、用户名和安全入口,提升安全性和便捷性。

例如将端口改为8899,安全入口改为/biken,这样访问地址就变成了http://192.168.x.x:8899/biken,更容易记忆也更安全。
第三步:通过Docker部署Dify
宝塔面板安装完成后,部署Dify只需几步点击操作:
- 在宝塔面板左侧找到「Docker」模块,点击安装Docker
- 安装方式选择默认,等待安装完成
- 进入Docker管理界面,搜索「Dify」
- 点击安装,确认配置后等待部署完成
Docker 是一种操作系统级别的虚拟化技术,由Solomon Hykes于2013年在PyCon大会上首次公开演示,随后迅速成为云原生时代最重要的基础设施工具之一。它基于Linux内核的两项关键技术实现容器隔离:Namespace 为每个容器提供独立的进程树、网络栈、文件系统视图和用户空间,使容器内的进程感知不到宿主机和其他容器的存在;Cgroups(Control Groups) 则负责限制和统计每个容器可使用的CPU、内存、磁盘I/O等资源,防止单个容器耗尽系统资源。容器与传统虚拟机的关键区别在于,容器共享宿主机的操作系统内核,因此启动速度更快(毫秒级 vs 秒级)、资源占用更少(MB级 vs GB级镜像)。Docker还引入了分层镜像(Layer) 机制:每个镜像由多个只读层叠加而成,不同镜像可以共享相同的基础层,大幅节省了存储空间;容器运行时在镜像层之上添加一个可写层,容器删除后该层随之消失,保证了环境的一致性和可复现性。
Dify的Docker部署实际上使用了Docker Compose 来编排多个容器服务。Docker Compose通过一个YAML格式的配置文件(docker-compose.yaml)定义整个应用栈的服务依赖关系、网络配置、数据卷挂载和环境变量,一条docker compose up命令即可将整个技术栈拉起。Dify的完整技术栈包括:Web前端(Nginx)、API服务(Python/Flask)、Worker异步任务处理(Celery)、PostgreSQL关系型数据库、Redis缓存与消息队列、以及Weaviate或Qdrant向量数据库等多个组件。这些组件之间通过Docker内部网络互相通信,对外只暴露必要的端口,形成了一个自包含的微服务集群。通过宝塔面板的Docker管理模块,这一过程被进一步简化为图形化的点击操作,无需手动编写或修改配置文件。
常见问题排查:
如果安装过程中出现镜像拉取失败的错误,通常是网络问题导致的,可以尝试以下解决方案:
- 修改DNS:编辑
/etc/resolv.conf文件,将nameserver改为8.8.8.8和8.8.4.4(这是Google提供的公共DNS服务器,在国内网络环境下有时能改善域名解析的稳定性) - 配置Docker镜像加速:在Docker设置中添加国内加速URL(可参考宝塔官方教程帖中的加速链接)。Docker镜像默认从Docker Hub拉取,由于服务器位于海外,国内访问速度不稳定,配置镜像加速器相当于使用国内的缓存节点来加速下载。国内常用的镜像加速服务包括阿里云容器镜像服务(需注册账号获取专属加速地址)、腾讯云镜像源等,配置方式是在
/etc/docker/daemon.json中添加registry-mirrors字段。需要注意的是,由于政策变化,部分公共镜像加速服务在国内的可用性存在波动,建议优先使用各大云厂商提供的账号专属加速地址,稳定性更有保障 - 降低版本:尝试安装Dify 1.0.0版本
修改DNS后重启面板,卸载之前失败的安装,重新搜索Dify并安装即可。
第四步:访问并初始化Dify
安装完成后,将Dify的访问地址中的协议改为http,端口改为8088,后面加上/install进入初始化安装界面。设置好邮箱和用户名后,本地部署的Dify就正式可用了。
总结
通过宝塔面板部署Dify,整个过程虽然涉及虚拟机、Linux系统、Docker等多个环节,但每一步都是可视化的点击操作,对零基础用户非常友好。部署完成后,你就拥有了一个完全私有化的AI应用开发平台,后续可以在此基础上构建聊天机器人、Agent智能体、自动化工作流,并挂载企业知识库,最终发布为可用的AI产品。
对于想要快速入门AI应用开发但又不想从零编写代码的开发者来说,Dify提供了一条低门槛、高上限的实践路径。开源免费的特性让个人开发者和中小企业都能零成本起步,值得深入探索。
核心要点
相关推荐

开源权重模型之争:安全与开放如何平衡
深入分析开源权重模型的核心争论:模型权重公开发布带来透明度与创新,但也引发安全滥用风险。本文探讨分级发布、红队测试等折中方案,解读开源AI背后的行业博弈与治理挑战。

抱怨如何侵蚀你的心智:注意力自我强化效应解析
习惯性抱怨正在训练大脑发现更多负面信息,形成恶性循环。本文从注意力自我强化机制出发,解析抱怨的心理侵蚀过程,并提供主动管理注意力、跳出负面循环的实用方法。

Steam恶意软件溯源:比特币、Cookie和外卖订单如何锁定攻击者
一起Steam恶意软件案件中,调查人员通过比特币交易链、Google Cookie和Uber Eats外卖订单三条线索交叉验证,成功溯源攻击者真实身份。深入解析数字取证技术与匿名幻觉。