news 2026/7/30 8:59:45

Ubuntu部署Dify+蓝耘MaaS打造AI应用实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu部署Dify+蓝耘MaaS打造AI应用实战

Ubuntu部署Dify+蓝耘MaaS打造AI应用实战

在生成式AI技术快速渗透各行各业的今天,企业面临的不再是“要不要用大模型”,而是“如何高效、低成本地落地AI能力”。一个典型的挑战是:业务部门急需一个能回答产品政策的智能客服,但研发团队却卡在模型选型、API对接和知识库集成上——开发周期动辄数周,成本居高不下。

有没有一种方式,能让开发者甚至非技术人员,在几个小时内就搭建出一个可运行的AI应用原型?答案是肯定的。借助Dify这类低代码AI应用平台,配合国内高性能且兼容OpenAI协议的MaaS服务(如蓝耘智算),我们完全可以实现“开箱即用”的AI能力交付。

本文将带你从零开始,在一台Ubuntu云服务器上完成整套环境的搭建与配置。我们将不依赖任何本地开发工具,全程通过命令行操作,最终构建一个基于RAG(检索增强生成)的电商智能客服系统,并实现问答结果自动导出为Markdown文档的功能。整个过程无需深入编码,重点在于理解组件间的协作逻辑与工程实践中的关键细节。


首先确保你有一台运行Ubuntu 22.04 LTS的服务器实例,建议配置不低于4核CPU、8GB内存、20GB磁盘空间。如果你使用的是云厂商提供的最小化镜像,可能需要先安装一些基础工具:

sudo apt update && sudo apt upgrade -y sudo apt install -y wget curl git unzip net-tools

这些工具将在后续用于下载代码、调试网络和查看系统状态。特别提醒:若当前用户不是root,请确认已加入sudo组并能够执行提权命令,否则后续安装Docker等操作会失败。

接下来最关键的一步是安装容器化运行时环境——Docker 和 Docker Compose。由于官方源位于境外,直接拉取极有可能因网络波动导致中断。为此,我们采用阿里云提供的镜像加速方案来提升稳定性。

先安装必要的依赖包:

sudo apt install -y ca-certificates curl gnupg lsb-release

然后添加阿里云的GPG公钥,以验证软件包来源的安全性:

sudo mkdir -p /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

接着配置软件源列表:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

现在可以安全地更新索引并安装Docker引擎及Compose插件:

sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完成后验证版本信息:

docker --version docker compose version

正常输出应类似:

Docker version 24.0.7, build afdd53b Docker Compose version v2.20.2

此时建议将当前用户加入docker组,避免后续每次执行docker命令都需输入sudo

sudo usermod -aG docker $USER newgrp docker

这一步看似微小,但在实际运维中能显著减少权限错误带来的困扰。比如当你在CI/CD流水线中运行容器时,缺少该配置可能导致任务失败。

准备好运行时环境后,就可以开始部署Dify平台了。Dify是一个开源的LLM应用开发框架,其核心优势在于提供了图形化的提示词编排、数据集管理与Agent流程设计能力,极大降低了构建复杂AI系统的门槛。

项目代码托管在GitHub上,我们通过git clone获取主分支内容:

git clone https://github.com/langgenius/dify.git cd dify/docker

如果遇到网络不稳定的情况,也可以选择手动下载ZIP包上传至服务器:

wget https://github.com/langgenius/dify/archive/refs/heads/main.zip unzip main.zip cd dify-main/docker

进入目录后可以看到两个关键文件:docker-compose.yml.env.example。前者定义了前端、后端、PostgreSQL数据库和Redis缓存四个服务的启动参数;后者则是环境变量模板。

复制模板为正式配置文件:

cp .env.example .env

默认配置已经足够用于初步测试,例如前端监听80端口、API服务运行在5001端口、数据库密码自动生成等。除非有特殊需求(如更换端口或设置固定密码),否则无需修改.env文件。

一切就绪后,执行一键启动:

docker compose up -d

首次运行会自动拉取以下镜像:
-difyai/web-server(前端)
-difyai/api-server(后端)
-postgres:15(数据库)
-redis:7(缓存)

根据网络状况,这个过程大约持续2到5分钟。可通过以下命令查看容器状态:

docker ps

当所有容器均显示为Up状态时,说明服务已就绪。进一步检查API日志是否有异常:

docker compose logs -f api

当看到如下输出时表示后端服务成功启动:

INFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)

此时打开浏览器访问http://<你的服务器IP>:80,页面会自动跳转至安装向导/install

在这里需要创建初始管理员账户。填写以下信息:
- 邮箱:建议使用真实邮箱,便于后续找回密码
- 密码:至少8位,包含大小写字母和数字
- 实例名称:例如“公司AI中台”
- 语言:选择“中文简体”

