使用dify-workflow-client sdk可类型安全调用dify工作流:添加依赖、配置api密钥与v1 endpoint、注入difyworkflow客户端,传入workflow id和inputs执行同步或异步调用,直接获取强类型响应结果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想在Java项目里调用Dify平台上已配置好的工作流(Workflow),不用手写HTTP请求、不手动解析JSON、不自己处理重试和超时,直接用类型安全的Java方法触发并获取结构化结果。
引入SDK依赖
打开项目的pom.xml,在<dependencies></dependencies>中添加dify-workflow-client模块:
<dependency><br> <groupid>io.github.guoshiqiufeng</groupid><br> <artifactid>dify-workflow-client</artifactid><br> <version>2.3.1</version><br></dependency>
这个模块只包含工作流相关API,不拉取Chat或Dataset的冗余依赖,避免类冲突。如果你用Gradle,对应写法是implementation 'io.github.guoshiqiufeng:dify-workflow-client:2.3.1'。
配置Dify服务地址与API密钥
在application.yml中写入基础连接参数:
dify:<br> api-key: sk-xxxxxx-your-real-key-here<br> endpoint: https://api.dify.ai/v1
【必须使用v1路径,不能省略】。如果endpoint末尾漏掉/v1,所有请求会返回404且错误提示极不明确——SDK不会自动补全,也不会抛出带上下文的异常。
密钥建议从Dify控制台「设置 → API密钥」创建专用密钥,并开启「仅限Workflow调用」权限,最小化安全风险。
注入并调用工作流
在Spring Boot Service类中,直接注入DifyWorkflow客户端:
@Autowired<br>private DifyWorkflow workflowClient;
构造一个WorkflowRunRequest对象,填入工作流ID(从Dify工作流详情页URL末尾截取,形如abc123def456)和输入参数Map:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
Map<string object> inputs = new HashMap();<br>inputs.put("user_query", "今天北京天气怎么样?");<br>inputs.put("location_id", 110000);</string>
执行同步调用:
WorkflowRunResponse response = workflowClient.run("abc123def456", inputs);
响应体是强类型POJO,response.getOutputs().get("final_answer")可直接拿到字符串结果,无需任何JSON解析。如果工作流配置了错误分支,response.getStatus()会返回failed,此时response.getErrorMsg()给出具体失败原因。
处理异步长任务
某些工作流执行耗时超过30秒(比如涉及文件解析或外部API串联),需改用异步模式:
方法一:轮询查询结果
第一步:调用workflowClient.startRun("abc123def456", inputs),立即返回WorkflowRunStatus对象,其中getTaskId()是唯一任务标识。
第二步:用该task_id调用workflowClient.getRunResult(taskId),返回WorkflowRunResult,其getStatus()可能为running、succeeded或failed。
第三步:轮询间隔至少设为2秒,高频轮询会触发Dify侧速率限制,返回429状态码且无重试头信息。
方法二:注册回调Webhook(仅限企业版部署)
在Dify工作流设置页开启「完成回调」,填入你的Java服务接收端点(如https://your-domain.com/dify/callback)。SDK无需额外编码,但你需自行实现一个@PostMapping("/dify/callback")接口,解析Dify推送的JSON payload并更新本地业务状态。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










