【GPT】Coze使用开放平台接口-【6】Dify 也来一遍

前面讲了 coze 的相关用法,这边想着用 Dify 也来一遍,刚开始的时候接触的是 Dify,后面才是 coze。Dify 和 coze 的侧重点不同,我个人是更倾向用 Dify 构建工作流就可以了,coze 还是相对全能。

本节用 Dify 也会创建插件,工具,工作流,API 调用,机器人就不在这边描述了(个人感觉不是很好用)


1. 创建工具

Dify 创建工具的方式只有通过 OpenAPI-Swagger 的 json 数据,方式是可以直接贴,或者 URL 导入,但是没有其他办法。

所以,就需要自己生成 OpenApi-Swagger 啦,还不支持 swagger 2.0。本身用的代码 web 框架还是 Gin,这点有点难受,有需求的可以看这篇 【Go】Swagger v2 转 OpenApi v3 CLI - swag2op。

所有接口的调整,也都只能在这个 Schema 里面修改,导入成功后,就只能有对应的子工具了。

有留意之前 coze 创建插件那一篇的朋友,应该感受到一个很大的区别,不过这个区别不在这边讲,见下一篇,或者见下面内容。

在这里插入图片描述

2. 创建工作流

创建的步骤就不赘述了,直接看进入工作流后的面板,这边我们用短语音识别来作为例子。

所有工作流的编排,测试,API,请求日志(这个是通过API接口调的),分析,都在一个页面。

在这里插入图片描述

画布上一开始也只有一个节点,开始节点,这意味着可以有多个结束节点。注意,每个节点有且仅有一个子节点

创建下一个节点的方式,只有在节点左右 2 侧的添加按钮(开始节点只有右侧有,结束节点就只有左侧有)。这样子的方式也挺直觉的,下一个节点要做什么,就在右侧显而易见。

2.1. 开始节点

开始节点的参数,只有 4 种:

  • 文本:如果最大长度不设置,就是无限
  • 段落:如果最大长度不设置,就是无限
  • 下拉选项
  • 数字

不设置是指,删除掉,而不是写 0

相对来说是比较少一点的,而且比较固定。

在这里插入图片描述

2.2. 工具节点

点击开始节点右侧创建按钮,选择到自定义工具,找到刚才创建的工具,点击即可。

在这里插入图片描述

点击后,会自动弹出这个节点的编辑页面,可能你要输入参数什么的,就会让你直接编辑。

选择参数的办法是通过 / 就会出来可以选择的参数,选择的参数也是在当前节点之前,以及开始节点的参数。

在这里插入图片描述

按照第二篇的方式,调用完授权接口,就要调实际的 AI 能力接口,同样的方法加入短语音识别的节点。这时候要配置 Authorization 变量,发现只有授权节点的一个 text 输出变量。而这个 text 其实是,auth 接口返回的整个 json 结构体,而不是 Authorization。

在这里插入图片描述

这里其实很不方便,如果字段多一点的,就很麻烦。所以 Dify 的工作流可能更倾向于对话的工作流,而不是这种有很多返回变量。因此,我们就要在每个工具调用后,添加一个代码节点,转换出我们要的变量。

修改节点也不用删除节点,再添加,可以直接点击节点右上角有一个更改节点,就可以替换成代码执行节点。

注意,千万要想清楚你的整个流程,再去创建流程,没有 Ctrl + z 回退。如果你的这个节点配置好了所有参数,或者 LLM 节点配置了prompt,一替换就是全部消失(不要问我怎么知道的)。

在这里插入图片描述

2.3. 代码执行节点

代码执行节点,支持 python3 和 javaScript 代码。输入变量的赋值,就是上一个节点的 text,解析这个 json object ,然后把你需要的值返回出来。输出变量的名称要跟代码里面的一致,不然会一直报错,也不会告诉你因为变量不同。

在这里插入图片描述

这样子提取出来后,就可以复制给下一个工具节点

在这里插入图片描述

2.4 配置结束节点

假设我们配置好了短语音识别工具,再用代码提取出来 result 结果,这个结果就可以给 End 节点输出。

在这里插入图片描述

2.6. 整体

在这里插入图片描述

2.7. 大模型节点

这个工作流没有用到 LLM,但还是想提一下。Dify 的 LLM 节点就是可以配置自己的大模型,也可以在本地部署开源大模型,可以用到比较多的大模型。在 Agent中,用户最多可同时选用 4 个大型模型进行协同测试,这一设计使得 Dify 平台更倾向于为工作流程或 Agent 提供一个环境,让使用者能够集中精力于工作流程的精细打磨与优化。

在这里插入图片描述

2.8. 调试工作流

右上角点击运行就是调试页面,调试结果就是呈现在右侧的这么一小条里面,即使是点了展开,宽度也是一样。这样在对长的内容,其实不是很友好,不过每个节点的信息还是记得详细的。

在这里插入图片描述

3. API 调用

