上一篇 下一篇 分享链接 返回 返回顶部

Dify 新手实战指南:从入门到项目接入,附可直接运行源码

发布人:慈云数据-客服中心 发布时间:8小时前 阅读量:2

Dify 新手入门指南|附源码

如果你最近开始接触 Dify,大概率会被它的定位吸引:
它不是单纯的“大模型聊天界面”,而是一个可以帮助你 快速搭建 AI 应用 的开源平台。无论你想做智能客服、知识库问答、文档分析、Agent 工具调用,还是想把大模型能力接入自己的业务系统,Dify 都是一个非常值得上手的工具。

这篇文章会从 Dify 是什么、能做什么、怎么安装、怎么配置、怎么开发集成 一路讲到实战代码,适合刚接触 Dify 的新手阅读。文章后半部分还会附上可直接参考的源码示例,帮助你更快做出第一个 Dify 应用。


一、什么是 Dify?

Dify 是一个面向 AI 应用开发的开源平台,它把大模型应用里最常见的一些能力做成了可视化和可配置的组件,比如:

  • Prompt 编排
  • 知识库 / RAG 检索增强
  • 工具调用
  • 工作流编排
  • 多轮对话管理
  • API 发布与调用
  • 前后端快速集成

简单来说,Dify 的目标是让你不用从零搭建整套 AI 应用基础设施,也能快速完成一个可上线的产品原型。

对于新手来说,Dify 的最大优势有三个:

  1. 上手快:界面化操作,配置清晰;
  2. 可扩展:支持接入多种模型、工具和数据源;
  3. 能落地:不是玩具,而是能实际用于业务系统。

二、Dify 适合做什么?

Dify 的应用场景非常广,下面是几个最常见的方向。

1. 智能客服

把企业 FAQ、产品手册、售后文档导入知识库,Dify 就能帮你快速搭建一个智能客服系统。

2. 企业知识库问答

员工可以直接提问,比如:

  • “报销流程是什么?”
  • “产品 A 的安装文档在哪里?”
  • “这个接口的参数怎么传?”

Dify 会从知识库中检索相关内容并组织答案。

3. 文档助手

上传 PDF、Word、Markdown 等文档后,可以让 AI 自动总结、提炼重点、回答文档内容相关问题。

4. 工作流自动化

例如:

  • 用户上传图片 → OCR 提取文字 → 大模型总结 → 输出结果
  • 用户输入问题 → 检索知识库 → 调用外部 API → 返回定制化答案

5. AI Agent

让 AI 不仅能“说”,还能“做”。比如:

  • 查询天气
  • 查数据库
  • 调用企业内部接口
  • 自动生成报告

三、Dify 的核心概念

新手学习 Dify,建议先理解以下几个核心概念。

1. App(应用)

Dify 中的“应用”就是你最终给用户使用的 AI 产品。常见类型有:

  • Chat App:适合对话问答
  • Completion App:适合单次文本生成
  • Workflow App:适合复杂流程编排
  • Agent App:适合工具调用和复杂任务

2. Prompt(提示词)

Prompt 决定了 AI 的行为方式。
你可以通过系统提示词定义:

  • AI 的角色
  • 回答风格
  • 输出格式
  • 约束条件

例如:

你是一名专业的技术支持助手,请用简洁、准确的语言回答用户问题。
如果信息不足,请明确说明无法判断,不要编造。

3. Knowledge Base(知识库)

知识库用于实现 RAG(检索增强生成)
你可以把公司文档、FAQ、说明书、网页内容等导入进去,Dify 会在用户提问时先检索相关资料,再交给大模型生成答案。

4. Workflow(工作流)

工作流是 Dify 很强的功能之一。你可以把一个复杂任务拆分成多个节点,例如:

  • 开始节点
  • 条件判断
  • 文本生成
  • HTTP 请求
  • 变量赋值
  • 结束节点

它非常适合处理需要“多步骤”的业务场景。

5. Tool / API 调用

Dify 可以调用外部工具和接口。
比如:

  • 调用天气 API
  • 查询订单系统
  • 查询 CRM 数据
  • 调用自建后端服务

