Skills MCP Model 博客 提交 Skills
登录 注册

DeepSeek + Dify 搭建 AI 应用

低代码构建 AI 应用,无需编写一行代码。可视化编排界面,拖拽式工作流设计,从零搭建知识库问答、Agent 智能体、企业级 AI 应用。

开始学习
60K+
GitHub Stars
Apache 2.0
开源协议(可商用)
3 种
应用类型

数据来源:github.com/langgenius/dify 官方仓库

为什么选择 Dify 搭建 AI 应用?

Dify 是开源 LLM 应用开发平台,将 DeepSeek 模型快速构建为 AI 应用。可视化编排,拖拽式工作流,支持知识库、Agent、对话机器人,完美适配 DeepSeek 模型。

官方仓库 github.com/langgenius/dify
开源协议 Apache 2.0(可商用)
部署方式 Docker Compose / 官方云服务
核心功能 可视化 Prompt 编排、RAG 知识库、Agent 工作流、API 发布
DeepSeek 支持 通过 OpenAI-API-compatible 原生接入,支持 V3 和 R1 全系列

Dify 核心优势

  • 可视化 Prompt 编排,拖拽式工作流设计,无需写代码
  • 内置 RAG 引擎,支持 PDF / Word / TXT / Markdown / 网页等多种格式
  • Agent 智能体:工具调用、代码执行、条件分支
  • 对话日志与分析,持续优化应用效果
  • 一键 API 发布,支持 iframe 嵌入和分享链接
  • 与 DeepSeek 通过 OpenAI-API-compatible 方式无缝接入

Dify 简介与安装

Dify 是一个开源的 LLM 应用开发平台,帮助你快速将大语言模型(如 DeepSeek)构建为可用的 AI 应用。通过 Docker Compose 一键部署,5 分钟即可完成安装。

什么是 Dify?

Dify 由 LangGenius 团队开发,是一个面向 LLM 应用的全生命周期开发平台。它提供了从 Prompt 编排、知识库管理、Agent 工作流到应用发布的一站式解决方案。你可以把 Dify 理解为"AI 应用的 WordPress"——通过可视化界面,快速搭建各种 AI 应用,无需编写代码。

环境要求

  • Docker 和 Docker Compose(必须)
  • 至少 4GB 可用内存(推荐 8GB 以上)
  • 至少 20GB 可用磁盘空间
  • 支持 Windows / macOS / Linux

Docker Compose 一键部署

以下命令会克隆 Dify 仓库并通过 Docker Compose 启动所有服务:

# 克隆 Dify 仓库 git clone https://github.com/langgenius/dify.git # 进入 Docker 目录 cd dify/docker # 复制环境变量配置文件 cp .env.example .env # 启动所有服务(PostgreSQL、Redis、Weaviate、Nginx、Dify API、Dify Web) docker compose up -d # 查看服务状态 docker compose ps

部署完成后,打开浏览器访问 http://localhost:3000,即可进入 Dify 管理界面。首次访问需要设置管理员邮箱和密码。

提示

如果不想本地部署,Dify 也提供官方云服务(cloud.dify.ai),注册即可使用,免去部署步骤。但自部署可以完全掌控数据,适合对隐私有要求的场景。

接入 DeepSeek 模型

Dify 支持通过 OpenAI-API-compatible 方式接入 DeepSeek 模型。无论是 DeepSeek 官方 API 还是 Ollama 本地部署的 DeepSeek,都可以在 Dify 中配置使用。

配置步骤

  1. 登录 Dify 管理界面后,点击右上角头像,选择「设置
  2. 在左侧菜单中点击「模型供应商
  3. 在模型供应商列表中找到「OpenAI-API-compatible
  4. 点击「添加到供应商」按钮
  5. 填写以下配置信息

方式一:接入 DeepSeek 官方 API

如果你使用 DeepSeek 官方 API,配置如下:

供应商类型 OpenAI-API-compatible
供应商名称 DeepSeek(自定义)
API Base URL https://api.deepseek.com/v1
API Key sk-your-deepseek-api-key

API Key 获取地址:platform.deepseek.com/api_keys。注册后即可创建,新用户有免费额度。

方式二:接入 Ollama 本地部署的 DeepSeek

如果你使用 Ollama 在本地运行 DeepSeek 模型,配置如下:

API Base URL http://localhost:11434/v1
API Key 任意填写(Ollama 本地不需要验证)