提交后系统将自动初始化数据库表结构,约30秒后跳转至登录页。使用刚注册的账号登录,即可进入Dify控制台。

这个管理员角色拥有最高权限,可用于添加团队成员、配置模型供应商、管理插件等高级功能。因此务必妥善保管凭证。

登录成功后,下一步就是让Dify具备调用大模型的能力。Dify本身不提供模型推理服务,而是通过外部API接入。这里我们选用蓝耘MaaS平台,原因有三:一是支持DeepSeek、Qwen、Llama等多种主流模型;二是完全兼容OpenAI API格式,接入成本极低;三是国内节点部署,响应速度快且稳定。

首先前往 蓝耘智算平台 注册账号,使用手机号加验证码完成认证。登录后进入「MaaS 服务」→「API KEY 管理」,点击「创建密钥」并复制生成的Key。

注意:该密钥仅显示一次,请立即保存至安全位置。

回到Dify后台,点击右上角头像 → 设置 → 模型供应商 → + 添加模型供应商。

选择“OpenAI 兼容接口”,填写以下信息:

字段
名称蓝耘-MaaS(可自定义)
API Base URLhttps://maas-api.lanyun.net/v1
API KeyBearer your_actual_key_here

点击“测试连接”按钮,若返回“连接成功”则表示配置无误,保存即可。

接下来添加具体的可用模型。在同一页面点击“添加模型”,输入蓝耘支持的模型路径,例如:

  • /maas/deepseek-ai/DeepSeek-V3.1
  • /maas/qwen/Qwen-Max

设置类型为chat,最大上下文长度设为32768 tokens(部分模型支持)。保存后,这些模型就会出现在新建应用时的模型选择列表中。

现在平台基础能力已准备完毕,我们可以着手构建第一个AI应用:一个基于知识库的“电商客服机器人”。

点击首页“创建空白应用” → 类型选择“聊天助手”,命名为“电商客服机器人”。

进入编辑界面后,首先配置系统提示词(Prompt)。这是决定AI行为的核心指令,必须清晰明确。输入以下内容:

你是某电商平台的智能客服助手,职责是根据提供的产品知识库回答用户问题。 请遵循以下规则: 1. 仅依据知识库内容作答,不得编造信息; 2. 回答简洁清晰,避免冗长; 3. 若无法找到答案,请回复“抱歉,我暂时无法解答这个问题。” 知识库内容如下: {{context}}

其中{{context}}是占位符,将在运行时由RAG模块注入最相关的检索结果。

接下来启用RAG能力。进入左侧菜单“知识库” → 新建知识库,命名为“商品FAQ”。

支持上传PDF、Word、TXT等格式的文档。你可以上传一份模拟的退换货政策说明或物流时效表。系统会在后台自动完成文本切片、清洗和向量化处理(使用内置嵌入模型),整个过程对用户透明。

上传完成后,返回应用编辑页,在“检索设置”中开启RAG功能,并关联刚才创建的知识库。

此时整个链路已经打通:用户提问 → 系统从知识库中检索相关内容 → 将原文片段注入提示词 → 调用大模型生成自然语言回答。

进行一次测试:在调试窗口输入

“七天无理由退货怎么申请?”

预期返回:

“您可以在订单详情页点击‘申请售后’,选择‘七天无理由退货’,按提示上传凭证并寄回商品。审核通过后我们将为您办理退款。”

这说明RAG机制工作正常,实现了基于真实业务数据的精准应答,而非模型“幻觉”式的自由发挥。

为了让这个应用更具实用性,我们可以进一步扩展其输出能力。比如希望每次咨询结束后,能自动生成一份可归档的Markdown报告。

Dify的“工作流”模式支持通过“代码节点”实现定制化逻辑。我们在流程末尾插入一个JavaScript类型的代码节点,内容如下:

// 接收上游输入 const userInput = $input.text(); const aiResponse = $input.ai_response(); // 构建 Markdown 内容 const markdown = ` # 智能客服问答记录 > 自动生成于 ${new Date().toLocaleString('zh-CN')} --- ## 📝 用户问题 ${userInput} ## 💬 AI 回复 ${aiResponse} --- 📌 注:本回答基于内部知识库自动生成,仅供参考。 `; // 返回可供下载的文件对象 return [{ json: { question: userInput, answer: aiResponse, export_time: new Date().toISOString() }, binary: { data: { data: Buffer.from(markdown, 'utf8').toString('base64'), mimeType: 'text/markdown', fileName: `faq_${Date.now()}.md`, fileExtension: 'md' } } }];

这段脚本的作用是接收前序节点的用户输入和AI回复,拼接成结构化的Markdown文本,并将其转换为Base64编码的二进制流,供后续节点处理。