四、Dify 的基础架构理解

从使用者角度看,Dify 的结构可以简单理解为下面几层:

用户
  ↓
Dify 应用层
  ↓
Prompt / Workflow / RAG / Tool
  ↓
大模型服务(OpenAI、通义千问、Claude、DeepSeek 等)
  ↓
外部知识库 / API / 数据库

你可以把 Dify 当成一个“AI 应用中间层”:

  • 上层负责业务逻辑;
  • 中间层负责编排;
  • 底层对接模型和数据。

这种设计的好处是:
你不需要每次都重新写一套提示词管理、上下文拼接、知识库检索和工具调度逻辑。


五、如何开始使用 Dify?

Dify 有两种常见使用方式:

  1. 直接使用云服务版
  2. 本地部署开源版

对于新手,建议先用云服务版体验;如果你想深入学习、做二次开发、接入内网系统,再考虑本地部署。


六、Dify 本地部署入门

如果你想自己部署 Dify,可以使用 Docker 方式。
下面是常见的本地部署思路。

1. 安装依赖

需要准备:

  • Docker
  • Docker Compose
  • Git

2. 拉取代码

通常先从 Dify 的开源仓库拉取项目。

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

3. 启动服务

根据项目中的部署说明执行 Docker Compose 启动。

cd docker
cp .env.example .env
docker compose up -d

4. 打开管理后台

启动成功后,访问对应的本地地址,即可进入 Dify 后台初始化页面。

不同版本的目录结构和启动方式可能略有差异,实际部署时请以官方文档为准。


七、创建你的第一个 Dify 应用

下面我们以一个最常见的场景来说明:
做一个“AI 问答助手”应用。

第一步:创建应用

进入 Dify 控制台后,选择:

  • 创建应用
  • 选择 Chat App 或 Workflow App
  • 填写应用名称,例如:技术问答助手

第二步:设置系统提示词

例如你可以写:

你是一名资深技术顾问,擅长解答编程、系统架构、数据库、接口设计等问题。
回答时请遵循以下规则:
1. 语言简洁明了;
2. 优先给出可执行方案;
3. 如果信息不完整,请指出缺失项;
4. 避免编造事实。

第三步:配置知识库

如果你有产品文档、接口说明、FAQ,可以上传到知识库中。
然后把知识库挂载到应用里。

第四步:测试对话

你可以输入:

  • “如何初始化项目?”
  • “接口返回 500 怎么排查?”
  • “订单状态有哪些?”

观察模型是否能结合知识库给出准确回答。

第五步:发布应用

Dify 支持通过 Web 页面、API 接口等方式发布应用。
这样你就可以把它接到自己的前端、后台管理系统或者企业微信机器人里。


八、Dify 的知识库能力怎么理解?

Dify 的知识库,本质上是在做 RAG。

RAG 是什么?

RAG = Retrieval-Augmented Generation,中文叫“检索增强生成”。

它的流程大致如下:

  1. 用户提问;
  2. 系统先去知识库中检索相关内容;
  3. 将检索结果和问题一起发给大模型;
  4. 大模型基于检索内容生成答案。

RAG 的优势

如果只靠大模型本身,可能会有以下问题:

  • 知识不最新;
  • 容易“幻觉”;
  • 无法理解企业私有数据;
  • 对长文档支持有限。

而 Dify 的知识库能很好地解决这些问题。
这也是它能在企业场景中快速落地的重要原因。


九、Dify 工作流适合哪些场景?

如果你的需求只是“问答”,那普通 Chat App 就够了。
但如果你的需求更复杂,比如:

  • 先判断用户意图,再决定查知识库还是查接口;
  • 先生成 SQL,再去数据库查询;
  • 先提取信息,再调用多个 API;
  • 先进行分类,再执行不同逻辑;

那就更适合用 Workflow

一个典型工作流示例

开始
  ↓
用户输入检查
  ↓
意图分类
  ↓
分支:
   ├── 知识库问答
   ├── 数据查询
   └── 通用对话
  ↓
结果汇总
  ↓
结束

这种方式的好处是:

  • 逻辑清晰;
  • 易于维护;
  • 复杂任务更稳定;
  • 方便调试和迭代。

