[控场AI]
教程攻略· 9 分钟阅读· 4,792 字

Dify本地部署教程:宝塔+Docker从零搭建AI开发平台

Dify本地部署教程:宝塔+Docker从零搭建AI开发平台

Dify开源LLM应用平台介绍及本地Docker部署全流程教程

本文介绍了Dify这一开源大语言模型应用开发平台的核心概念、功能优势及应用场景,并详细讲解了通过VMware虚拟机+Ubuntu+宝塔面板+Docker的本地部署全流程。Dify融合BaaS和LLMOps理念,支持数百个国内外模型,内置提示词编排、RAG知识库、Agent工具调用等能力,相比LangChain更适合快速交付和生产环境。

什么是Dify?为什么值得学习

Dify是一款开源的大语言模型(LLM)应用开发平台,融合了后端即服务(BaaS)和LLMOps的理念,让开发者甚至非技术人员都能快速搭建生产级的生成式AI应用。

这里有两个关键概念值得展开:BaaS(Backend as a Service) 是一种云计算服务模式,它将后端基础设施(如数据库、用户认证、文件存储、API管理等)抽象为即用型服务,开发者无需从零搭建和维护服务器端逻辑。LLMOps 则是MLOps(机器学习运维)在大语言模型领域的延伸,涵盖了LLM应用从开发、测试、部署到监控的全生命周期管理,包括提示词版本管理、模型性能监控、成本追踪、A/B测试等运维实践。Dify将这两个理念融合,意味着它既提供了开箱即用的后端能力,又内置了管理LLM应用全流程的工具链。

与另一个知名的AI开发库LangChain相比,如果说LangChain是一个工具箱(提供锤子、钉子等零散工具),那么Dify更像是一套完整的脚手架——不仅有工具,还有经过工程设计和软件测试的整体架构,能直接支撑生产环境的需求。

具体来说,LangChain是2022年底由Harrison Chase发起的开源Python/JavaScript库,它提供了与LLM交互的各种抽象组件,如链(Chain)、代理(Agent)、记忆(Memory)、文档加载器等。开发者需要编写代码将这些组件组装成完整应用,灵活性极高但学习曲线陡峭,且从原型到生产部署需要自行解决工程化问题(如并发处理、错误重试、日志监控等)。Dify则采用了不同的产品哲学:它提供可视化的编排界面,将常见的LLM应用模式(聊天机器人、工作流、知识库问答)产品化,内置了生产环境所需的基础设施。两者并非替代关系——LangChain适合需要深度定制的开发者,Dify适合追求快速交付和团队协作的场景。

Dify教程概览

Dify的核心优势在于三点:

  • 模型支持广泛:支持数百个大语言模型,国外包括OpenAI、Gemini、Claude等,国内覆盖智谱、百川、讯飞星火、通义千问广告、文心一言、DeepSeek广告等主流模型
  • 功能完整:内置提示词编排界面、高质量RAG引擎(外挂知识库)、Agent工具调用、工作流设计等关键能力
  • 开源免费:开发者可以在开源基础上自由扩展,将重心放在创新和业务本身

Dify能做什么?主要应用场景一览

Dify的应用场景非常丰富,主要包括以下几个方向:

  1. 构建智能聊天机器人和Agent:通过提示词编排和工具调用,快速创建各类AI助手
  2. 集成到现有业务系统:通过Dify提供的API,将大语言模型能力内嵌到已有应用中
  3. 设计自动化工作流:针对特定业务场景,编排AI执行的工作流程
  4. 挂载企业知识库:将产品文档、参数等企业数据作为AI的外挂知识库,实现精准的业务问答
  5. 发布为Web应用:将构建好的AI应用发布为公开的Web站点供用户访问

其中,RAG(Retrieval-Augmented Generation,检索增强生成) 是解决大语言模型知识局限性的核心技术架构,值得深入理解。其工作原理是:当用户提出问题时,系统先从外部知识库中检索与问题最相关的文档片段,然后将这些片段作为上下文与用户问题一起送入LLM生成回答。这种方式解决了LLM训练数据截止日期的限制、幻觉问题以及企业私有数据无法被模型直接获取的痛点。RAG的关键环节包括文档分块(Chunking)、向量嵌入(Embedding)、向量数据库存储与检索、以及重排序(Reranking)等步骤。Dify内置的RAG引擎封装了这些复杂流程,用户只需上传文档即可完成知识库构建。

说个细节,Dify支持的模型中,不同模型具备不同能力。例如想构建能调用工具的Agent,需要选择支持工具调用(Function Calling)的模型,如OpenAI、月之暗面、DeepSeek等;而支持视觉能力的模型则可以处理图像输入。选择模型时需要根据实际需求匹配。

Function Calling(函数调用/工具调用) 是OpenAI在2023年6月率先推出的一项关键能力,它允许大语言模型在对话过程中识别用户意图,并结构化地调用预定义的外部函数或API。具体流程是:开发者预先定义一组可用工具的描述(包括函数名、参数格式、功能说明),LLM在理解用户请求后,判断是否需要调用某个工具,如果需要则输出标准化的JSON格式调用参数,由应用层执行实际调用后将结果返回给LLM继续生成回答。这一机制是构建AI Agent的基础,使LLM从纯文本生成器进化为能够操作外部世界的智能体。并非所有模型都支持此能力,因此在Dify中构建Agent时需要注意模型选择。

Dify本地部署环境准备

Dify支持多种部署方式,包括源码启动、Docker部署等。本教程采用宝塔面板+Docker的方式,这是对新手最友好的方案。