再连接一个“文件输出”节点,配置为下载binary.data中的内容。这样每次对话结束,用户就能获得一个可保存的.md文件,适用于工单归档、客户沟通留痕或与其他系统集成。

这种设计思路体现了现代AI应用的一个重要趋势:不仅要“能说”,还要“能记”、“能传”。通过简单的代码扩展,我们就把一个问答机器人升级成了具备完整闭环能力的服务终端。

回顾整个流程,我们完成了一次典型的AI应用快速原型开发:从Ubuntu服务器初始化,到Docker化部署Dify,再到接入蓝耘MaaS的大模型能力,最后通过可视化编排实现RAG+结构化输出的复合功能。整个过程不超过两小时,且大部分步骤均可复用至其他场景。

为什么这套组合值得推荐?

首先是开发效率极高。Dify的拖拽式界面让非专业开发者也能参与AI系统构建,省去了大量前后端联调的时间。其次是架构灵活。无论是替换模型供应商、更新知识库还是调整提示词,都不需要重新部署服务。第三是成本可控。蓝耘提供按量计费的GPU推理资源,相比自建模型集群大幅降低初期投入。最后是国产化友好。全链路在国内完成,无需翻墙,响应延迟低,符合企业合规要求。

更重要的是,这种方式让我们能把精力集中在“业务价值”而非“技术实现”上。比如当你明天接到新需求——做一个HR招聘助手——只需要更换知识库和提示词,几分钟就能上线试用版。

AI正在从“炫技阶段”走向“实用主义”。真正有价值的不是模型参数规模有多大,而是能不能在一个星期一上午9点,快速回应老板那句:“能不能做个能查报销政策的机器人?”而Dify + 蓝耘MaaS这样的组合,正是通往高效落地的捷径之一。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/29 9:59:17

vsftpd 安装、升级、配置全流程总结(含问题解决方案)

一、遇到的核心问题总结在离线环境中&#xff0c;主要遇到以下问题&#xff1a;安装路径非默认&#xff1a;源码编译后 vsftpd 默认安装到/usr/local/sbin/vsftpd&#xff08;而非/usr/sbin/&#xff09;&#xff0c;导致服务文件ExecStart路径不匹配&#xff0c;启动失败&…

作者头像 李华
网站建设 2026/7/30 7:52:31

HunyuanVideo-Foley部署:本地与云端GPU实战

HunyuanVideo-Foley部署&#xff1a;本地与云端GPU实战 在智能家居设备日益复杂的今天&#xff0c;确保无线连接的稳定性已成为一大设计挑战。蓝牙技术虽已发展至5.0版本&#xff0c;但实际应用中仍面临功耗、干扰和兼容性等问题。尤其在多设备共存的环境中&#xff0c;如何实现…

作者头像 李华
网站建设 2026/7/28 3:11:55

LangChain工具使用:简化AI函数调用

本章对应源代码&#xff1a;https://github.com/RealKai42/langchainjs-juejin/blob/main/lc-tools.ipynb 上一节中&#xff0c;我们学习了如何直接使用 openAI 的原生 API 去使用 function calling &#xff08;tools&#xff09;功能&#xff0c;需要自己维护历史、写参数类…

作者头像 李华
网站建设 2026/7/27 5:41:27

Docker 镜像打包为 tar 并在其他环境加载运行(离线部署实战指南)

Docker 镜像打包为 tar 并在其他环境加载运行&#xff08;离线部署实战指南&#xff09;适用场景&#xff1a;内网部署 / 无法访问 Docker Hub / 生产环境离线交付 阅读目标&#xff1a;掌握 Docker 镜像打包、传输、加载、运行的完整闭环一、为什么需要把 Docker 镜像打包成 t…

作者头像 李华
网站建设 2026/7/25 17:45:36

Docker 镜像体积优化实战:从 1GB 到 100MB

Docker 镜像体积优化实战&#xff1a;从 1GB 到 100MB适用人群&#xff1a;已经使用 Docker&#xff0c;有镜像体积焦虑的开发者 / 运维工程师 阅读目标&#xff1a;掌握 一套可复用的镜像瘦身方法论&#xff0c;而不是零散技巧一、为什么 Docker 镜像会变得这么大&#xff1f;…

作者头像 李华
网站建设 2026/7/28 9:41:05

LobeChat能否分配任务?团队协作智能调度

LobeChat能否分配任务&#xff1f;团队协作智能调度 在现代企业中&#xff0c;一个常见的场景是&#xff1a;产品经理在群里说“帮我把昨天会议里的三个需求整理成文档”&#xff0c;接着有人手动打开 Notion&#xff0c;翻找聊天记录&#xff0c;复制粘贴、重新组织语言——整…

作者头像 李华