Dify 对工作流的所有功能都集中在一个页面,这样不用去别的地方找,编排下面就是访问 API。访问 API 页面右上角就是 API 密钥的管理,创建。接口文档也在同一个页面,这样子就很快可以让开发者去实现接口调用。前提一样,要发布这个工作流,也不用别人审批。

在这里插入图片描述

我们只列一下 Blocking 模式的接口

鉴权

API 密钥申请

请求地址

http://{IP跟每个人部署时候配置的 HOST 有关}/v1/workflows/run

Header
参数取值说明
AuthorizationBearer $Access_Token用于验证客户端身份的访问令牌,API 密钥
Content-Typeapplication/json解释请求正文的方式。
Body

inputs

类型:json object

是否可选:可选

说明:开始节点需要传入的参数

response_mode

类型:string

是否可选:必选

说明:

返回响应模式,支持

  • streaming 流式模式(推荐)。基于 SSE 实现类似打字机输出方式的流式返回。
  • blocking 阻塞模式,等待执行完毕后返回结果。(请求若流程较长可能会被中断)。

user

类型:string

是否可选:必选

说明:用户标识

响应字段
参数类型说明
workflow_run_idIntegerworkflow 执行 ID
task_idString任务 ID,用于请求跟踪和下方的停止响应接口
dataString工作流执行结果,通常为 JSON 序列化字符串,部分场景下可能返回非 JSON 结构的字符串。
- idStringworkflow 执行 ID
- workflow_idString关联 Workflow ID
- statusString执行状态, running / succeeded / failed / stopped
- outputsObject输出内容,响应字段里面的 outputs 就是 end 节点里面配置的结果。如果里面是 result,那 output 里面就是 {“result”:“xxxx”}。
- errorString错误原因
- elapsed_timeInteger耗时(s)
- total_tokensInteger总使用 tokens
- total_stepsInteger总步数(冗余),默认 0
- created_atInteger开始时间
- finished_atInteger结束时间
示例

在这里插入图片描述

4. API 日志

发布之后的所有调用日志都可以查到,用接口返回的日志 ID 搜索,就可以找到刚才调用的结果,详情及追踪,这个还是很好用的。

不过有一个不好的是,返回的 log id 和 task id 并不能用来做搜索,必须得自己在输入加一个 uuid,然后才能搜索出来。

在这里插入图片描述

总结

初步用下来,Dify 挺适合团队内部构建工作流使用的。虽然有一些体验上不是很好,但是适合创建大模型的一些中间应用。而且工作流创建完之后,有一个日志追踪的,省掉了再加一个监控的系统(当然是对测试的时候)。给到其他开发,还是给到产品,都可以快速地体验以及分析其中的问题。如果有些小的体验上做一些优化,那这个工作流的体验其实还是很不错的,尤其是在工具节点的优化上。
最后一篇呢,就列了一些我对比 coze 和 Dify 的一些体验上的不同,Coze使用开放平台接口-【7】Dify 比较篇。


上一篇:Coze使用开放平台接口-【5】API 调用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux文件IO缓存

一、缓冲区大小对 I/O 系统调用性能的影响 总之,如果与文件发生大量的数据传输,通过采用大块空间缓冲数据,以及执行更少的 系统调用,可以极大地提高 I / O 性能 二、stdio 库的缓冲 当操作磁盘文件时,缓冲大块数据以…

ArcGIS Pro技术应用

GIS是利用电子计算机及其外部设备,采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲,它是在一定的地域内,将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来,达到对地理和属性信息的综合管理。GIS的…

Hreflang 和 SEO:新手完整指南

每天,数以百万计的法国用户访问像 Amazon.com 这样的全球网站。虽然 Amazon.com 的官方页面是英文的,但用户仍然可以看到法语的文本和产品描述。这是因为亚马逊的全球网站有针对法国的本地化版本,确保所有法国用户都可以自动看到法语的网站内…

五种多目标优化算法(NSGA3、MOPSO、MOGWO、NGSA2、SPEA2)性能对比,包含47个多目标测试函数,6种评价指标,MATLAB代码

一、五种多目标算法及六种评价指标简介 多目标灰狼优化算法(MOGWO): MOGWO是由Mirjalili等人在2016年提出的,基于灰狼优化算法(GWO)的多目标版本。它引入了存档机制和改进的头狼选择方式,以处理…

uniapp(微信小程序如何使用单选框、复选框)

一、先看效果 二、数据结构 说明:selected用来记录每次用户选择的值,当是单选的时候属性中的selected属性需要设置成字符串,当是复选框的时候,此时选择的是数组,selected属性应设置为数组。type用来区分当前是单选还是…

【C++ Qt day3】

2、设计一个Per类,类中包含私有成员:姓名、年龄、指针成员身高、体重,再设计一个Stu类,类中包含私有成员:成绩、Per类对象p1,设计这两个类的构造函数、析构函数和拷贝构造函数。

PTA L1-027 出租

