青龙面板安装指路:青龙面板安装指南:打造你的定时任务管理利器
1.方案概述
1.1 为什么需要结合青龙与Dify?
-
Dify的痛点:缺乏原生定时任务功能,人工操作训练/备份效率低
-
青龙的优势:提供稳定的任务调度能力+完善的执行日志
-
典型场景:
-
定时触发模型训练(每日凌晨低峰期)
-
自动备份知识库数据(防误删)
-
周期性的API限额重置
-
1.2 技术架构
2. 环境准备
2.1 前置条件
-
已安装Docker的服务器(2核4G以上配置)
-
正常运行的Dify服务(版本≥0.3.5)
-
青龙面板基础安装(参考前文)
2.2 网络连通性测试
# 测试从青龙容器访问Dify
docker exec -it qinglong curl http://dify_host:5001/api/health
# 应返回 {"status": "ok"}
3. 关键步骤配置
3.1 dify侧关键准备
1. 完成工作流配置并发布,创建密钥
请求示例:
curl -X POST 'http://127.0.0.1:8088/v1/workflows/run' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": {},
"response_mode": "blocking",
"user": "abc-123"
}'
3.2 青龙侧配置
3.2.1 添加环境变量
DIFY_TOKENS
:Workflow API 密钥(必填)DIFY_BASE_URL
:API 接口地址(必填)- 多个 token 使用分号
;
分隔
3.2.2 依赖安装
- 导航至【依赖管理】->【NodeJS】【Python3】【Linux】
- 分别安装依赖包
直接将脚本复制到名称下,选择自动拆分即可
NodeJs
crypto-js
prettytable
dotenv
jsdom
date-fns
tough-cookie
tslib
ws@7.4.3
ts-md5
jsdom -g
jieba
fs
form-data
json5
global-agent
png-js
@types/node
require
typescript
js-base64
axios
moment
request
ds
crypto -g
-g typescipt
https
proxy
ql
qs
common
cjs
sharp
jsencrypt
node-rsa
xmldom
Python3
requests
canvas
ping3
jieba
PyExecJS
aiohttp
redis
httpx
success
bs4
Crypto
openai
dashscope
Linux
gcc
lxm
magic
python-devel
aiohttp
bizMsg
lxml
bizCode
添加完成后,等待依赖下载即可,失败的可以重新点击下载
3.2.3 通知管理
青龙面板中选中系统设置,进行通知设置,选择合适的通知方式进行配置即可
3.2.4添加订阅
在服务器中执行以下命令添加 Dify 定时任务项目 的订阅任务:
ql repo https://github.com/leochen-g/dify-schedule.git "ql_" "utils" "sdk"
选择root角色进行登录执行即可,有时候因为网络不稳定可能会失败,多尝试几次就好了
执行成功后,定时任务、脚本管理拉取执行脚本
dify官方给的脚本执行报错。。。显示当前文件找不到axios,但是依赖已经下载成功(全局),百度说在脚本目录下没有axios依赖,要重新下载,但是尝试了下因为node还要npm版本限制没办法进行下载,因此找大神要了python执行脚本,执行成功(python菜鸡),返回形式目前系统只支持阻塞式不支持流式
报错,希望有解决办法的大佬指导:
自己写的脚本,在定时任务中管理即可
import requests
url = 'http://192.0.0.0/v1/workflows/run'
# 假设你已经有了一个有效的访问令牌
access_token = 'app-*************' # 替换成你的实际token
headers = {
'Authorization': f'Bearer {access_token}', # 使用f-string来插入变量值
'Content-Type': 'application/json'
}
data = {
"inputs": {},
"response_mode": "blocking",
"user": "qinglong"
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
print('请求成功:', response.json())
else:
print('请求失败,状态码:', response.status_code)
print('响应内容:', response.text)
命令要task 开头 执行自己配置的脚本
好啦,到此整个流程就结束啦~dify目前只支持workflow类型,所以不要使用其他类型的api进行调用噢,配置任务后,手动执行,运行成功后就可以在dify日志中检测到调用记录啦~
有问题欢迎沟通噢