ChatGPT赋能低代码开发:打造智能应用的双重引擎

news2025/1/11 18:29:14

摘要:本文摘自葡萄城低代码产品活字格的资深用户(格友超哥)所撰写的文章:《惊叹表现!活字格+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,看它的回答。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWzpRPsm-1692754507909)(media/fb51776ba6344fb79cdfcb610513cdfe.png)]

这里可以明显看到,finish_reason的值变成了“function_call”,开发人员通过判断finish_reason的值,就可以知道GPT是否要调用函数。

这下豁然开朗了,我们通过回复的内容,弄清楚GPT要调用什么函数,然后拿到GPT帮我们获取的参数,直接执行函数就可以了。

使用ChatGPT嵌入活字格

数据库表和前端设计

下面我们来给活字格装上AI的翅膀,我们先打开活字格9.0的版本,新建一个“订单数据表”,并填充模拟数据,另外再建一张消息记录表。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DLYTxGeh-1692754507909)(media/8ffb0ef6d65b0bfee67bbdd8527bb78f.png)]

(订单数据表)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EkkvyVFG-1692754507910)(media/0583676b74034c7cf582135bd016efce.png)]

(表字段)

然后新建一个页面,制作一个简单类似搜索的页面,运行看看效果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMIYvdcW-1692754507910)(media/5d9f20a70e8db6683778d99ce7d0f2cd.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vmOuxKmi-1692754507910)(media/f8d96b5f66f4e9b1d535314ceba6590d.gif)]

(运行效果)

这个页面用来与用户进行自然语言交互,前端我们暂时做到这儿。

后端设计

接下来设计后端,把ChatGPT对接部分做好。

为了方便使用,我提前将GPT的API封装成了插件,原理跟上面官方所说一致。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iBdcYGJA-1692754507911)(media/984348321097c7a3cdcb793a11b78160.png)]

(封装后的插件)

设置好KEY和消息数据以后,我们利用插件的自动化命令配置好需要ChatGPT的执行的命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sOY9Vitp-1692754507912)(media/4c773f6b614907d31a693862726e2862.png)]

这里的每个命令都有一个描述,我们可以用自然语言告诉AI,什么时候该调用我,AI会自己决定调用哪一个命令,当然光有命令还不行,我们还得让AI提供参数给我们。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djyjEUwB-1692754507912)(media/5ed7aea543b7e601dc03790c48d9e786.png)]

在参数的配置上,我们也有一个“参数说明”,也就是用来告诉GPT,这个参数是什么意思,GPT会根据用户的信息,自己来归纳和推测参数内容。

使用ChatGPT查询订单

好了,做到这儿,GPT后端部分也已经配置好,现在我们模拟一个场景出来,例如我想让GPT帮我们查询订单数据,我们可以这样定义:

首先定义一条命令如下,告诉GPT,这个命令是用来按条件查询多个订单数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aughbWLn-1692754507913)(media/4f595078dda1e1ad8c81c81e1464a374.png)]

(定义命令)

再给命令定义查询订单需要用到的一些关键参数,有了这些信息,我们后面就可以实现查询条件,从而根据条件筛选数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-08KxEXbi-1692754507913)(media/af4e0a373de08a2b4e576c237f4e31ba.png)]

(参数定义)

判断GPT返回的function_call.name是不是等于GetOrderData:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fw6lXO7b-1692754507914)(media/ec49001b1cd9936954ad29e85715bfc6.png)]

(判断function_call.name)

如果是,就把获得的参数用来筛选数据:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-npiaZmje-1692754507914)(media/735094dc3a5119651cde75e117b7c31b.png)]

(筛选数据)

最后把获取到的数据返回给前端:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sbv0XklX-1692754507915)(media/78e87b4db15e5428500a88a9c686adf9.png)]

(数据返回前端)

最后我们在前端补充一个页面,用来接收并显示查询返回的数据表中的数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z8rxIF1x-1692754507916)(media/d5a81b456a6e33e8edbe048459f38351.png)]**

最终实现的效果:

在这里插入图片描述

