从零搭建专属AI平台:Dify大模型对接实战+核心功能详解

从零搭建专属AI平台:Dify大模型对接实战+核心功能详解

📖文章内容

在这里插入图片描述

在AI原生应用开发中,大模型是核心驱动力,而高效的开发平台能让想法快速落地。

本文将对比主流工具特性,聚焦开源平台Dify的实战应用——从大模型对接(硅基流动、DeepSeek、火山方舟),到聊天助手、植物识别工作流的开发与发布,全程拆解操作步骤,帮助开发者快速搭建专属AI应用。

1 大模型对接方案选型与Dify部署基础

1.1 工具对比:Coze vs Dify

特性Coze(商业软件)Dify(开源软件)
核心定位开箱即用的AI应用搭建平台可私有化部署的全栈AI开发平台
部署方式云端直接使用,无需本地配置支持本地/虚拟机/云服务器部署(基于Docker)
大模型支持内置豆包、DeepSeek等,不支持GPT/本地模型支持对接第三方API/本地模型(Ollama部署)
适用人群小白用户、快速验证需求开发者、企业级定制化场景
扩展能力插件丰富但定制受限源码可二次开发,支持个性化功能扩展
商业价值按Token计费,无法私有化商用可部署公网提供服务,支持商业化运营

1.2 Dify部署环境准备

Dify基于Docker部署,支持多环境搭建,按需选择即可:

  1. 本地部署(Win/Mac):安装Docker Desktop(Win需启用WSL2),直接通过源码启动服务;
  2. 模拟企业环境(Linux):用VMware创建CentOS9虚拟机,安装Docker后部署;
  3. 生产环境(云服务器):购买阿里云/腾讯云等Linux服务器,配置Docker环境后部署,与虚拟机操作一致。

1.3 Dify的大模型依赖说明

Dify本身不自带大模型,需通过以下两种方式集成:

  • 「第三方API对接」:调用硅基流动、DeepSeek等平台的云端大模型(无需本地算力);
  • 「本地模型部署」:通过Ollama工具,用几条命令快速部署DeepSeek、通义千问等开源大模型(支持本地/虚拟机/云服务器)。

对接完成后,Dify可实现与Coze类似的功能,且具备更强的定制化和私有化能力。

2 实战:Dify对接主流大模型

2.1 对接硅基流动(多模型一站式集成)

硅基流动是第三方大模型服务提供商,机房部署了DeepSeek、通义千问等主流开源模型,用户无需本地部署,付费即可调用。
2.1.1 前置准备(4步完成)
  1. 注册账号:访问硅基流动模型市场完成注册;
  2. 创建API密钥:进入账号API管理页,生成并保存密钥(示例:sk-hffmkkfpdddfijmsamqtozwszaaqabzzzdguhowrexqvzvar);
  3. 实名认证:前往实名认证页面完成身份验证(必需步骤);
  4. 账户充值:通过费用中心充值,用于模型调用计费。
2.1.2 Dify对接操作
  1. 一键同步:系统将自动加载硅基流动的所有可用模型,无需单独配置;
  2. 按需筛选:若只需特定模型,可在同步后手动勾选或单独添加。

选择「硅基流动」作为模型提供商,输入API密钥;

请添加图片描述


请添加图片描述

登录Dify后台,进入「设置 → 模型管理 → 添加模型」;

请添加图片描述
请添加图片描述

2.2 对接DeepSeek(官方原生模型)

DeepSeek是拥有自研大模型的厂商,模型性能稳定,支持多账号负载均衡,适合高并发场景。
2.2.1 前置准备
  1. 注册账号:访问DeepSeek开发者平台完成注册;

实名认证与充值:完成身份验证后,通过平台充值页面缴纳模型调用费用。

请添加图片描述

创建API密钥:在平台生成密钥(示例:sk-2ce3369e07ad4cc3a2ab5f04bd39a220),支持多密钥创建;

