后端调用Dify发布的智能体/工作流

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

### 集成Dify后端Qwen 为了实现Dify后端Qwen的成功集成,需遵循一系列特定的操作流程。首先,在Dify平台内按照指定路径完成初步设置[^1]。对于具体模型如Ollama的添加过程中遇到的问题,官方提供了详细的指导说明,尽管可能存在一些需要注意的小细节[^2]。 针对Qwen这一具体的后端服务,假设其具有类似的API接口或SDK支持,则可以参照如下方法: #### 准备工作 确保本地开发环境已安装必要的依赖库,并获取Qwen API的相关凭证(如API Key)。这一步骤类似于其他外部服务接入前的准备工作。 #### 修改`init.py` 在项目结构中的`model_works/init.py`文件里引入自定义模块来处理同Qwen之间的交互逻辑: ```python from .qwen_integration import QwenWorker ``` 此处假设有名为`qwen_integration.py`的Python脚本负责封装调用Qwen的服务函数[^3]。 #### 创建Qwen Worker类 新建一个叫做`qwen_integration.py`的新文件用于定义操作Qwen的具体行为模式: ```python class QwenWorker: def __init__(self, api_key): self.api_key = api_key def send_request(self, data): headers = {"Authorization": f"Bearer {self.api_key}"} response = requests.post('https://api.qwen.com/v1/endpoint', json=data, headers=headers) return response.json() ``` 此代码片段展示了如何通过POST请求向Qwen发送数据以及接收返回的结果。 #### 更新ChatFlow配置 回到Dify界面内的ChatFlow编辑器部分,调整对话节点以便能够触发上述编写的业务逻辑并与前端展示层有效衔接起来。注意保持整体架构的一致性和可维护性。 以上即为大致介绍将Dify后端Qwen相连接的方式;实际应用时还需依据具体情况做适当修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值