ChatGPT的ABAP能力如何?
2023/6/20 14:22:06
本文主要是介绍ChatGPT的ABAP能力如何?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
ChatGPT是最近的热门话题,作为语言模型,它擅长处理各种语言相关的问题。显然,ABAP也是一种语言,ABAP开发者的很大一部分工作就是把自然语言和ABAP语言做互相转换,这应该也是在ChatGPT的擅长范畴内。那么ChatGPT能做好ABAP开发者的工作吗?本文记录了我的一些使用经验和感想。
1,模拟场景:物料查询接口
4月初的时候我试着用GPT4创建了一个物料查询接口函数,过程记录在视频里:https://www.bilibili.com/video/BV1Mj411A71g/ (ChatGPT能写ABAP代码吗?测试1:函数)
在这次尝试中,我只给出了需要的输入参数、输出参数,ChatGPT即写出了完整代码,但并不完全正确。经过我的侧面提示,它把代码改正到了一个只要稍稍调整就能使用的部分。我又提出了关于SQL版本、物料描述语言方面的需求,ChatGPT完全正确理解了我的需求并做出了相应改动。
这个接口需求看似很简单,初学ABAP几天的人差不多也可以完成。ChatGPT能给出答案,这并不让我意外。
让我感到惊讶的是,我的大部分提示都是间接的,而ChatGPT可以完美领会提示语背后的间接含义。比如我希望它使用严格模式的SQL,但我没有直接提出这个要求,而是告诉它"当前ABAP版本大于ABAP 7.52,以此基础优化代码",它完全明白我的真实愿望是使用严格模式的SQL,并给出了相关代码。这种对间接表达的理解,是任何过去的搜索引擎、语音助手都实现不了的,即便是现实生活中的开发人员,也往往不具备如此强大的理解能力。
而它在语法上的一些小错误,在我看来是无关紧要的,毕竟语法检查器可以发现那些错误。ChatGPT并不是专门为编程设计的模型,如果把ChatGPT和语法检查器的结合起来使用,它应该有能力自动解决大部分问题。
2,实践场景:解释语法、查询报表逻辑
举两个实践例子。
例子一:上个月我遇到一位数据开发人员,他被公司安排把一个自开发ABAP报表的逻辑应用在其它数据平台上。这位开发者不懂ABAP,于是向我求助。
他向我提出了一些问题,比如某些ABAP语句是什么意思、如何把一段ABAP语句转写成他看得懂的SQL等,我花了不少时间来解答这些问题。事后,我把部分问题发给了ChatGPT,发现它可以解答大部分问题,特别是把ABAP代码转成SQL代码的部分,ChatGPT完成得很好,让我觉得手敲SQL的自己有点傻。
例子二:有一个根据交货单生成物料凭证的程序,业务顾问要我查到交货单和物料凭证的关联关系。我尝试把整个程序发给ChatGPT让它分析,但chatgpt一次接收不了太多东西,分段发太多的话,它也会忘记前面的内容。于是我发送了程序的主体部分、交货单查询部分和BAPI调用部分,ChatGPT找到了答案:交货单就是物料凭证BAPI参数中的REF_DOC_NO,即参考凭证MKPF-XBLNR。
3,其它
除了ABAP之外,我也尝试用它来做浏览器扩展,它的JS能力要比ABAP强一些,我用它完成了自己的第一个浏览器扩展,还用它读懂了一个Github上的热门JS项目KeepChatGPT ,并且提PR改了个小bug。
4,总结:优点和缺点
优点:
- 能快速实现代码翻译、改写
- 能"理解"很多间接提示和业务概念
- 能记忆和理解上下文,使用门槛低
- 解答范围广,不知疲倦(不考虑GPT4的3小时25条限制的话)
缺点:
- 知识比较陈旧,不清楚某些新版特性,比如DIVISION等函数。使用插件可以弥补部分不足,但即便使用WebPilot等联网插件,依然有大量无法获取的信息。
- 细节会出错
- 无法接收较长的文本,会忘记前文内容
- 会编造内容,特别是API
- OpenAI和其它接口供应商可能会通过降低回答质量来节约成本,这使得ChatGPT的表现可能不够稳定
总的来说,当前ChatGPT在实践中代替不了ABAP开发者,一来是它的能力有限(OpenAI没有提供它的全部能力,另外它没有被做专门针对ABAP的调整),二来ABAP开发者这份工作本来也是为了人类而设计的。
在未来,随着AI能力的进步、成本的降低、功能的特化,和相关工作流程、职位定位的调整,ChatGPT类工具必然代替绝大部分ABAP开发者。我相信,ChatGPT后的时代会是个和过去完全不同的时代。
这篇关于ChatGPT的ABAP能力如何?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解
- 2024-12-25安卓NDK 是什么?-icode9专业技术文章分享
- 2024-12-25caddy 可以定义日志到 文件吗?-icode9专业技术文章分享
- 2024-12-25wordfence如何设置密码规则?-icode9专业技术文章分享
- 2024-12-25有哪些方法可以实现 DLL 文件路径的管理?-icode9专业技术文章分享
- 2024-12-25错误信息 "At least one element in the source array could not be cast down to the destination array-icode9专业技术文章分享
- 2024-12-25'flutter' 不是内部或外部命令,也不是可运行的程序 或批处理文件。错误信息提示什么意思?-icode9专业技术文章分享