十、Dify 和传统“自己写 AI 应用”有什么区别?

如果完全自己开发,通常需要处理:

  • Prompt 拼接
  • 会话管理
  • 文件解析
  • 向量化
  • 向量数据库
  • 检索策略
  • 工具调用
  • 流式输出
  • 错误重试
  • 日志和监控

这些模块每一个都要单独搭建。

而 Dify 相当于把这些常用能力做成了平台化组件,帮助开发者把精力集中在:

  • 业务逻辑
  • 领域知识
  • 产品体验

这也是 Dify 受欢迎的重要原因之一。


十一、实战:用代码调用 Dify API

很多新手最关心的不是“在后台怎么点”,而是“怎么接入自己的项目”。
下面给你两个最常用的源码示例:PythonNode.js

注意:不同版本的 Dify API 地址和参数名可能会有细微差异,请以你实际部署环境和官方文档为准。


1. Python 调用示例

下面示例演示如何向 Dify 应用发送一个问题,并接收回答。

import requests

API_URL = "https://api.dify.ai/v1/chat-messages"
API_KEY = "你的Dify API Key"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

data = {
    "inputs": {},
    "query": "请介绍一下Dify的主要功能",
    "response_mode": "blocking",
    "conversation_id": "",
    "user": "user-001"
}

response = requests.post(API_URL, headers=headers, json=data)
print(response.status_code)
print(response.json())

代码说明

  • API_KEY:你在 Dify 应用中生成的密钥;
  • query:用户输入的问题;
  • response_mode
    • blocking:等待完整回复;
    • streaming:流式返回;
  • user:用户唯一标识,便于会话追踪。

2. Node.js 调用示例

如果你前端项目是 Node.js 技术栈,可以这样调用:

const fetch = require('node-fetch');

async function callDify() {
  const res = await fetch('https://api.dify.ai/v1/chat-messages', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer 你的Dify API Key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      inputs: {},
      query: 'Dify适合哪些应用场景?',
      response_mode: 'blocking',
      conversation_id: '',
      user: 'user-001'
    })
  });

  const data = await res.json();
  console.log(data);
}

callDify();

3. 前端页面接入示例

下面是一个最简版的 HTML 页面示例,方便你快速做一个聊天输入框。




  
  Dify Chat Demo


  

Dify 聊天测试




  

这个示例虽然简单,但能帮助你快速验证 Dify 是否已接入成功。


十二、Dify 接入项目时的注意事项

新手在实际开发中,容易踩下面这些坑。

1. 不要直接把 API Key 写到前端

如果你把 Dify 的 API Key 直接暴露在浏览器端,可能会被恶意抓包。
更安全的做法是:

  • 前端请求你的后端;
  • 后端再去调用 Dify API;
  • 后端统一管理密钥。

2. 给知识库内容做清洗

上传前最好处理一下文档:

  • 去掉无关页眉页脚;
  • 删掉重复内容;
  • 尽量使用结构清晰的 Markdown 或纯文本;
  • 章节标题要明确。

这样检索效果通常更好。

3. 提示词要尽量明确

不要只写“你是一个助手”,而要写清楚:

  • 角色定位;
  • 语气风格;
  • 是否允许推测;
  • 输出格式;
  • 不确定时怎么办。

4. 控制上下文长度

如果对话太长,容易造成上下文冗余和成本增加。
建议定期截断、总结或重置会话。

5. 关注返回格式

如果你的业务系统需要结构化结果,可以要求模型输出 JSON,例如:

请只输出 JSON,不要输出额外解释。
字段包括:
- title
- summary
- tags

这样更方便后端解析。


十三、一个完整的 Dify 使用思路

如果你是第一次做 AI 应用,可以按下面这个顺序推进:

阶段 1:先做一个最小可用版本

目标:能回答问题即可。
做法:

  • 创建 Chat App;
  • 写好 Prompt;
  • 发布并测试 API。

阶段 2:接入知识库

目标:让回答更专业。
做法:

  • 上传文档;
  • 配置检索规则;
  • 测试知识问答效果。

