您的位置:首页 > 房产 > 家装 > 南通网站定制_制作网站公司选 择乐云seo专家_百度热搜榜排行_拉人头最暴利的app

南通网站定制_制作网站公司选 择乐云seo专家_百度热搜榜排行_拉人头最暴利的app

2024/12/26 2:55:54 来源:https://blog.csdn.net/Daphnisz/article/details/144590034  浏览:    关键词:南通网站定制_制作网站公司选 择乐云seo专家_百度热搜榜排行_拉人头最暴利的app
南通网站定制_制作网站公司选 择乐云seo专家_百度热搜榜排行_拉人头最暴利的app

1.前言

​ dify中提供了自定义工具的能力,工具十分容易复用,在需要的流程编排中进行引用即可。根据笔者的经验和理解,自定义工具有点类似微服务,可以把通用的能力封装到工具里面。同时,工具还提供了测试和鉴权等功能,对开发者比较友好。

环境信息:dify-0.8.3,spring-boot-2.7.6

实现效果如下:
在这里插入图片描述

2.开发后台接口

这里使用 spring-boot快速开发一个 post接口作为演示,代码如下:

@RestController
@RequestMapping("demo/tools")
public class DemoCtl {@PostMapping("/task")public ResponseEntity<String> queryTask(@RequestParam Map<String, String> params) {String taskName = params.get("taskName");String taskDate = params.get("taskDate");String result = String.format("任务:%s,执行日期:%s,状态:成功", taskName, taskDate);return ResponseEntity.ok(result);}}

上述代码接收两个参数:任务名和任务日期,用于模拟日常工作中的任务查询功能。

3.编写工具定义

这里使用 idea提供的 Generate OpenAPI draft生成接口的定义信息,然后根据实际情况进行修改形成 dify的工具定义,这里生成的接口定义如下:

openapi: "3.0.3"
info:title: "dify_tools_demo API"description: "dify_tools_demo API"version: "1.0.0"
servers:- url: "http://127.0.0.1:8080"
paths:/demo/tools/task:post:summary: "POST demo/tools/task"operationId: "queryTask"parameters:- name: "taskName"in: "query"required: trueschema:type: "string"- name: "taskDate"in: "query"required: trueschema:type: "string"responses:"200":description: "OK"content:'*/*':schema:type: "string"

把上面编写好的接口定义 yaml复制到 dify工具定义里面就可以创建一个工具,如下:
在这里插入图片描述

注意:上图中的 servers是指的接口所在服务器IP和端口号。

4.在流程编排中应用工具

在上面构建的 dify自定义工具需要输入参数进行任务状态的查询,在流程编排里面需要配合参数提取器进行使用。

补充:参数提取器,可以编写提示词让大模型从用户的提问中提取需要的信息,并存入对应字段。

大致流程是

  1. 问题分类

    填写分类依据:查询任务执行状态。

  2. 参数提取

    参数提取器里的提示词样例如下:

    你是一个平台运维人员,需要提取

    {{#context#}}

    这段话中的任务名称 taskName,任务执行日期 taskDate。

  3. 调用自定义工具

    这里需要引用第2步提取到的参数信息。

  4. 输出答复

这里笔者准备了一个接近工作场景的问题:

​ 帮我看看任务 dws-product-d 20241218 执行完了吗

完整的流程编排和效果如下:
在这里插入图片描述

5.总结

​ 本文通过一个查询指定日期任务运行状态的流程编排,介绍了 dify自定义工具和参数提取器的用法。自定义工具是通用能力的封装,可以增强流程编排的能力,用于特定的业务场景,并且容易在不同流程编排中复用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com