如果 Dify 和 Ollama 在同一台机器上运行,使用 localhost 即可。如果 Ollama 在另一台机器上,请替换为对应 IP 地址。确保 Ollama 已设置 OLLAMA_HOST=0.0.0.0:11434 环境变量。

添加模型

配置完成后,在「模型供应商」页面点击进入刚添加的 DeepSeek 供应商,点击「添加模型」按钮:

  • 模型类型:LLM(大语言模型)
  • 模型名称:deepseek-chat(V3)或 deepseek-reasoner(R1)
  • 如果使用 Ollama,模型名称填 deepseek-r1:8b 等 Ollama 模型名

保存后,DeepSeek 模型即出现在可用模型列表中,可以在创建应用时选择使用。

创建第一个聊天应用

接入 DeepSeek 模型后,我们来创建第一个 AI 聊天应用。Dify 提供三种应用类型:聊天助手、文本生成、Agent。我们先从最简单的聊天助手开始。

步骤一:创建应用

  1. 在 Dify 首页点击「创建应用」按钮
  2. 选择「聊天助手」应用类型
  3. 填写应用名称(如"DeepSeek 智能助手")
  4. 选择应用图标(可选)
  5. 点击「创建」

步骤二:配置模型

进入应用编辑页面后,在右侧「模型设置」区域:

  • 在「模型」下拉菜单中选择刚才添加的 DeepSeek 模型(deepseek-chat 或 deepseek-reasoner)
  • 设置模型参数:
    • Temperature:0.7(对话)/ 0.1(代码)/ 0.9(创意写作)
    • 最大 Token:根据需求设置,一般 2048 足够
    • 上下文窗口:建议保留默认值

步骤三:设置系统提示词

系统提示词(System Prompt)定义了 AI 的角色和行为。在「编排」页面的「提示词」区域,输入以下内容:

你是一个专业的 AI 智能助手,由 DeepSeek 模型驱动。 你的回答风格: - 简洁明了,不啰嗦,直击要点 - 如果问题涉及代码,给出完整可运行的示例 - 如果问题涉及数学或逻辑,展示推理过程 - 如果用户的描述不清楚,主动追问细节 - 用中文回复,专业术语可附带英文原文 你的限制: - 不知道就说不知道,不编造信息 - 涉及医疗、法律等专业建议时,提醒用户咨询专业人士

步骤四:测试聊天

在页面右侧的「预览」区域,可以直接测试聊天效果。输入问题,观察 DeepSeek 的回复是否符合预期。如果效果不理想,可以调整 Temperature 参数或优化系统提示词。

调试技巧

  • 如果回答太简短,尝试降低 Temperature 并增加 max_tokens
  • 如果回答偏离主题,优化系统提示词,更明确地描述角色
  • 如果使用 R1 模型,注意它会输出思维链(thinking),这是正常的推理过程
  • 点击「日志与标注」可以查看历史对话,分析效果

更多关于系统提示词的设计技巧,请参考 DeepSeek 使用教程 中的提示词工程部分。

知识库搭建

知识库是 RAG(检索增强生成)的核心。将你的文档上传到 Dify 知识库,DeepSeek 可以基于文档内容回答问题,大幅提升回答的准确性和专业性。

上传文档

在 Dify 顶部导航栏点击「知识库」,进入知识库管理页面:

  1. 点击「创建知识库」按钮
  2. 填写知识库名称(如"公司产品手册")
  3. 点击「上传文档」,选择要上传的文件

支持的文档格式

文档类型

PDF / Word / PPT

支持 .pdf、.docx、.pptx 格式,自动提取文本内容。

纯文本

TXT / Markdown / CSV

支持 .txt、.md、.csv 格式,适合结构化数据。

网页

网页抓取

输入 URL,Dify 自动抓取网页内容并导入知识库。

代码

代码文件

支持 .py、.js、.java 等代码文件,适合技术文档。

分块设置(Chunk Settings)

文档上传后,Dify 会自动将文档切分为多个"块"(Chunk),每个块会独立进行向量化存储和检索。分块设置直接影响检索效果:

块大小(Chunk Size) 建议 500-1000 字符。太小信息不完整,太大会降低检索精度。
重叠大小(Overlap) 建议 50-100 字符。块之间的重叠部分,防止关键信息被切断。

检索设置

在知识库的「检索设置」中,你可以配置以下参数:

检索方式 向量检索(语义匹配)/ 全文检索(关键词匹配)/ 混合检索(推荐)
Top K 返回最相关的 K 个文档块,建议 3-5。数值越大,上下文越丰富,但可能引入噪音。
相似度阈值 只返回相似度高于此阈值的结果,建议 0.5-0.7。阈值越高,结果越精确但可能漏掉相关内容。

最佳实践

  • 文档质量越高,检索效果越好。建议先清理文档中的无关内容
  • 如果文档包含大量表格,建议转换为 Markdown 表格格式再上传
  • 知识库文档量较大时(10 万+ 字符),建议使用混合检索模式
  • 上传后建议先测试几个问题,确认检索效果,再调整参数

更多关于 RAG 架构的内容,请参考 DeepSeek 部署教程 中的 Dify 集成章节。

知识库问答应用

将知识库与 DeepSeek 结合,构建专业的文档问答机器人。用户提问时,Dify 先从知识库检索相关文档片段,再交给 DeepSeek 基于这些片段生成准确回答。

创建知识库问答应用

  1. 在 Dify 首页点击「创建应用」,选择「聊天助手
  2. 填写应用名称(如"产品文档问答")
  3. 进入应用编排页面,在「上下文」区域点击「添加」
  4. 选择刚才创建的知识库
  5. 在右侧模型设置中选择 DeepSeek 模型

配置系统提示词

知识库问答应用需要特殊的系统提示词,让 AI 知道如何利用检索到的文档:

你是一个专业的知识库问答助手。你的回答必须基于提供的文档内容。 回答规则: 1. 优先使用文档中的信息回答问题 2. 如果文档中有相关信息,直接引用并回答 3. 如果文档中没有相关信息,明确告知用户"文档中未包含此内容" 4. 回答时标注信息来源(如"根据产品手册第3章...") 5. 不要编造文档中没有的信息 文档内容: {{#context#}} 用户问题:{{#query#}} 请基于以上文档内容回答用户的问题。

RAG 工作流程

知识库问答的完整工作流程如下:

  1. 用户提问:用户输入问题
  2. 向量检索:Dify 将问题转为向量,在知识库中检索最相关的文档片段
  3. 上下文组装:将检索到的文档片段作为上下文,与用户问题一起组装 Prompt
  4. LLM 推理:DeepSeek 基于上下文和问题生成回答
  5. 返回结果:将回答返回给用户,同时标注引用来源

测试与优化

在预览区域测试几个问题,检查回答质量:

  • 如果回答不够准确,检查知识库的文档分块和检索设置
  • 如果回答与文档无关,可能是系统提示词中的变量引用不正确
  • 如果检索不到相关内容,尝试降低相似度阈值或增加 Top K 值
  • 查看「日志与标注」页面,可以看到每次检索到的具体文档片段

Agent 工作流

Agent 是 Dify 最强大的功能。通过可视化工作流编排,你可以构建能自主决策、调用工具、执行代码的 AI 智能体。DeepSeek 作为推理引擎,驱动整个 Agent 的决策逻辑。

创建 Agent 应用

  1. 在 Dify 首页点击「创建应用」
  2. 选择「Agent」应用类型
  3. 填写应用名称(如"数据分析助手")
  4. 进入工作流编排页面

工作流节点介绍

节点类型 功能说明 使用场景
开始节点 工作流的入口,定义输入变量 每个工作流必须有且只有一个
LLM 节点 调用 DeepSeek 模型进行推理和生成 文本生成、分析、总结、翻译
工具节点 调用外部 API 或内置工具 搜索、计算、发送邮件、数据库查询
代码节点 执行 Python 或 JavaScript 代码 数据处理、格式转换、自定义逻辑
条件分支 根据条件判断走不同分支 分类、路由、多场景处理
知识检索 从知识库检索相关文档 知识库问答、文档分析
结束节点 工作流的出口,定义输出变量 每个工作流必须至少有输出

实战:构建一个数据分析 Agent

以下是一个完整的数据分析 Agent 工作流示例:

工作流结构:

  1. 开始节点:接收用户输入的数据分析需求
  2. LLM 节点(分析意图):DeepSeek 分析用户意图,判断分析类型(描述性分析 / 趋势分析 / 对比分析)
  3. 条件分支:根据分析类型路由到不同的处理流程
  4. 代码节点(数据处理):执行 Python 代码进行数据清洗、聚合、计算
  5. LLM 节点(生成报告):DeepSeek 基于处理结果生成分析报告
  6. 结束节点:输出最终的分析报告

LLM 节点配置示例

在 LLM 节点中,选择 DeepSeek 模型,配置如下提示词:

你是一个数据分析专家。请分析用户的数据分析需求,判断属于以下哪种类型: 1. 描述性分析:用户想了解数据的基本情况(如"销售额是多少") 2. 趋势分析:用户想了解数据的变化趋势(如"近三个月的变化") 3. 对比分析:用户想对比不同维度(如"A产品和B产品的对比") 用户需求:{{#query#}} 请只输出分析类型编号(1、2 或 3),不要输出其他内容。

代码节点示例

在代码节点中可以编写 Python 代码进行数据处理:

def main(data: str) -> dict: """处理输入数据,返回分析结果""" import json # 解析输入数据 records = json.loads(data) # 计算基本统计指标 values = [r["value"] for r in records] total = sum(values) avg = total / len(values) if values else 0 max_val = max(values) if values else 0 min_val = min(values) if values else 0 return { "total": total, "average": round(avg, 2), "max": max_val, "min": min_val, "count": len(values), "summary": f"共 {len(values)} 条数据,合计 {total},均值 {avg:.2f}" }

条件分支配置

条件分支节点根据 LLM 节点的输出结果进行路由:

  • 条件 1:LLM 输出 == "1" -> 进入描述性分析流程
  • 条件 2:LLM 输出 == "2" -> 进入趋势分析流程
  • 条件 3:LLM 输出 == "3" -> 进入对比分析流程
  • 默认分支:其他情况 -> 进入通用分析流程

Agent 调试技巧

  • 使用「运行」功能逐步调试工作流,查看每个节点的输入输出
  • 在 LLM 节点中设置 Temperature=0.1 可以让分类更稳定
  • 代码节点中打印的日志可以在运行日志中查看,方便调试
  • 复杂工作流建议先画流程图,再在 Dify 中实现

发布与嵌入

应用开发完成后,Dify 提供多种发布方式:API 发布(供程序调用)、iframe 嵌入(嵌入网页)、分享链接(直接分享)。无需额外开发,一键即可上线。

方式一:API 发布

将应用发布为 REST API,可以在任何后端程序中调用:

  1. 在应用编辑页面,点击右上角「发布」按钮
  2. 选择「访问 API
  3. 获取 API 密钥和接口文档

# 调用 Dify 应用 API curl -X POST https://your-dify-host/v1/chat-messages \ -H "Authorization: Bearer app-xxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "inputs": {}, "query": "你好,请帮我分析一下最近的销售数据", "response_mode": "streaming", "user": "user-001" }'

方式二:iframe 嵌入

将应用嵌入到你的网站中,用户可以直接在网页上使用:

  1. 在应用编辑页面,点击右上角「发布
  2. 选择「嵌入网站
  3. 复制生成的 iframe 代码

<!-- 将以下代码粘贴到你的网页中 --> <iframe src="https://your-dify-host/chatbot/xxxxxxxxxxxxx" style="width: 100%; height: 600px; border: none; border-radius: 12px;" allow="microphone"> </iframe>

方式三:分享链接

生成一个公开的分享链接,任何人都可以通过链接访问你的应用:

  1. 在应用编辑页面,点击右上角「发布
  2. 选择「运行
  3. 复制生成的分享链接

访问控制设置

API 密钥 在 API 调用时作为认证凭证,可以在「API 访问」页面管理
IP 白名单 限制只有特定 IP 地址可以调用 API
速率限制 设置每分钟/每小时的最大请求数,防止滥用
对话记录 在「日志与标注」中查看所有用户对话,分析使用情况

实战案例

以下是三个真实的 DeepSeek + Dify 应用案例,从简单到复杂,覆盖最常见的应用场景。每个案例都附有完整的配置思路和参数参考。

案例一:智能客服机器人

应用类型:聊天助手 + 知识库

场景描述:为企业网站搭建智能客服,自动回答产品使用、售后政策、常见问题等用户咨询。

配置要点:

  • 知识库:上传产品手册、FAQ 文档、售后政策文件
  • 模型选择:DeepSeek V3(deepseek-chat),Temperature=0.3
  • 系统提示词:设定为"专业客服",要求礼貌、耐心、准确
  • 发布方式:iframe 嵌入官网客服页面
  • 效果优化:定期查看日志,补充高频问题的知识库文档

案例二:文档问答助手

应用类型:聊天助手 + 知识库

场景描述:为团队搭建内部文档问答系统,同事可以直接询问公司制度、项目文档、技术规范等问题。

配置要点:

  • 知识库:上传所有内部文档,分块大小 800,重叠 100
  • 检索设置:混合检索,Top K=5,相似度阈值 0.6
  • 模型选择:DeepSeek V3(deepseek-chat),Temperature=0.1
  • 系统提示词:强调"基于文档回答,不编造信息"
  • 变量设置:使用 {{#context#}} 和 {{#query#}} 变量

案例三:数据分析助手

应用类型:Agent

场景描述:搭建数据分析 Agent,用户可以上传数据文件,Agent 自动完成数据清洗、分析和报告生成。

工作流配置:

  • 开始节点 -> 接收用户输入和数据文件
  • LLM 节点 -> 分析用户意图,确定分析类型
  • 条件分支 -> 根据分析类型选择不同的处理流程
  • 代码节点 -> 执行 Python 数据处理(pandas、numpy)
  • LLM 节点 -> 基于处理结果生成分析报告
  • 结束节点 -> 输出格式化报告

关键参数:

  • 模型选择:DeepSeek R1(deepseek-reasoner)用于复杂推理,V3 用于报告生成
  • 代码节点超时:设置为 60 秒,避免大数据处理超时
  • 工具配置:添加网络搜索工具,支持查询外部数据

更多应用场景

教育领域

AI 辅导老师

上传教材和习题集,DeepSeek 基于知识库为学生答疑解惑,讲解解题思路。

电商领域

商品推荐助手

结合商品数据库,DeepSeek 根据用户需求推荐合适的商品,提升转化率。

医疗领域

健康咨询助手

上传医学知识库,提供常见病症的科普咨询(注意:不可替代专业医生诊断)。

法律领域

法规查询助手

上传法律法规文档,帮助用户快速查询相关法条和解释。

DeepSeek + Dify 常见问题

Dify 和 Open WebUI 有什么区别?我该用哪个? +
Open WebUI 是一个聊天界面,提供类 ChatGPT 的对话体验,适合个人日常使用。Dify 是一个应用开发平台,不仅可以对话,还能构建知识库问答、Agent 工作流、发布 API 等。如果你只是想和 DeepSeek 聊天,用 Open WebUI;如果你想构建 AI 应用或服务,用 Dify。
Dify 支持 DeepSeek R1 的思维链吗? +
支持。当你使用 deepseek-reasoner(R1)模型时,Dify 会完整展示 R1 的思维链推理过程。在 Agent 工作流中,R1 的推理能力可以大幅提升复杂决策的准确性。但需要注意的是,R1 的思维链会消耗更多 token,建议在需要深度推理的场景才使用 R1 模型。
Dify 知识库支持中文文档吗?效果如何? +
完全支持。Dify 内置的向量化模型支持中文,配合 DeepSeek 的中文能力,中文文档问答效果非常好。建议使用混合检索(向量检索 + 全文检索)模式,对中文文档的检索精度更高。如果使用 Ollama 本地部署,需要确保向量化模型也支持中文。
Dify 免费吗?有什么限制? +
Dify 社区版(自部署)完全免费,开源协议为 Apache 2.0,可商用。功能上没有限制,所有功能均可使用。Dify 云服务(cloud.dify.ai)提供免费额度,但功能上有限制(如知识库数量、团队协作等)。如果你需要无限制使用,建议自部署社区版。
DeepSeek 官方 API 和 Ollama 本地部署,Dify 用哪个更好? +
取决于你的需求。DeepSeek 官方 API 使用的是满血版 V3/R1(671B 参数),效果最好,且按量付费,成本低。Ollama 本地部署运行的是蒸馏版模型(如 8B/32B),效果略逊但数据完全本地,隐私性更好。建议:先用官方 API 验证场景,如果数据敏感或高并发,再考虑 Ollama 本地部署。
Dify 工作流中的代码节点有什么限制? +
代码节点支持 Python 和 JavaScript,运行在沙箱环境中。主要限制:1) 单次执行超时时间默认 15 秒(可调整);2) 不能访问外部网络(除非配置了 HTTP 请求库);3) 可用的第三方库有限(Python 预装了 pandas、numpy 等常用库);4) 内存限制取决于 Dify 容器的资源分配。如果处理大数据,建议在代码节点中做数据预处理,在 LLM 节点中做分析。

相关教程

深入学习 DeepSeek 模型的使用、部署和开发技巧。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

完全免费,取消任意时间。我们不会发送垃圾邮件。