摘要:本文摘自葡萄城低代码产品活字格的资深用户(格友超哥)所撰写的文章:《惊叹体现!活字格 +ChatGPT:低代码开发智能利用的微小后劲》。
ChatGPT 的 functions 函数应用方
自从 OPENAI 公布了最新的 GPT 引擎 gpt-3.5-turbo-0613 之后,我就对它的 functions 参数很感兴趣,利用 GPT 超强的语言理解能力,如果加上函数执行,咱们就能够让 AI 不再是聊聊天、答复问题了,甚至可能间接帮咱们实现工作工作。刚好明天周末,不如就入手试试,看是否达到我所想的成果。
开始之前,咱们先要看一下官网文档,看看这个 functions,是个什么神奇的参数,只有搞清楚了它的作用和原理,咱们才晓得如何利用它。
这是官网对 Function calling 的介绍,咱们能够看到,目前反对 gpt-3.5-turbo-0613 和 gpt-4-0613 两种引擎。
再看看 functions 参数的格局和属性,咱们能够看到,这里咱们向 GPT 定义了一个名为 ”get_current_weather” 的函数,并且在 description 中形容了这个函数的用处,在 properties 中,咱们定义了两个参数,location 和 unit,这是向 GPT 表明,你如果调用这个函数,须要向函数提供两个参数,并且对两个参数都进行了形容。
[外链图片转存失败, 源站可能有防盗链机制, 倡议将图片保留下来间接上传(img-Tl2uvl8v-1692754507906)(media/e8573f9b741e5f8740fa1e4b64f973c2.png)]
看懂了 functions 参数,咱们大略晓得了原理,其实并不简单,咱们通过定义一系列函数,通知 GPT 函数是什么时候用,做什么用,须要什么参数能力用等,GPT 会依据与用户的聊天信息自行判断是否要“执行函数”。
为什么要给执行函数打上双引号呢?事实上 GPT 必定是不能间接执行函数的,因为这只是个一般的 HTTP 申请,GPT 也只是返回一个 JSON 格局的响应信息,那该如何实现执行函数的呢?
如何让 ChatGPT 调用函数
要搞懂这个,咱们还得看看 GPT 给咱们返回的数据长什么样子。
下面是一个失常的聊天回复信息,咱们看到,message 外面只有 role 和 content 两个属性,另外还新增了一个属性 finish_reason,当它的值为“stop”,阐明此次的对话无需执行函数,也阐明 GPT 并没有调用函数的打算,接下来咱们看看 GPT 打算调用函数时,会返回什么?
咱们发送“请问北京当初天气怎么样”给 GPT,看它的答复。
这里能够显著看到,finish_reason 的值变成了“function_call”,开发人员通过判断 finish_reason 的值,就能够晓得 GPT 是否要调用函数。
这下恍然大悟了,咱们通过回复的内容,弄清楚 GPT 要调用什么函数,而后拿到 GPT 帮咱们获取的参数,间接执行函数就能够了。
应用 ChatGPT 嵌入活字格
数据库表和前端设计
上面咱们来给 活字格装上 AI 的翅膀,咱们先关上活字格 9.0 的版本,新建一个“订单数据表”,并填充模仿数据,另外再建一张音讯记录表。
(订单数据表)
(表字段)
而后新建一个页面,制作一个简略相似搜寻的页面,运行看看成果。
(运行成果)
这个页面用来与用户进行自然语言交互,前端咱们临时做到这儿。
后端设计
接下来设计后端,把 ChatGPT 对接局部做好。
为了方便使用,我提前将 GPT 的 API 封装成了插件,原理跟下面官网所说统一。
(封装后的插件)
设置好 KEY 和音讯数据当前,咱们利用插件的自动化命令配置好须要 ChatGPT 的执行的命令。
这里的每个命令都有一个形容,咱们能够用自然语言通知 AI,什么时候该调用我,AI 会本人决定调用哪一个命令,当然光有命令还不行,咱们还得让 AI 提供参数给咱们。
在参数的配置上,咱们也有一个“参数阐明”,也就是用来通知 GPT,这个参数是什么意思,GPT 会依据用户的信息,本人来演绎和揣测参数内容。
应用 ChatGPT 查问订单
好了,做到这儿,GPT 后端局部也曾经配置好,当初咱们模仿一个场景进去,例如我想让 GPT 帮咱们查问订单数据,咱们能够这样定义:
首先定义一条命令如下,通知 GPT,这个命令是用来按条件查问多个订单数据。
(定义命令)
再给命令定义查问订单须要用到的一些要害参数,有了这些信息,咱们前面就能够实现查问条件,从而依据条件筛选数据。
(参数定义)
判断 GPT 返回的 function_call.name 是不是等于 GetOrderData:
(判断 function_call.name)
如果是,就把取得的参数用来筛选数据:
(筛选数据)
最初把获取到的数据返回给前端:
(数据返回前端)
最初咱们在前端补充一个页面,用来接管并显示查问返回的数据表中的数据。
**
最终实现的成果:
(查问 2023 年 6 月的洽购订单数据)
能够看到 GPT 精确的了解了咱们的用意,并且调用了咱们预设好的命令,还提供了咱们须要的日期、订单类型等参数。
通过这个简略的例子,咱们能够验证 AI 与活字格联合的可行性,那么咱们除了查问数据,还能不能做点更简单的事件呢?
应用 ChatGPT 显示订单内容
所以接着我又做了另一个尝试,让 AI 依据我的要求找到某个订单,并显示该订单内容
这个尝试,我退出了更多的参数,由日期、订单类型、负责人等,而后批改了逻辑,把命令放到前端页面来执行。
(前端命令设置)
来看看运行成果:
(关上 2023 年 6 月 8 日超哥洽购 Iphone 的订单)
看来是齐全没有压力的,这时候咱们初步曾经学会怎么使用 GPT 的能力,来为咱们实现特定工作了,上面我将持续实现一个更简单、更实用的尝试。
应用 ChatGPT 发送邮件
我想让零碎了解这样一句话,并帮我执行。
我是乔布斯,请帮我找出 2023 年 6 月份马斯克经手洽购 iphone 的订单数据,发送邮件给超哥,并写一段话礼貌的督促他快点审核。
我来帮大家理理,想要实现这个工作,咱们须要做些?
▪ 让 AI 晓得我是谁;
▪ 须要找出 2023 年 6 月 1 日到 6 月 30 日范畴内,负责人为 ” 马斯克 ”、订单类型为 ” 洽购订单 ” 的数据;
▪ 将下面数据导出为 Excel;
▪ 找到超哥的邮箱,并将下面的数据作为附件;
▪ 编写一段话作为邮箱注释;
▪ 寻找零碎用户中一个叫“超哥”的人,并拿到邮箱地址;
▪ 将邮件发送进来并返回。
梳理分明了,咱们就开始做逻辑,同样配置好命令和参数的形容
而后利用报表模块,设计一个简略的报表,绑定订单数据库
(报表模块)
最初做一下导出 Excel+ 发送邮件的命令
(命令执行过程设计)
好了,咱们来试试成果,我给大家做了个带解说的视频:
总结
ChatGPT 与活字格的联合为软件设计带来了微小的后劲,并给开发者带来了全新的思考和扭转。AI 的执行工作能力和自然语言交互使软件操作更加智能化和直观化。开发者将专一于与 AI 的对话和数据分析指标的设定,而无需放心底层的技术细节。咱们期待 ChatGPT 和活字格技术的一直倒退,推动低代码开发向智能开发的翻新和冲破,让咱们迎接更加智能的软件时代。
44138851):
总结
ChatGPT 与活字格的联合为软件设计带来了微小的后劲,并给开发者带来了全新的思考和扭转。AI 的执行工作能力和自然语言交互使软件操作更加智能化和直观化。开发者将专一于与 AI 的对话和数据分析指标的设定,而无需放心底层的技术细节。咱们期待 ChatGPT 和活字格技术的一直倒退,推动低代码开发向智能开发的翻新和冲破,让咱们迎接更加智能的软件时代。