手把手带你零基础master-Dify✅️
零基础Dify入门
一、什么是AI agent
AI Agent,也就是人工智能体,可以简单理解为一个能自主干活儿的“数字员工”。
它不光能聊天,还能自己思考步骤、调用工具,去完成一个复杂的任务。
和普通的聊天AI相比,关键区别在于这“四个有”:
有脑子(大模型):负责理解和推理,是它的“指挥部”。
有手(工具调用):能实际做事,比如搜索网页、写邮件、操作软件、调用计算器。
有记忆(上下文管理):能记住你和它说过的话,以及做事的中间过程。
有规划(任务拆解):接到“帮我写一份行业报告”这种大任务,会自己拆成搜索资料、整理大纲、撰写内容等步骤去执行。
二、什么是Dify❓️
Dify (Do It For You)是一个用于构建 AI 应用的开源平台,开源的大语言模型(LLM)应用开发平台。你可以创建 Agent、Agentic 工作流和聊天机器人,让它们利用你自己的数据,并发布为 Web 应用或通过 API 集成。
特点:①低代码②功能完整强大③开源免费
Dify能做什么?
- 聊天助手:支持基于 LLM 的对话交互,可用于客服机器人、个人助理,具备多轮对话和上下文记忆能力
- 文本生成:自动生成文章、摘要、代码,或进行翻译、文档解析等任务,支持从 PDF、PPT 等格式提取文本
- Agent 工作流:可将复杂任务分解并调用工具,如论文查询、数据分析、Web 搜索或数据库操作,实现自动化任务处理
- RAG(Retrieval-Augmented Generation):结合向量化知识库和大模型生成内容,提高回答准确性和丰富度,适合企业知识库问答和商业智能场景
- 工作流编排:支持多节点流程设计,包括条件分支、API 调用和任务自动化,方便构建企业级 AI 工作流
三、Dify安装(以本机Windows示例)
1.基于WSL(默认方式)
看自己的版本号
2.启用虚拟机管理程序
搜索控制面板->程序->程序和功能->启用或关闭Windows功能,勾选☑️下图的两项内容:
然后根据提示重启电脑🔄
3.WSl验证和设置
进入终端(快捷键:Windows+R,输入cmd回车),输入命令:wsl --version
if出现上面👆的提示,按提示步骤更新wsl版本即可,也可以powershell以管理员身份运行,输入 wsl --update
这样应该就是ok✅了
4.安装docker desktop
查看自己电脑的设备信息,看系统类型那一行,去官网Docker Desktop: The #1 Containerization Tool for Developers | Docker安装对应的版本
进入到这个页面后自动更新配置
这样就算安装成功了✅️

右下角显示这个图标Engine running就说明正在正常运行