选择Docker部署的原因在于:Docker是一种操作系统级别的虚拟化技术,它将应用程序及其所有依赖(运行时环境、系统库、配置文件等)打包成标准化的容器镜像。与传统虚拟机不同,Docker容器共享宿主机的操作系统内核,因此启动速度快、资源占用小。对于Dify这样包含多个微服务组件(Web前端、API服务、Worker进程、数据库、Redis缓存、向量数据库等)的复杂应用,Docker Compose可以通过一个配置文件定义并编排所有服务的启动顺序和网络关系,极大简化了部署复杂度。这也是为什么宝塔面板+Docker的方案对新手友好——它将原本需要手动配置十几个服务的过程简化为几次点击。

第一步:安装VMware虚拟机

首先需要下载两个软件:

  • VMware Workstation(或VMware Player):用于运行Linux虚拟系统
  • Ubuntu 22.04 ISO镜像:作为虚拟机的操作系统

安装VMware时需要注意:不要安装到C盘,因为虚拟机运行会产生大量缓存文件,容易占满系统盘空间。

第二步:创建并安装Ubuntu虚拟机

打开VMware后,按以下步骤操作:

  1. 点击「创建新虚拟机」,选择「稍后安装操作系统」
  2. 系统类型选择Linux,版本选择Ubuntu 64位
  3. 磁盘大小分配20GB即可(仅用于部署Dify的话足够)
  4. 完成创建后,进入虚拟机设置,在CD/DVD选项中加载Ubuntu ISO镜像文件

虚拟机创建后需要加载ISO镜像

加载镜像后播放虚拟机,选择「Try or Install Ubuntu」,进入安装界面后:

  • 语言选择「中文简体」
  • 安装类型选择「最小安装」(仅部署Dify足够)
  • 磁盘选择「清除整个磁盘」直接安装
  • 设置用户名和密码(建议简单密码如123456,可勾选自动登录)

安装过程中的系统配置

安装完成后重启,Ubuntu系统就准备好了。

安装宝塔面板

进入Ubuntu系统后,打开浏览器访问宝塔官网,选择「宝塔Linux面板」→「安装免费版」,复制Ubuntu对应的安装命令。

在终端中(快捷键Ctrl+Alt+T打开)粘贴命令并执行,输入系统密码后等待安装完成。安装成功后,宝塔会提供:

  • 内网访问地址
  • 默认用户名和密码

优化宝塔面板配置

默认的端口号和安全入口比较难记,建议通过终端运行bt命令进行修改:

  • 将端口号改为易记的数字(如8899)
  • 将安全入口改为简短路径(如/backend)
  • 修改用户名和密码为自己熟悉的组合

宝塔面板配置修改

修改完成后,通过http://虚拟机IP:8899/backend即可访问宝塔面板。此后所有操作都可以在浏览器中完成,虚拟机窗口可以最小化。

通过宝塔面板用Docker部署Dify

安装Docker环境

在宝塔面板左侧找到「Docker」模块,点击安装,使用默认配置即可。安装过程需要几分钟。

部署Dify应用

Docker安装完成后,在Docker模块中搜索「Dify」,点击安装。如果遇到安装失败(常见的BT File错误),可以尝试以下解决方案:

方案一:修改DNS配置

在虚拟机终端中编辑DNS配置文件:

nano /etc/resolv.conf

将nameserver改为:

nameserver 8.8.8.8
nameserver 8.8.4.4

这里使用的是Google的公共DNS服务器地址。DNS(Domain Name System,域名系统)负责将人类可读的域名(如github.com)解析为机器可识别的IP地址。国内网络环境下,默认DNS有时无法正确解析Docker镜像仓库的地址,导致镜像拉取失败。将DNS改为8.8.8.8(Google主DNS)和8.8.4.4(Google备用DNS)可以获得更稳定的域名解析服务。

保存后重启宝塔面板,重新安装Dify。

方案二:配置Docker镜像加速

在Docker设置中修改加速URL,宝塔的帮助文档中提供了多个国内加速链接,逐一尝试填入后重启Docker服务。Docker镜像加速的原理是将原本需要从Docker Hub(位于海外)拉取的镜像,通过国内的镜像代理节点进行缓存和分发,从而解决网络访问慢或不可达的问题。

访问Dify管理后台

安装成功后,将Dify的访问地址中的HTTPS改为HTTP,端口改为8088,末尾加上/install,即可进入Dify的初始化设置页面。设置好邮箱和用户名后,本地部署就全部完成了。

总结与后续学习路线

本教程完成了Dify从零到部署的全过程,采用VMware+Ubuntu+宝塔+Docker的技术栈,虽然步骤较多,但每一步都是图形化操作,对新手非常友好。

部署完成后,还有更多进阶内容值得探索:

  • 构建智能聊天机器人和Agent
  • 配置AI工具调用
  • 设计自动化工作流
  • 搭建RAG知识库
  • 通过API集成到外部应用

Dify作为目前最活跃的开源LLM应用开发平台之一,其生态和功能仍在快速迭代。掌握本地部署是第一步,后续可以根据实际业务需求,逐步深入各个模块的使用。

核心要点

  • Dify是开源的大语言模型应用开发平台,支持数百个国内外模型,提供提示词编排、RAG知识库、Agent工具调用等完整功能
  • 本教程采用VMware虚拟机+Ubuntu+宝塔面板+Docker的部署方案,对新手最为友好
  • 部署过程中常见的网络问题可通过修改DNS配置(8.8.8.8)或配置Docker镜像加速来解决
  • Dify部署完成后可构建聊天机器人、设计工作流、挂载知识库,并通过API集成到现有业务系统
  • 与LangChain相比,Dify提供的是经过工程设计的完整脚手架方案,更适合生产环境使用
#Dify本地部署#Dify教程#Dify Docker部署#AI应用开发平台#宝塔面板部署Dify#大语言模型#开源LLM平台#Dify安装
分享:

相关推荐