(查询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和活字格技术的不断发展,推动低代码开发向智能开发的创新和突破,让我们迎接更加智能的软件时代。

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

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

相关文章

由银行保险业科技外包供应商安全风险事件,看金融行业供应链安全

近日,金融监管总局下发《关于加强第三方合作中网络和数据安全管理的通知》,通知中提到:近期发生多起银行保险外包供应商安全⻛险事件,对银行保险机构的网络系统安全、业务连续性造成一定影响,暴露出银行保险机构在外包…

春秋云镜:CVE-2018-19422(Subrion CMS 4.2.1 存在文件上传漏洞)

一、题目 靶标介绍&#xff1a; Subrion CMS 4.2.1 存在文件上传漏洞 进入题目&#xff1a; admin/admin 点击设置&#xff1a; 后台管理主页&#xff1a; 上传页面&#xff1a; 上传目录&#xff1a; /panel/uploads/ 查看上传位置&#xff1a; system.pht<?php sys…

Lua代码实现鼠标宏

注意&#xff1a;本文仅是技术交流&#xff0c;滥用技术者将自行承担后果 目录 一、什么是鼠标宏 二、射击游戏鼠标宏的制作原理 三、FPX鼠标宏带来的危害 一、什么是鼠标宏 鼠标宏是一种使用特定软件或设备编写和执行的自动化脚本&#xff0c;用于模拟和复制鼠标操作。它可…

PowerDesigner书签显示comment字段注释内容

1.今日书签 PowerDesigner 16.5 对表字段设置显示 comment 注释&#xff0c;解决视图模型看不到表字段 comment 中文注释的问题。 2.拨云见日 2.1.操作环境 操作系统&#xff1a;Win10 PowerDesigner 版本&#xff1a;16.5 2.2.操作步骤 无论 PowerDesigner 15 还是 Powe…

Vue 中 diff 算法原理

一、Diff 概念 Vue 基于虚拟 DOM 做更新。diff 算法的核心就是比较两个虚拟节点的差异。 Vue 的 diff 算法是平级比较&#xff08;如图&#xff0c;父级和父级比较&#xff0c;儿子和儿子比较&#xff0c;孙子和孙子比较&#xff09;&#xff0c;不考虑跨级比较的情况&#x…

企业专网?公网?工业4G路由器如何正确选择SIM卡?

选择合适的SIM卡对工业4G路由器稳定通信至关重要。但是面对企业专网和公网两种选择,用户该如何抉择呢?本文将全面解析专网卡与公网卡的区别、适用场景及选择要点,并推荐星创易联SR700等产品的匹配方案,助你正确选择最合理的工业SIM卡。 首先,从网络质量上,企业专网较公网更稳定…

韩语翻译器拍照翻译方法,几个步骤轻松翻译

韩语是一种非常有趣的语言&#xff0c;但对于大多数人来说&#xff0c;是非常难以掌握的。 如果你正在韩国旅行或生活&#xff0c;你可能会遇到许多韩语文字和标志&#xff0c;这时候拍照翻译就派上用场了。 许多智能手机都有支持翻译应用&#xff0c;但是如何在手机上拍照并翻…

Java版B/S架构 智慧工地源码,PC、移动、数据可视化智慧大屏端源码

智慧工地是什么&#xff1f;智慧工地主要围绕绿色施工、安全管控、劳务管理、智能管理、集成总控等方面&#xff0c;帮助工地解决运营、管理方面各个难点痛点。在互联网的加持下促进项目现场管理的创新与发展&#xff0c;实现工程管理人员与工程施工现场的整合&#xff0c;构建…

一网打尽java注解-克隆-面向对象设计原则-设计模式

文章目录 注解内置注解元注解 对象克隆为什么要克隆&#xff1f;如何克隆浅克隆深克隆 Java设计模式什么是设计模式&#xff1f;为什么要学习设计模式&#xff1f; 建模语言类接口类之间的关系依赖关系关联关系聚合关系组合关系继承关系实现关系 面向对象设计原则单一职责开闭原…

速通蓝桥杯嵌入式省一教程:(九)AT24C02芯片(E2PROM存储器)读写操作与I2C协议

AT24C02芯片&#xff08;又叫E2PROM存储器、EEPROM存储器&#xff09;&#xff0c;是一种通过I2C(IIC)协议通信的掉电保存存储器芯片&#xff0c;其内部含有256个8位字节。在介绍这款芯片之前&#xff0c;我们先来粗略了解一下I2C协议。 I2C总线是一种双向二线制的同步串行总线…

BLFS学习系列 第26章. 显示管理器 —— 总述

显示管理器&#xff08;Display Manager&#xff09;是用于启动图形显示&#xff08;当前为X服务器&#xff09;并为窗口管理器或桌面环境提供登录功能的图形程序。 有许多显示管理器可用。一些较为知名的包括&#xff1a;GDM、KDM&#xff08;已弃用&#xff09;、LightDM、L…

ssm助学贷款系统源码和论文

ssm助学贷款系统源码和论文050 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&am…

Java注解语法

Java注解语法 1. 前置基础 ​ 学习java反射语法 JAVA通过反射使用公共构造方法和私有构造方法来创建对象 2. Java注解是什么&#xff1f; ​ Java注解是代码中的特殊标记&#xff0c;比如Override、Test等&#xff0c;作用是&#xff1a;让其他程序根据注解 信息决定怎么执…

【ECCV2022】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation

Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation 论文&#xff1a;https://arxiv.org/abs/2105.05537 代码&#xff1a;https://github.com/HuCaoFighting/Swin-Unet 解读&#xff1a;Swin-UNet&#xff1a;基于纯 Transformer 结构的语义分割网络 -…

【FAQ】视频云存储/安防监控EasyCVR视频汇聚平台如何通过角色权限自行分配功能模块?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

SpringMVC 写个 HelloWorld

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

Linux下彻底卸载jenkins

文章目录 1、停服务进程2、查找安装目录3、删掉相关目录4、确认已完全删除 1、停服务进程 查看jenkins服务是否在运行&#xff0c;如果在运行&#xff0c;停掉 ps -ef|grep jenkins kill -9 XXX2、查找安装目录 find / -name "jenkins*"3、删掉相关目录 # 删掉相…

继承(C++)

继承 一、初识继承概念“登场”语法格式 继承方式九种继承方式组合小结&#xff08;对九种组合解释&#xff09; 二、继承的特性赋值转换 一一 切片 / 切割作用域 一一 隐藏 / 重定义 三、派生类的默认成员函数派生类的默认成员函数1. 构造函数2. 拷贝构造3. 赋值运算符重载4. …

部署FTP服务(二)

目录 2.访问FTP服务 1.使用ftp命令行工具 2.使用浏览器 3.使用FileZilla Client 3.Serv-U 1.定义新域 2.创建用户 4. windowsserver搭建ftp服务器 一、FTP工具 二、Windows资源管理器 三、IE浏览器访问 2.访问FTP服务 下面在一台装有Windows10操作系统的计算机中&#…

vue 简单实验 v-on html事件绑定

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"event-handling"><p>{{ message }}</p><button v-on:click"reverseMessage">反转 Message</but…