在这里可以改资源存放路径(默认是C盘)
docker engine配置(根据版本不同可能会有报错,需要自行排错):
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"registry-mirrors": [
"https://docker.1panelproxy.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}

验证docker是否安装成功
拉取一个镜像,没有error就说明镜像拉取操作成功,示例:
也可以通过images验证:
5.克隆dify仓库
地址:http://github.com/langgenius/dify
解压完成后打开进入docker->:
将红框文件重命名为 .env
6.启动Dify
先进入dify文件夹,找到docker文件夹,然后进入终端,接着按以下步骤进行操作:
清空地址栏,然后输入: cmd回车
这样就进入了
然后在当前cmd页面输入: docker compose up -d就会开始拉取镜像,耐心等待即可:
这样就算OK了
然后打开docker desktop桌面端,会发现多了很多镜像:

然后点Containers,看是否全部执行:
7.访问Dify
地址:https://cloud.dify.ai/apps
每次访问Dify之前,要保证Containers已经全部开启,然后进入Dify官网注册登录即可,出现下面这个界面说明已经成功进入了:
四、Dify接入大模型
1.安装Ollama
简介:
Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。
下载地址:Download Ollama on Windows
下载适配自己版本的exe文件,然后install即可,耐心等待安装:
在下面👇这个下拉框搜索🔍选择自己需要的模型(根据电脑性能自主选择):
第一次使用模型它会自动下载:
模型下载成功之后你就可以问它一些基本的问题:
你也可以打开终端,输入: ollama list会显示你当前已经下载了的模型:
当然也可以在终端启动模型:
2.Dify中配置Ollama
先登录Dify进行设置,按如下操作:
可以从市场直接搜索Ollama:
搜索到之后点击👆安装:
然后回到设置界面,点击左侧侧边栏模型供应商选项:
看到模型列表已经存在ollama,说明安装插件成功
然后点击👆添加模型进行配置:
基础URL那一栏:
如果docker是同一机器部署Dify,就输入:http://host.docker.internal:11434
如果docker是不同机器部署Dify,就输入:http://192.168.x.x(自己IP):11434
如果配置不成功,可以尝试手动设置一下系统变量:
如果不成功,试一下把防火墙放开端口11434:
出现下面界面就是安装成功了:
然后你可以去创建自己的应用:
可以在调试与预览页面对它进行提问,右上角显示的是调用的本地模型:
五、Dify接入API大模型
大模型API是为大型预训练模型提供的接口,开发者可以通过它在应用程序中调用模型能力(且无需自己部署和维护模型),实现智能化功能。
1.注册阿里云账号
首次登录点击👆注册:
进入:大模型服务平台百炼控制台,创建自己的api key:

2.在Dify中配置API Key
在Dify中搜索通义千问模型供应商安装:
在下面这个页面配置你的api key:
然后可以用自己的聊天助手调用千问模型:
可以问它一些问题:
六、掌握提示词
1.什么是提示词
提示词工程(Prompt Engineering)就是一门关于如何构造和精炼你的提示词的艺术和科学,目的是最大化 AI 模型的性能,让它产出更符合你需求的、高质量的输出。提示词工程就是一个与 AI 高效沟通的技巧。
- 提示词(Prompt):就是你输入给 AI 模型(比如大型语言模型 LLM)的指令、问题、或文本输入。
- 工程(Engineering):在这里指的是设计、优化和改进你的输入文本的过程。
提示词是搭建智能体的第一步
如何设计提示词:
角色定位:明确bot🤖的身份,建立专业形象
角色越具体=回复越专业
技能描述:清晰的目标🎯,让🤖bot知道做什么
输出格式:结构化回复要求,确保输出规范
约束条件:限制不当行为,保证安全合规
给bot🤖设置边界
2.dify中如何应用提示词
分类:
- 用户提示词:用户直接提出的具体指令/问题,指导模型执行特定的任务,下图红框输入的就是用户提示词:

2.系统提示词:定义大模型的角色定位+回复逻辑,持续影响整个会话响应模式,下图红框输入的就是系统提示词:
在使用dify之前,要先把dify的应用启动起来,就是咱们正确安装的docker
3.提示词应用案例
先创建应用:
直接输入系统提示词:
输入用户提示词:
你可以继续问它问题:
如果不会写提示词,可以借助这个提示词生成器进行优化:
生成的提示词也是符合咱们前面所说的要求的:
明确了bot的角色,以及技能描述、输出格式和约束条件

调整完成之后继续问它,效果是这样的:
4.总结
Dify中如何设置提示词?
先自己编辑,然后用AI大模型进行优化,使提示词更加贴合用户需求
七、RAG
1.什么是RAG
RAG(Retrieval-Augmented Generation,检索增强生成)是目前最主流的 LLM 落地架构之一。
RAG 的核心思想是:让 LLM 在回答问题时,先从外部知识库中检索相关内容,再基于检索结果生成回答,而不是仅依赖模型训练时记住的知识。主要用于解决模型幻觉问题。
2.知识库构建
文档准备
文档预处理:清理无关内容,按主题分类,文件命名规范
-
文档类型:
- 支持格式:PDF/Word/Txt格式
- 适用场景:攻略文章、教程文档
-
表格类型:
- 支持格式:Excel/CSV
- 适用场景:结构化数据、统计信息
文档切片
切分方式:
- 按字符数切分
- 按符号切分
- 按语义切分
一般方式:按照符号和字符长度一起切分
文档向量化
将切片后的文本进行向量数字化,便于计算问题和文档的相似性
作用:语义理解,相似度计算,快速检索
八、实践环节:创建攻略知识库
基本操作:
Step1:创建知识库
进入Dify选择知识库
Step2:选择数据源
上传文本原始文件
Step3:文本分段
选择(设置)分段方式
Step4:构建索引
将分段后的文档进行向量化
Step5:检索🔍设置
向量检索/全文检索/混合检索
Step6:查看结果
预览文本处理的效果
九、知识库创建

首先点击👆侧边栏知识库,然后按上图操作
然后上传并且进行设置:
点击预览块进行查看
往下滑,翻到检索设置这一栏,根据自己使用场景选择检索类型,默认推荐混合检索
然后:
知识库已经创建完成
十、让agent应用知识库
Step1:创建空白应用
构建agent智能体
Step2:构建提示词
明确角色->说明功能->规范回复格式
Step3:选择知识库
编排模块->知识库->点击👆"添加知识库"
Step4:结果验证
调试->输入问题->验证结果
咱们按照前面创建应用的步骤进行操作,在变量的下面一栏可以导入咱们自己已经创建好的知识库(可以很好的解决大模型幻觉问题):
十一、Function Calling原理
1.定义
即:函数调用
解决信息实时性/数据局限性/功能扩展性等问题
2.如何在Dify中应用Function Calling
实操应用(添加Dify市场中已有的工具):
我们新建一个时间测试的agent,输入问题:请告诉我现在的时间,不难发现,它无法直接获取实时时间,那么我们可以选择添加工具:
你继续重新问它:
可以给出时间但是后面的时/分/秒对应不上
找到工具旁边这个信息与设置按钮并点击👆
把时区改一下
现在时间就正确了
总结:
在Dify中工具(插件)就是Function Calling的实现形式
十二、自定义插件
步骤:
Step1:脚本开发
基于本地实现Python脚本
Step2:运行脚本
后台运行API
Step3:创建工具
在Dify中选择工具--创建自定义工具
Step4:Schema操作
配置OpenAI Schema
Step5:测试
输入参数测试功能
Step6:保存💾
在Agent中应用插件
实操:
1.先搭建环境,创建ApI
快捷键Windows+R打开命令行:
依次输入下面👇的指令:
①mkdir weather-plugin cd weather-plugin
② python -m venv weather-env
③ weather-env\Scripts\activate
④ pip install fastapi uvicorn requests -i https://pypi.tuna.tsinghua.edu.cn/simple(此指令用了国内镜像源,提高下载速度)
⑤ pip list(验证是否成功✅️)
版本信息均已完整打印,说明安装成功
注意:我们配置的虚拟环境是 weather-plugin
用Pycharm打开此文件夹📂,并且配置虚拟环境,在根目录下新建 main.py文件
然后将此代码复制到 main.py里:(可以让大模型给生成)
from fastapi import FastAPI, Request, HTTPException
from pydantic import BaseModel
import requests
app = FastAPI()
# 身份验证令牌(个人使用,简单安全,自行设置即可)
VALID_TOKEN = "xxxx"
# 城市编码数据
CITY_CODES = {
"北京": "101010100",
"上海": "101020100",
"广州": "101280101",
"深圳": "101280601",
"杭州": "101210101",
"成都": "101270101",
"武汉": "101200101",
"西安": "101110101",
"南京": "101190101",
"重庆": "101040100",
"天津": "101030100",
"苏州": "101190401",
"郑州": "101180101",
"长沙": "101250101",
"青岛": "101120201",
"大连": "101070201",
"宁波": "101210401",
"厦门": "101230201",
"福州": "101230101",
"济南": "101120101",
"合肥": "101220101",
"南昌": "101240101",
"昆明": "101290101",
"南宁": "101300101",
"贵阳": "101260101",
"哈尔滨": "101050101",
"长春": "101060101",
"沈阳": "101070101",
"石家庄": "101090101",
"太原": "101100101",
"呼和浩特": "101080101",
"乌鲁木齐": "101130101",
"拉萨": "101140101",
"兰州": "101110501",
"西宁": "101150101",
"银川": "101170101",
"海口": "101310101",
"三亚": "101310201"
}
class WeatherRequest(BaseModel):
location: str
@app.post("/weather")
def get_current_weather(request: Request, body: WeatherRequest):
"""
天气查询接口
- 需要Authorization头认证
- 返回自然语言格式的天气信息
"""
auth_header = request.headers.get("Authorization")
if auth_header != f"Bearer {VALID_TOKEN}":
raise HTTPException(status_code=403, detail="Invalid Authorization header")
location = body.location
city_code = CITY_CODES.get(location)
if not city_code:
return {
"status": "error",
"message": f"请提供{location}对应的编码方可查询,目前支持的城市:{','.join(CITY_CODES.keys())}"
}
url = f"http://t.weather.itboy.net/api/weather/city/{city_code}"
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
data = response.json()
except Exception as e:
return {"status": "error", "message": f"天气服务请求失败: {str(e)}"}
try:
forecast = data["data"]["forecast"][0]
weather_type = forecast["type"]
high = forecast["high"].replace("高温 ", "")
low = forecast["low"].replace("低温 ", "")
temperature = f"{high}/{low}"
return f"{location}今天是{weather_type},温度{temperature}"
except (KeyError, IndexError) as e:
return {"status": "error", "message": f"天气数据解析失败: {str(e)}"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8081)
执行完是这个样子:(此服务已开启)
2.公网穿透
不进行公网穿透则无法在Dify中进行使用
2.1先安装localtunnel
前提是你已经安装了Node.js
安装地址:Node.js — 在任何地方运行 JavaScript
新开一个cmd窗口,因为是全局安装,所以不需要进入到虚拟环境里: npm install -g localtunnel用这个指令安装
2.2启动穿透服务
然后再Pycharm里新打开一个终端,输入: lt --port 8081,拿到自己的 url地址:

3.测试是否可用
打开postman进行测试:地址:https://www.postman.com/
把你的刚才获得的url地址输入到post请求框里:
然后再header填一下:
Bearer后面加上你自己设置的身份验证令牌
在body那里,把北京赋值给->location:然后验证,看是否能拿到返回的数据:
如上图👆,显然成功拿到数据✅️,说明API接口能够正常调用
4.Dify插件配置
接下来打开Dify,创建自定义工具:
然后把下面这段代码粘贴到空白框里:
{
"openapi": "3.1.0",
"info": {
"title": "天气查询API",
"description": "查询中国城市当前天气信息",
"version": "v1.0.0"
},
"servers": [
{
"url": "xxxxxxx"#注意这里要改成你自己的url地址
}
],
"paths": {
"/weather": {
"post": {
"summary": "查询城市天气",
"security": [
{
"BearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市名称",
"example": "北京"
}
},
"required": ["location"]
}
}
}
},
"responses": {
"200": {
"description": "成功获取天气信息"
}
}
}
}
},
"components": {
"schemas": {},
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer"
}
}
}
}

