

影刀如何结合Dify工作流使用:
假如现在我需要调用dify工作流,我现在需要dify的工作流的api key.
如何获取dify工作流的api key



这样就复制好密钥了 正确的密钥格式为 app-5eVnQ7gUA0IdRmog5c4pfxud (这个密钥已失效)
然后到影刀新建一个模块.
复制粘贴以下代码:
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
import requests
import json
def main(args):
pass
def run_dify_workflow(Dify_workflow_API_key, Dify_workflow_Input):
"""
执行Dify工作流并返回结果。
:param Dify_workflow_API_key: Dify工作流的API密钥
:param Dify_workflow_Input: 工作流的输入,字典类型,且所有值均为字符串类型
:return: 工作流的输出,字典类型
"""
url = "https://api.dify.ai/v1/workflows/run"
headers = {
'Authorization': f'Bearer {Dify_workflow_API_key}',
'Content-Type': 'application/json',
}
#保证所有输入的值均为字符串类型
Dify_workflow_Input = {k: str(v) for k, v in Dify_workflow_Input.items()}
# 数据结构
data = {
"inputs": Dify_workflow_Input,
"response_mode": "blocking",
"user": "default-user-id"
}
proxies = {
'https': 'http://127.0.0.1:7897',
'http': 'http://127.0.0.1:7897'
}
try:
response = requests.post(url, headers=headers, json=data, proxies=proxies)
# 打印完整的响应内容,以便调试
print(f"响应状态码: {response.status_code}")
# print(f"响应内容: {response.text}")
response.raise_for_status() # 如果响应状态码不是2xx,将引发异常
result = response.json()
if 'data' in result and 'outputs' in result['data']:
Dify_workflow_Output = result['data']['outputs']
return Dify_workflow_Output
else:
print("响应中没有找到预期的数据结构")
return None
except requests.RequestException as e:
print(f"请求出错: {str(e)}")
return None
代码里 proxies 的端口可能每个人不一样,到这里查看进行更改就行,没有开代理软件的把这段代码删掉即可。
proxies = {
'https': 'http://127.0.0.1:7897',
'http': 'http://127.0.0.1:7897'
}开始菜单-设置-网络和Internet-代理


设置完成后,到影刀主流程中,调用模块

输入输出需要注意的点是:
Dify_workflow Input 与 Output 都是字典格式,键和值都得对应
举例:
如果我在Dify中设置的输入是这样的

那么我的Dify_workflow Input就应该是这样,这样才不会报错.
Dify_workflow Input = {
"AA": "这是A的文字内容",
"BB": "这是B的文字内容",
"CC": "这是C的文字内容",
}目前我的dify工作流的结构是这样的

如果你的Dify工作流的结束时这样设置的

那么你得到的返回的Dify_workflow_Output就是这样
Dify_workflow_Output ={
"EE": "这是A的文字内容",
"FF": "这是B的文字内容",
"GG": "这是C的文字内容"
}好的,那么整个影刀流程结构如下:

然后就可以顺利使用了
2025/10/25 作者更新:修改了拼写错误。
2025/10/28 作者更新:因为文章编辑器没有自动保存功能,重新做的全新教程被一次自动刷新全清空了,全白改,作者气坏了。