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

news2024/11/15 23:44:00

前面讲了 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.coloradmin.cn/o/2090093.html

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

相关文章

k8s的组件以及安装

目录 概念 k8s的使用场景 k8s的特点 核心组件 master主组件 1.kube-apiserver 2.etcd 3.kube-controller-manager 控制器 4.kube-scheduler node从节点组件 1.kubelet 2.kube-proxy 3.docker 总结 k8s的核心概念 安装k8s 架构 安装步骤 实验:创…

快递盒检测检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

快递盒检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

使用pytorch深度学习框架搭建神经网络

简介 现在主流有两个框架pytorch和TensorFlow,本文主要介绍pytorch PyTorch:由 Facebook 的人工智能研究小组开发和维护。PyTorch 以其动态计算图(Dynamic Computational Graph)和易用性著称,非常适合研究人员和开发者进行实验和…

智谱发布新一代基座模型

自 2023 年 3 月发布第一代语言基座模型 ChatGLM 以来,我们经过对基座模型的深入探索,在模型性能和模态上取得了显著的提升。 基于此,在KDD 2024大会上,我们发布了新一代基座模型,包括语言模型GLM-4-Plus、文生图模型…

数据仓库系列15:数据集成的常见挑战有哪些,如何应对?

在大数据时代,数据集成已成为数据仓库建设中不可或缺的一部分。无论是来自多个数据库、外部数据源,还是实时数据流的整合,数据集成都面临着诸多挑战。那么,这些挑战具体是什么,我们又该如何应对呢?本文将通…

Elasticsearch(一):单节点安装并开启ssl

单节点安装并开启ssl 1、概述2、安装2.1、前期准备2.2、下载和解压Elasticsearch2.3、创建用户和配置权限2.4、生成证书2.4.1、创建CA(证书颁发机构)2.4.2、与CA签署证书(生成节点证书) 2.5、 为Elasticsearch配置 证书2.6、启动 …

第4章-08-用Python Requests库模拟浏览器访问接口

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲,后续完整更新内容如下。 文章…

【奔驰中国-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

什么是基于云的 SIEM

随着企业不断将业务迁移到数字世界,网络威胁的领域也在不断扩大,随着时间流逝,新的威胁不断出现,手段也变得更加巧妙。一个关键问题出现了:组织如何保护其敏感数据、资产和声誉免受网络威胁?这就是基于云的…

Linux中路由功能及ip_forward转发配置

操作系统中路由功能有着至关重要的作用,它决定了网络数据包如何在网络中传输,最终到达目的地。本文简要介绍Linux中的路由功能实现以及IP转发的配置,并验证在容器环境下配置net.ipv4.ip_forward的必要性,以加深理解。 1、Linux中路…

8.6 数据库基础技术-数据库的控制

并发控制 封锁协议 一级封锁协议 二级封锁协议 三级封锁协议 数据库故障和备份 真题 1

案例练习理解ThreadLocal以及应用场景

目录 案例练习 应用场景 ThreadLocal:用来解决多线程程序下并发问题,通过为每一个线程创建一份共享变量的副本保证线程之间的变量的访问和修改互不影响。 案例练习 1.三个销售卖小米SU7,求他们的总销售。使用CountDownLatch维护三个线程 …

跑腿代购系统开发:重塑便捷生活的新篇章

在快节奏的现代生活中,时间成为了最宝贵的资源之一。随着移动互联网技术的飞速发展,人们对于高效、便捷的生活服务需求日益增长,跑腿代购服务应运而生,并迅速成为连接消费者与日常所需商品及服务的重要桥梁。为了满足这一市场需求…

C++:继承用法详解~

在学完C的类和对象,并掌握了类的核心语法与基本用法之后;我们就得去学习一下继承的语法,与继承的用法。简单概括一下,继承是C中一种代码复用的手段,它允许我们,对已有的类,增添新的成员函数或变…

28 TreeView组件

Tkinter ttk.Treeview 组件使用指南 ttk.Treeview 是 Tkinter 的一个高级控件,用于显示和管理层次化数据。它类似于电子表格或列表视图,但提供了更丰富的功能,如可展开的节点、多列显示等。ttk 模块是 Tkinter 的一个扩展,提供了…

NVM安装及配置

一:下载nvm安装包 https://github.com/coreybutler/nvm-windows/releases 二:安装步骤 三:检查环境变量 (1)、检查用户变量和系统变量中是否有NVM_HOME和NVM_SYMLINK。一般情况下,安装nvm后,系…

Java分布式架构知识体系及知识体系图

Java分布式架构整体知识体系是一个庞大而复杂的领域,它涵盖了多个方面,旨在帮助开发者构建高性能、高可用、可扩展的分布式系统。以下是对Java分布式架构整体知识体系的概述: 一、分布式理论基础 CAP理论: 一致性(Con…

GUI编程04:课堂练习及总结

本节内容视频链接:6、课堂练习讲解及总结_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p6&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 根据前三节学习到的Frame、Panel、Button知识,画出一下窗口界面: 实现代码如下…

避坑之:深信服AC跨三层取MAC(核心交换机是锐捷S7808C_RGOS 11.0(4)B2P1)

今天碰到一个奇怪的现象,深信服AC对接锐捷交换机做跨三层取MAC,怎么都获取不到。 一、坑1:交换机不回应snmp报文 1.1 排查锐捷交换机配置 配置上看着没有问题,重新配置了community 1.2 查看snmp报文是否通畅 我的笔记本是win10…

选对文档版本管理软件:10款工具详解

本篇文章中提到的工具包括:1.PingCode;2.Worktile;3.联想Filez;4.蓝凌云;5.阿里云盘;6.360亿方云;7.无忧企业文档;8.DocStar ECM;9.Dropbox Business;10.Shar…