【知识总结】Dify:Agent可视化开发平台
目录
1 前言
在使用Dify之前,进行环境配置:
(1)首先通过github下载Dify,直接下载压缩包,本地解压:langgenius/dify: Production-ready platform for agentic workflow development.;
(2)确保自己已经在装了docker
(3)进入已经下载的Dify文件夹下的docker文件夹,将 .env.example改为 .env
(4)同样在docker文件夹下,输入cmd,进入终端,使用命令docker compose up -d 拉取dify所需的镜像源
(5)镜像下载成功后,浏览器输入http://localhost/signin,设置邮箱,用户名,密码,就可以进入dify了,之后便可以使用了。
2 Dify接入本地大模型
这里本地大模型选用ollama,所以我们需要现在ollama官网下载,下面是下载完成的可视化界面:

然后我们进入dify平台:我的->设置->模型供应商->就可以看到我们本地的ollama模型了

现在我们就在dify里面适用这个模型:
进入dify平台:工作室->创建空白应用->新手适用->选择聊天助手->填写所创建的助手的名字->创建
创建成功后,便进入如下界面:

上述是dify接入本地大模型的,我们更喜欢接入API大模型,因为速度更快,这里以阿里的qwen为例,在此之前,我们需要获取其api, 这里就不多说了。
然后也是到 我的->设置->模型供应商->搜索框输入通义千问->点击安装->回到模型供应商界面,就可以看到安装的模型了->然后点击配置,填写申请的api-key,就可以使用了。

使用方法跟本地大模型一样,只不过聊天时,需要选择这个模型
3 Dify中应用提示词
首先我们创建助手,跟上面一样,我这里创建一个金融小助手,在系统提示词中,输入:你是一名金融小助手,为客户解答金融相关问题。

4 Dify中使用知识库
首先我们得构建知识库,在首页->点击知识库->创建知识库->导入已有的文本,上传文件->点击下一步->填写内容:如下,我这边写300和5,其他选项建议如下



知识库创建完成后,我们就可以开始使用了:
第一步我们创建一个agent,注意不是助手
我们线演示下没有使用知识库的效果:


下面我们应用知识库

5 Dify中工具的使用
在首页->点击工具->在工具市场中安装工具,我这边以时间工具为例,

使用工具:创建agent
下面是没有使用工具,大模型给出的时间是错误的

使用时间工具:

日期是对的,时间不对,我们需要改变下时区

选择亚洲/上海

再次尝试,就正确了

6 Dify中使用自定义的工具
自定义工具的话,就需要我们自己写个脚本了,然后抛出个接口,这里我以天气查询工具为例
【python脚本代码】
from fastapi import FastAPI, Request, HTTPException
from pydantic import BaseModel
import requests
app = FastAPI()
# 身份验证令牌(个人使用,简单安全)
VALID_TOKEN = "xx_identification_token"
# 城市编码数据(直接硬编码,无需外部文件)
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头认证
- 返回自然语言格式的天气信息
"""
# 1. 验证身份
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
# 2. 查找城市编码
city_code = CITY_CODES.get(location)
if not city_code:
return {
"status": "error",
"message": f"请提供{location}对应的编码方可查询,目前支持的城市:{','.join(CITY_CODES.keys())}"
}
# 3. 调用天气API
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)}"}
# 4. 解析天气数据
try:
forecast = data["data"]["forecast"][0]
weather_type = forecast["type"]
high = forecast["high"].replace("高温 ", "")
low = forecast["low"].replace("低温 ", "")
temperature = f"{high}/{low}"
# 5. 返回自然语言格式
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)

这里设置的令牌很重要,之后要用
写完脚本后,我们运行:

在这边需要使用内网穿透:直接新建一个终端,输入:
npx localtunnel --port 8081

就可以得到新的url,然后开始在dify中自定义工具
首页->工具->自定义工具:
输入工具名称,以及Schema, Schema可以使用下方的:
{
"openapi": "3.1.0",
"info": {
"title": "天气查询API",
"description": "查询中国城市当前天气信息",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://weather-api-abc123.loca.lt"
}
],
"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"
}
}
}
}

注意:这边的url需要改成你刚才的

最后,点击保存,一个工具就创建好了

这个工具的使用跟之前一样,就不演示了
7 Dify中使用工作流
工作流分为工作流和对话流
首页->工作室->创建空白应用->选择工作流创建


【注】工作流这边的内容,相对繁琐,多用用自然就熟练了
更多推荐




所有评论(0)