后端调用Dify发布的智能体/工作流
本文介绍了如何通过API调用Dify智能体的完整流程。首先需要理解Dify的API文档,包括基础URL、鉴权方式和请求路径。文章详细说明了如何获取API Key,并演示了使用Apifox工具进行接口调试的方法。后端调用部分提供了Spring Boot的代码示例,展示如何构建请求并处理响应。主要内容包括API文档解读、请求体构建、API Key获取、接口测试以及后端实现。通过本文,开发者可以快速掌握
·
1.想要在后端通过api调用Dify智能体首选要看懂api文档
1.1看懂api文档

基础URL: 相当于前缀
鉴权: 需要将api_key添加在head中,(后面有获取api_key方式)
api的访问路径是什么呢? 基础URL + 对应方法的路径
例如:假如我想要使用发送对话消息的api,我的访问路径就应该是
http://localhost/v1/chat-messages
1.2读懂请求Body

Request Body对应了应该使用怎样的格式来发送数据
最省事的方法就是复制红框CRUL的内容,打开apifox,选择导入CURL
这样apifox可以自动识别api接口形式
这样就可以很方便的对接口进行调试了
1.3获取api_key

- 前提是你已经创建了agent或者工作流并且发布,我这里是拿上一篇文章(dify部署本地化ollama模型)发布的agent智能体举例,如果你是工作流就要换成工作流对应的api文档
- 点击红框这里获取api_key,
- Dify实际上就是通过api_key来定位你的agent,并不需要id
- 获取api_key之后可以将它添加到刚刚添加的apifox接口上:
- 如图:

-
1.4apifox测试接口
- 点击运行出现如下内容说明你的Dify这里过关了,接下来就是Spring boot的后端调用

2.spring boot的后端调用
- 我将对应的代码放在了git代码仓库中
-
public String sendMessage(ChatRequest request) { try { System.out.println("=== 开始调用Dify API(阻塞模式) ==="); // 准备发送给Dify的请求数据 Map<String, Object> difyRequest = prepareDifyRequest(request); System.out.println("发送到Dify的请求数据: " + objectMapper.writeValueAsString(difyRequest)); // 发送POST请求到Dify API String response = webClient.post() .uri(difyBaseUrl + "/chat-messages") // Dify聊天消息API端点 .header("Authorization", "Bearer " + difyApiKey) // 设置认证头 .header("Content-Type", "application/json") // 设置内容类型 .bodyValue(difyRequest) // 设置请求体 .retrieve() // 开始请求 .bodyToMono(String.class) // 转换响应为String .timeout(Duration.ofSeconds(60)) // 设置60秒超时 .block(); // 阻塞等待响应 // 输出Dify返回的响应到控制台(后续可存储到数据库) System.out.println("=== Dify API 响应 ==="); System.out.println(response); System.out.println("=== 响应结束 ==="); return response; } catch (Exception e) { System.err.println("调用Dify API时发生错误: " + e.getMessage()); e.printStackTrace(); throw new RuntimeException("Dify API调用失败", e); } } - 后端代码其实就是将前端信息整合,通过正确的形式发送给dify,然后获取响应,起到中间商的作用
- 具体代码参考git仓库中的代码,运行起来后可以通过 http://localhost:8080/chat.html 进行访问可以直接看到效果
- (因为我使用了chat.html的前端放在了static文件夹下)
- 记得将properties配置文件中的api_key换成你自己的key
以上就是所有的关于 发布Dify智能体,Dify的api接口文档,和后端调用智能体的内容,希望对你有帮助。
更多推荐


所有评论(0)