阶段 3:接入业务接口

目标:让 AI 真正“帮你办事”。
做法:

  • 配置工具;
  • 调用内部 API;
  • 加入工作流。

阶段 4:优化用户体验

目标:让产品更像“可用的 AI 服务”。
做法:

  • 加流式输出;
  • 加会话管理;
  • 做错误提示;
  • 做埋点和日志。

十四、Dify 学习建议

如果你是 Dify 新手,建议按这个顺序学习:

  1. 先理解 Chat App
  2. 再理解 Prompt
  3. 然后理解 知识库 / RAG
  4. 接着学习 Workflow
  5. 最后学习 API 接入与二次开发

不要一开始就去研究很复杂的 Agent 编排。
因为如果基础概念没吃透,后面会很容易混乱。


十五、Dify 适合哪些人?

Dify 对下面几类人特别友好:

1. 后端开发者

可以快速把大模型能力接到已有系统里。

2. 前端开发者

可以用很少代码做出一个 AI 产品原型。

3. 产品经理

可以快速验证 AI 功能是否可行。

4. 运营/内容团队

可以用它搭建知识问答、智能助手、内容生成工具。

5. 创业者

如果你想低成本做一个 AI MVP,Dify 非常合适。


十六、常见问题 FAQ

1. Dify 一定要部署到本地吗?

不一定。你可以直接使用云服务,也可以自己部署。
如果你有内网数据、隐私要求或二次开发需求,更适合自部署。

2. Dify 支持哪些模型?

通常支持多种主流大模型服务,具体取决于你当前版本和配置方式,比如 OpenAI 兼容接口、国产模型平台等。

3. Dify 适合企业内部系统吗?

适合。尤其是企业知识库、内部问答、流程助手、文档助手等场景。

4. Dify 和 LangChain 什么关系?

可以简单理解为:

  • LangChain 更偏开发框架;
  • Dify 更偏平台化产品。

两者定位不同,但都能帮助你构建 AI 应用。

5. Dify 学习难吗?

不算难。
如果你有一点点编程基础,通常几个小时到一天就能跑通第一个 Demo。


十七、总结

Dify 的核心价值,不在于“它能不能聊天”,而在于它把 AI 应用开发中最麻烦的一部分——Prompt 管理、知识库、工作流、工具调用、API 发布——都做成了可视化、可配置、可复用的能力。

对于新手来说,Dify 是一个非常好的起点,因为它能让你快速完成以下事情:

  • 从 0 到 1 做出 AI 应用原型;
  • 迅速接入大模型能力;
  • 用知识库提升回答准确率;
  • 通过工作流处理复杂业务;
  • 用 API 集成到自己的项目中。

如果你正在考虑学习 AI 应用开发,或者想给自己的系统加上智能问答、文档助手、流程自动化功能,那么 Dify 值得你认真试一试。


附:最小可运行源码参考

下面再给一个更完整的后端代理示例,方便你把 Dify 接入自己的服务。

Python Flask 示例

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)

DIFY_API_URL = "https://api.dify.ai/v1/chat-messages"
DIFY_API_KEY = "你的Dify API Key"

@app.route("/ask", methods=["POST"])
def ask():
    data = request.json
    question = data.get("question", "")

    headers = {
        "Authorization": f"Bearer {DIFY_API_KEY}",
        "Content-Type": "application/json"
    }

    payload = {
        "inputs": {},
        "query": question,
        "response_mode": "blocking",
        "conversation_id": "",
        "user": "demo-user"
    }

    resp = requests.post(DIFY_API_URL, headers=headers, json=payload)
    return jsonify(resp.json())

if __name__ == "__main__":
    app.run(port=5000, debug=True)

调用方式

curl -X POST http://127.0.0.1:5000/ask \
  -H "Content-Type: application/json" \
  -d '{"question":"Dify是什么?"}'

如果你愿意,我还可以继续帮你补一版:

  1. 更像公众号风格的排版版本
  2. 更适合博客发布的 SEO 版本
  3. 配套 Dify 实战项目源码教程版
  4. “Dify + 知识库 + 前端页面”完整项目文章版
目录结构
全文