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接口文档,和后端调用智能体的内容,希望对你有帮助。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