请添加图片描述
2.2.2 Dify对接与高级配置
  1. 进入Dify模型管理,选择「DeepSeek」提供商,输入API密钥和接口地址(https://api.deepseek.com/v1);
  2. 多账号负载均衡配置:
    • 若拥有多个DeepSeek账号(如账号1余额100元、账号2余额50元),可添加多个API密钥;
    • 在模型配置中设置调用权重(如2:1),系统将按比例分配请求,提升可用性。
原理:DeepSeek在多地部署集群(上海、北京等机房),多账号配置可分散单线路压力,避免单点故障。

2.3 对接火山方舟(豆包大模型)

火山方舟是字节跳动的大模型服务平台,支持豆包系列模型,但对接流程较其他平台复杂,需注意版本适配问题。
2.3.1 注意事项

火山方舟新增部分模型参数(如max_length),而Dify默认未适配,可能导致部分最新模型对接失败。

解决方案:需修改Dify源码添加对应参数,或选择已适配的旧版本模型。
2.3.2 前置准备(5步完成)
  1. 注册与实名认证:访问火山方舟控制台,完成注册和实名认证;
  2. 开通目标模型:在模型市场选择需使用的豆包模型(如Doubao-1.5-thinking-vision-pro),点击「开通」;
  3. 创建API密钥
    • 方式1(推荐):通过API Key管理页生成API Key(示例:ab6dc044-862f-4a33-8b3d-bfad67303c30);
    • 方式2:通过IAM密钥管理生成Access Key ID和Secret Access Key;
  4. 创建推理端点:进入「自定义推理」页面,创建推理服务并启用监控,记录「接入点ID」(如ep-20251120211332-lwvpx)和模型名称;
  5. 配置网络权限:确保Dify部署环境能访问火山方舟接口(公网部署直接访问,内网需配置端口转发)。
2.3.3 Dify对接操作

输入API Key、接入点ID、模型名称等信息;

请添加图片描述

进入Dify模型管理,选择「火山方舟」提供商;

请添加图片描述


请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述
  1. 测试连接:若提示参数错误,需修改Dify源码,在请求体中添加max_length字段(具体值参考火山方舟API文档)。

3 核心概念:Dify五大应用类型区别

Dify支持多种AI应用形态,需根据场景选择合适的类型,核心区别如下:

3.1 聊天助手(Chat Assistant)

  • 定义:基于大模型的对话式AI,专注自然语言交互;
  • 核心特点:支持单轮/多轮对话、知识库增强、无代码配置;
  • 适用场景:客服机器人、智能问答、闲聊陪伴(如本文后续的情感陪伴机器人)。

3.2 智能代理(Agent)

  • 定义:具备工具调用能力的AI系统,可拆解复杂任务;
  • 核心特点:自动选择API/数据库等工具、多步骤推理链、支持代码执行;
  • 适用场景:数据分析、多工具协同(如「查询航班+预订酒店」)、自动化办公。

3.3 文本生成应用(Text Generation App)

  • 定义:专注特定场景的内容创作工具;
  • 核心特点:模板化生成、生成长度/风格可配置、支持批量输出;
  • 适用场景:文案创作、报告撰写、诗歌生成、邮件自动编辑。

3.4 对话流程(ChatFlow)

  • 定义:可视化编排的对话逻辑,精准控制交互流程;
  • 核心特点:拖放式流程图设计、支持条件分支/跳转、上下文状态管理;
  • 适用场景:表单填写引导、多轮业务咨询、对话类游戏。

3.5 工作流(Workflow)【重点】

  • 定义:跨系统的自动化任务序列,突破纯对话场景限制;
  • 核心特点:支持第三方工具集成(Slack、数据库等)、触发器驱动(时间/事件)、多角色协作;
  • 适用场景:企业流程自动化(工单处理)、数据同步、营销自动化、本文后续的植物识别工具。

4 实战1:情感陪伴机器人开发与API调用

4.1 应用设计:明确角色与功能

核心需求
打造「深夜情感女友」形象,提供倾听、情感支持、陪伴聊天服务,语言风格温柔善解人意。
提示词配置
# 角色 你是贴心的深夜情感女友,在黑夜漫漫、用户孤独寂寞时,能够耐心倾听他们的心声,用温柔、善解人意的语言与用户聊天,给予情感上的支持和安慰。 ## 技能 ### 技能 1: 倾听与回应 1. 当用户向你倾诉情感问题或分享日常琐事时,认真倾听并给予富有同理心的回应。 2. 可以从不同角度理解用户的感受,提供温暖且有针对性的话语。 ### 技能 2: 情感引导 1. 如果用户情绪低落或者迷茫,引导他们积极面对,帮助他们看到事情好的一面。 2. 通过提问等方式,帮助用户更清晰地认识自己的情感和需求。 ### 技能 3: 陪伴聊天 可以围绕各种轻松愉快的话题,如兴趣爱好、梦想等,与用户展开聊天,让用户在交流中感受到陪伴。 ## 限制 - 主要围绕情感交流和陪伴展开对话,拒绝回答与情感陪伴无关的话题。 - 回复内容需符合温柔、善解人意的人设,语言风格要亲切自然。 - 所输出的内容必须清晰明了,符合正常交流的表达习惯。 

4.2 应用发布与访问配置

  1. 配置提示词:将上述提示词填入「提示词模板」,保存配置;
  2. 发布应用:点击「发布」,生成访问地址和API接口:
    • 网页访问地址:http://192.168.23.145/chat/09dZFDdQxsuvS2IH(需部署在公网才能被外部访问);
    • API开发文档:http://192.168.23.145/app/dd28e350-ee1d-4650-b5a3-bc6769d827fa/develop
  3. 创建API密钥:进入应用「设置 → API秘钥」,生成访问密钥(示例:app-txB1kq0rHboE66jdNhpqpY31),用于接口调用鉴权。

创建应用:登录Dify,选择「聊天助手」类型,输入应用名称(如「深夜情感陪伴」);

请添加图片描述

4.3 Python代码调用示例

通过API接口可将机器人集成到APP、小程序等平台,以下是Python调用示例(无需深入理解代码,可直接复用修改):
import requests import json import re classDifyClient:def__init__(self, api_key):"""初始化Dify客户端,设置API密钥和基础地址""" self.api_key = api_key self.base_url ="http://192.168.23.145/v1/chat-messages"# 替换为你的Dify部署IP self.headers ={"Authorization":f"Bearer {api_key}","Content-Type":"application/json"}defchat(self, query, conversation_id=None):""" 发送消息并获取回复 :param query: 用户输入消息 :param conversation_id: 会话ID(保持上下文用) :return: 机器人回复 + 会话ID """ payload ={"inputs":{},"query": query,"response_mode":"blocking",# 阻塞模式,等待完整回复"user":"lqz"# 自定义用户标识}if conversation_id: payload["conversation_id"]= conversation_id try: response = requests.post( self.base_url, headers=self.headers, data=json.dumps(payload)) response.raise_for_status() res = response.json()# 移除多余标签,优化回复格式return self.remove_tag(res['answer'],'think'), res['conversation_id']except requests.exceptions.RequestException as e:print(f"API请求错误: {e}")returnNone@staticmethoddefremove_tag(text, tag_name):"""移除指定HTML标签及其内容""" pattern =fr'<{tag_name}\b[^>]*>.*?</{tag_name}>|<{tag_name}\b[^>]*\s*/>'return re.sub(pattern,'', text, flags=re.DOTALL)# 使用示例if __name__ =="__main__":print('##############深夜女友##############')print("输入 'exit' 结束对话") API_KEY ="app-txB1kq0rHboE66jdNhpqpY31"# 替换为你的API密钥 client = DifyClient(API_KEY) conversation_id =NonewhileTrue: user_input =input('\n你: ')if user_input.lower()=="exit":break reply, conversation_id = client.chat(user_input, conversation_id)print(f'女友:{reply}')

4.4 运行说明

  1. 将代码中的base_url替换为你的Dify部署IP,API_KEY替换为实际生成的密钥;
  2. 安装依赖:pip install requests
  3. 运行代码,即可与情感陪伴机器人进行多轮对话。

5 实战2:植物识别工作流开发(支持图片上传)

5.1 应用需求

用户上传植物图片,系统自动识别植物名称、生长地、核心特点,输出结构化结果。

5.2 技术选型

  • 核心能力:视觉大模型(硅基流动的Qwen2.5-VL-32B-Instruct,支持图片理解);
  • 开发类型:工作流(需处理「图片上传 → 模型识别 → 结果输出」的完整流程)。

5.3 分步开发流程

5.3.1 创建工作流应用
  1. 登录Dify,选择「工作流」类型,输入应用名称(如「植物识别助手」);
  2. 进入工作流编辑器,开始搭建流程。
请添加图片描述
5.3.2 配置触发节点(接收图片输入)
  1. 拖拽「开始」节点到画布,设置输入参数:
    • 参数名称:plant_image
    • 参数类型:「文件」(支持图片上传);
    • 必选:开启。
请添加图片描述
5.3.3 配置LLM节点(图片识别核心)
请添加图片描述
  1. 拖拽「LLM」节点到画布,连接「开始」节点;
  2. 基础配置:
    • 选择模型:Qwen/Qwen2.5-VL-32B-Instruct(需提前对接硅基流动);
    • 开启「视觉能力」:支持图片输入解析;
  3. 提示词配置:
# 角色 你是一位专业的植物识别专家,凭借丰富的知识和经验,能够精准识别各种植物。 ## 技能 ### 技能 1: 识别植物 1. 当用户上传植物图片时,运用专业知识和相关工具,准确识别出植物的名称。 2. 确定该植物的生长地信息。 ===回复示例=== - 🌿 植物名称: <植物具体名称> - 🌍 生长地: <该植物通常生长的地域范围> - 🌿 植物特点: <该植物显著特点> ===示例结束=== ## 限制 - 只讨论与植物识别相关的内容,拒绝回答与植物识别无关的话题。 - 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。 
请添加图片描述
  1. 上下文配置:
    • 输入变量:选择plant_image(关联开始节点的图片输入);
    • 输出变量:创建recognition_result,用于存储识别结果。
5.3.4 配置结束节点(返回结果)
  1. 拖拽「结束」节点到画布,连接「LLM」节点;
  2. 设置输出参数:选择recognition_result,将识别结果返回给用户。
请添加图片描述
5.3.5 发布应用
  1. 点击「保存并发布」,生成访问地址(如http://192.168.23.145/flow/plant-recognition);
  2. 测试访问:打开地址,上传植物图片,验证识别结果。
请添加图片描述

5.4 关键问题解决:内网图片外网访问

问题描述

Dify部署在本地(如192.168.23.145),上传的图片存储在内网,而调用的大模型(如硅基流动的Qwen)部署在公网,默认无法访问内网图片,导致识别失败。

解决方案(Dify 1.9+版本已默认适配,老版本需手动配置)
  1. 原理:通过配置公网可访问的文件地址,让大模型能获取图片资源进行识别。

重启Dify服务:

docker compose down docker compose up -d 

找到Dify部署目录下的.env文件,修改FILES_URL变量:

FILES_URL=http://192.168.23.145 # 改为你的Dify部署IP 

📒本文总结

本文从工具选型、大模型对接,到实战开发,完整覆盖了Dify平台的核心应用场景。

通过Dify,开发者无需关注底层架构,可快速实现从文本对话到多模态工作流的AI应用开发。无论是私有化部署的企业需求,还是快速验证想法的个人项目,Dify都能提供灵活高效的解决方案。

后续可进一步探索知识库集成、多工具联动等高级功能,打造更复杂的AI原生应用。

🔍更多内容

💡Dify:企业级AI应用开发全攻略
💡Dify安装全攻略:虚拟机到本地部署
💡Dify完整部署指南:本地/虚拟机/云服务器搭建 + Ollama大模型对接
💡AI智能体入门教程
💡智能出题系统:让教学更高效


1️⃣关注博主🌀与你共同遨游前端!
2️⃣博主简历🌀与你共同了解博主!
3️⃣扣子实战开发🌀解锁AI智能体搭建


📢:辛苦码的干货,求点赞+收藏 呀~问题留言或戳公众号,第一时间回复 + 解锁海量编程资源!💌


注:原创首发ZEEKLOG©️波仔椿 版权所有,转载请注明原文地址,避免侵权追责。

Read more

【报表查询】.NET开源ORM框架 SqlSugar 系列

【报表查询】.NET开源ORM框架 SqlSugar 系列

文章目录 * 前言 * 实践一、按月统计没有为0 * 实践二、 统计某月每天的数量 * 实践三、对象和表随意JOIN * 实践四、 List<int>和表随意JOIN * 实践五、大数据处理 * 实践六、每10分钟统计Count * 实践七、 每个ID都要对应时间 * 总结 前言 在我们实际开发场景中,报表是最常见的功能,业主爸爸们最喜欢对着大屏和报表指点江山。 今天介绍如果通过 sqlsugar 层来处理报表数据。 1. Sql 可以方便的创建 临时表 并且可以将这些 临时表 进行 JOIN 操作。 2. Sql 可以方便的实现 行列互转 操作。 以上2点用 sqlsugar 就能很好解决,下面我们将来展示几个最常见的实践示例。 先准备一张表,表结构如下: 实践一、按月统计没有为0

By Ne0inhk
Flutter 组件 actions_toolkit_dart 适配鸿蒙 HarmonyOS 实战:自动化套件方案,构建 GitHub Actions 深度集成与跨端流水线治理架构

Flutter 组件 actions_toolkit_dart 适配鸿蒙 HarmonyOS 实战:自动化套件方案,构建 GitHub Actions 深度集成与跨端流水线治理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 actions_toolkit_dart 适配鸿蒙 HarmonyOS 实战:自动化套件方案,构建 GitHub Actions 深度集成与跨端流水线治理架构 前言 在鸿蒙(OpenHarmony)生态迈向全球化开源协作、涉及极大规模的跨端 CI/CD 流水线构建、多机型自动化兼容性测试及严苛的代码准入控制背景下,如何实现一套既能深度对接 GitHub Actions 核心底脚(Toolkits)、又能提供原生 Dart 编程感且具备工业级日志输出与状态管理的“自动化控制基座”,已成为决定应用研发迭代频率与交付质量稳定性的关键。在鸿蒙项目这类强调多模块(HAP/HSP)并行构建与分布式证书签名校验的环境下,如果 CI 脚本依然依赖大量零散的 Shell 拼接,由于由于环境变量的微差异,极易由于由于“脚本不可维护”导致鸿蒙应用在自动化发布环节频繁由于由于故障导致阻塞。

By Ne0inhk
Trae + Git本地仓库管理(离线)小白一站式指南

Trae + Git本地仓库管理(离线)小白一站式指南

环境 Windows环境,安装trae,git bash。 ps:trae的生态和vscode基本一致,在vscode中也可以仿照操作。 1全局初始化 ctrl+R输入cmd呼出控制台,运行 git --version 显示版本,说明系统环境变量正常,可以往下操作,若报错,重装git bash。 进入Trae,新建终端 配置git用户名和邮箱(离线状态邮箱随便写。若是想要在线状态把代码上传github,需要跟你的github账号保持一致)。在终端窗口中依次键入以下命令: git config --global user.name "<输入你的用户名>" git config --global user.email "<输入你的邮箱>" 2建立本地仓库 2.1

By Ne0inhk