如上图,然后点击👆测试
📌注意:这个鉴定方法要从无改成请求头,下面选项改成Bearer,值要填你自己前面设置的身份验证令牌
最后值那里输入北京,进行测试即可:
成功✅️
注意这里一定要改:
应用刚刚自定义的工具
注意在工具那里选择一下,然后询问:
看agent🤖回答那一行->已使用weather-post,说明我们已经成功调用了创建在本地的API了
十三、工作流与Agent
1.什么是工作流workflow(业务逻辑可视化)
工作流是对业务流程及其操作步骤的抽象和自动化,用于在多个参与者之间按预定规则传递任务、信息或文档,实现业务目标。
将复杂任务拆解成一系列可管理的、按顺序/条件执行的步骤,并通过图形化的界面将它们连接起来
2.什么是agent(自主决策的AI助手)
是能够自主感知环境、做出决策并采取行动的计算实体
思考->行动->观察(循环)
3.Dify两种工作流
-
工作流(workflow)
功能类/数据处理
-
对话流(chatflow)
对话类/交互式应用

4.工作流创建流程
Step1:创建工作流
工作流名称/功能描述
Step2:搭建工作流
设置:开始节点->LLM节点->工具节点->结束节点
(节点就是特定功能的独立组件)
Step3:测试并发布
5.工作流案例实操e-commerce
5.1新建一个自己的知识库
上传已有数据
根据自己的需要修改分段设置的各个参数:
接下来修改检索设置(默认推荐混合检索🔍):
出现下面👇的✅️就是创建成功了:

点击👆前往文档按钮:显示文档可用
刷新🔄一下返回查看:
知识库已存在
5.2应用已创建的知识库
创建一个工作流:

以用户的输入作为开始节点:
点击👆右侧输入字段那一行的+号:
接下来工作流的目的是要判断用户的意图,以便下面给出合理的答复:
右键选择添加节点:

然后修改一些基本信息:变量选择用户的输入也就是query:
注意:你这里的输入变量名称要和你下面的执行代码变量名称保持一致:
注意:要把输出变量的键值对对应的写到下面👇的位置📍:

添加一个输出节点,进行简单的测试:

功能运行正常✅️
下面添加一个条件分支:
选中它,然后右侧面板添加条件:
条件分支部分处理完是这样的:
测试条件判断:当我输入找人工的时候,它执行的是第二条分支语句:
因为最后一个条件查询会用到知识库,所以它不能直接接输出,先删掉:
添加知识库检索🔍节点,当用户提问一个专业问题时,需要用到知识库:
查询文本为用户输入,然后添加知识库:
当我们输入:学习电商相关知识需要安装哪些软件,并去测试时,可以看到每一步执行的是哪一条分支,这是我们在询问专业知识,它会调用我们提供给它的知识库来进行相关的回答:
后面就是需要自己探索和完善:
调用大模型需要上下文检索,则需要在下面system框里输入系统提示词:
实现功能:接收用户的query和上下文,经过大模型得到结果
注意这里还要写一下:

注意:这时候输出变量就变了,改为大模型输出的text变量:
最后这就是一个完整的agent流程了:
自己去测试运行一下并做出适当的调整和修改
十四、搭建sql数据查询助手
1.安装相应的工具
Echarts和Database
2.接着创建应用:

然后给大模型配置系统提示词,还有用户提示词 和助手提示词:
给大模型的问题实际上是用户的输入:
下面添加代码执行节点:
注意输入变量要和下面代码部分变量名称保持一致
为了使功能更完善,你可以添加更详细的节点:

最后完善后验证发布即可:
十五、agent嵌入网站应用

把下面这段代码粘贴到html文件里:

界面展示如图:
你刷新🔄一下网页,发现我们的聊天小助手已经嵌入网页了:

你可以基于数据库对它进行问题提问
十六、agent封装API应用
首先:
然后配置你的api密钥:
把接口地址复制到postman:
需要填写的信息参照十二.3章节部分:
最后发送post请求获取数据
更多推荐


所有评论(0)