L1-027 出租(20分) 下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]2 对应 arr[2]1,index[1]0 对应 arr[0…

Java的IO模型详解-BIO,NIO,AIO

一、BIO相关知识 Java 的 BIO (Blocking I/O) 模型是基于传统的同步阻塞 I/O 操作。在这种模型中,每个客户端连接都需要一个独立的线程来处理请求。当线程正在执行 I/O 操作时(如读取或写入),它会被阻塞,直到操作完成…

【读点论文】Scene Text Detection and Recognition: The Deep Learning Era

Scene Text Detection and Recognition: The Deep Learning Era Abstract 随着深度学习的兴起和发展,计算机视觉发生了巨大的变革和重塑。场景文本检测与识别作为计算机视觉领域的一个重要研究领域,不可避免地受到了这波革命的影响,从而进入…

Golang | Leetcode Golang题解之第376摆动序列

题目&#xff1a; 题解&#xff1a; int wiggleMaxLength(int* nums, int numsSize) {if (numsSize < 2) {return numsSize;}int prevdiff nums[1] - nums[0];int ret prevdiff ! 0 ? 2 : 1;for (int i 2; i < numsSize; i) {int diff nums[i] - nums[i - 1];if ((…

TD学习笔记————中级教程总结(NEW)

目录 Instance功能讲解 问题&#xff1a; 报错All ops must generate the same number of instances (have the same length Replicator功能讲解 问题&#xff1a; 视频分辨率过大 Cannot find function named:onValueChange Instance功能讲解 数据通道的长度要一致 N…

安泰功率放大器应用领域:MEMS传感器的应用有哪些

功率放大器的应用领域很广泛&#xff0c;从超声测试、材料测试、水声测试再到压电驱动、电磁驱动生物医疗&#xff0c;它都能为整个系统提供强劲的激励&#xff0c;同样功率放大器在MEMS传感器系统的激励中也有着良好应用&#xff0c;今天Aigtek安泰电子就带大家走进MEMS传感器…

Hadoop: Mapreduce了解

目录 1.MapReduce概述 2.MapReduce的基本工作原理 2.1.Map阶段 2.1.1.Map源码解析 2.1.2.map端代码总结 2.2.Shuffle and Sort阶段 2.3.Reduce阶段 2.3.1.Reduce源码解析 2.3.2.Reduce端源码总结 3.数据流与任务执行 3.1.数据输入与输出格式 3.1.1.TextInputFormat…

comfyui工作流,动漫转真人,效果炸裂!

在数字媒体制作领域&#xff0c;将动漫风格的图像转换为接近真人风格的视觉效果一直是一个具有挑战性的任务。最近&#xff0c;ComfyUI 推出了一套高级工具和节点系统&#xff0c;极大地简化了这一过程。本文将详细介绍这一工作流的各个组成部分以及其实用性。 工作流核心节点简…

使用腾讯云宝塔面板部署后端项目,包括MySQL,Redis,JDK,Maven

一、购买腾讯云服务器并配置 购买腾讯云的一个服务器服务后进入到如下页面&#xff0c;点击左侧栏服务器&#xff0c;然后点击“重装系统” 选择“使用应用面板”->“宝塔Linux面板”->填写自定义账号和密码->点击确认 二、配置宝塔服务器端口参数并启动 点击确认之…

2024年6月GSEP(C++)一级认证真题讲解

注意&#xff01;做题时长为2小时&#xff0c;孩子做完题目后对照讲解视频和讲解分析&#xff0c;针对薄弱点&#xff0c;进行有效的专项提高。 &#x1f451;讲解视频 &#xff08;暂无&#xff09; &#x1f451;讲解分析 1 单选题&#xff08;每题 2 分&#xff0c;共 3…

sqli-labs靶场通关攻略 46-50

主页有sqli-labs靶场通关攻略 1-45 第四六关 less-46 步骤一&#xff1a;利用报错注入查询库 ?sort1 and updatexml(1,concat(0x7e,database(),0x7e),1) 步骤二&#xff1a;查询表名 ?sort1 and updatexml(1,concat(0x7e,(select group_concat(table_name)from informatio…

WebSocket通信学习笔记

1 简介 WebSocket是一种全双工通信协议&#xff0c;它允许客户端和服务器之间建立持久化的双向连接&#xff0c;从而在不频繁创建HTTP请求的情况下进行实时数据传输。与传统的HTTP协议相比&#xff0c;WebSocket更适合需要实时数据更新的应用场景&#xff0c;如聊天应用、实时…

IDEA没有SQL语句提示

解决已经在IDEA连接数据库&#xff0c;但是写SQL语句不会提示列名、属性之类的 Mapper 映射没有 SQL 提示 设置中搜索&#xff0c;把方言改成 MySQL SQL Dialects

群晖(Docker Compose)配置 frp 服务

为了方便远程电脑&#xff0c;访问自己电脑上的ComfyUI等服务&#xff0c;配置了 frp 服务。 配置 frp 服务后&#xff0c;发现群晖中的一些服务也可以 stcp 安全的暴露出来。 直接在群晖通过 Docker Compose 方式部署 frps 和 frpc&#xff0c;访问者通过 frpc 安全访问暴露…