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-09-08krita ai 快速选取插件的方法与工具有哪些-icode9专业技术文章分享
- 2024-09-08unity 断点时 断点没有松开,无法正常关闭进程怎么解决-icode9专业技术文章分享
- 2024-09-08ReleaseMutex 返回值代表什么-icode9专业技术文章分享
- 2024-09-08CloseHandle 返回值有什么意义-icode9专业技术文章分享
- 2024-09-08用selenium点击遇到一个不可交互的元素时怎么办-icode9专业技术文章分享
- 2024-09-08selenium 中,用img的scr来定位,怎么写-icode9专业技术文章分享
- 2024-09-08软件项目的系统架构设计、技术选型和编码规范有哪些需要注意的方面-icode9专业技术文章分享
- 2024-09-07Webpack-bundle-analyzer教程:初学者友好的打包分析工具学习指南
- 2024-09-07TypeScript 入门指南:从零开始掌握基础概念与实践应用
- 2024-09-06如何使用RSC创建基本的网页布局:适合初学者的指南