首页 > 其他分享 >ChatGPT的ABAP能力如何?

ChatGPT的ABAP能力如何?

时间:2023-06-20 12:12:07浏览次数:36  
标签:物料 代码 能力 ABAP 开发者 SQL ChatGPT

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后的时代会是个和过去完全不同的时代。

 

标签:物料,代码,能力,ABAP,开发者,SQL,ChatGPT
From: https://www.cnblogs.com/hhelibeb/p/17428644.html

相关文章

  • ChatGPT:免费在线聊天网页版,探索智能人机交互的便捷新方式!
    当今,机器智能相当流行。而在线人工智能聊天系统的兴起大大改变了我们与计算机互动的方式。本文将介绍一款名为ChatGPT的在线免费智能聊天网页版,让你体验智能对话的便利性。ChatGPT是一种基于GPT技术的人工智能聊天系统。这项技术在自然语言处理领域中最为先进,具有几近人类表......
  • ChatGPT 问答00002 div百分比高度下如何设置滚动
    当使用百分比高度时,设置滚动需要指定父元素的高度以及将子元素的高度设为100%。此外,我们还需要将overflow属性设置为auto或scroll以启用滚动。以下是一个示例CSS代码:.parent{height:50%;overflow:auto;/*orscroll*/}.child{height:100%;}在上面的......
  • ChatGPT小型平替之ChatGLM-6B本地化部署、接入本地知识库体验
    本文期望通过本地化部署一个基于LLM模型的应用,能让大家对构建一个完整的应用有一个基本认知。包括基本的软硬环境依赖、底层的LLM模型、中间的基础框架及最上层的展示组件,最终能达到在本地零编码体验的目的。一、ChatGLM-6B模型介绍https://github.com/THUDM/ChatGLM-6B[Star......
  • 用 ChatGPT 解答 2023年四川高考语文作文题 - 时间掌控的边界:自由与仆役的交织
    光阴似箭,距离我当年参加高考,已经23年过去了。虽然我接触ChatGPT还不到半年,但它已经深刻改变了我的工作和思考方式。我不知道ChatGPT的出现,是不是让我变得越来越懒,越来越离不开它了。今天看到群里讨论起今年四川高考语文作文题,忍不住让ChatGPT来完成了这篇作文。作文题......
  • 每日一个 ChatGPT 使用小技巧系列之2 - 用 ChatGPT 研读 SAP ABAP BAPI 的实现源代码
    本系列之前的文章:与其整天担心AI会取代程序员,不如先让AI帮助自己变得更强大每日一个ChatGPT使用小技巧系列之1-给出提纲或者素材,让ChatGPT帮你写作正好昨天有朋友向我发起知乎咨询,询问关于SAPABAPBAPIbapi_vendor_create的使用问题,本文就来说一说:bapi_......
  • 第十六届全国大学生信息安全竞赛创新实践能力赛 初赛 Writeup By AheadSec
    文章目录WebunzipdumpitBackendServicePwn烧烤摊儿funcanaryshellwebgoReverseezbytebabyreCrypto基于国密SM2算法的密钥密文分发可信度量Sign_in_passwdMisc签到卡被生产加密的流量国粹pyshellWebunzipln-s/var/www/html/webshellzip-rywebshell.zipwebshellcurlurl/......
  • 将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版
    在SAP标准产品和实际项目开发中,经常遇到一些需要将尺寸不大的文件(比如小于1MB的配置文件)的二进制内容,存储到ABAP数据库的情况。比如笔者的SAPOData开发教程里这篇文章,下图代码第17行,使用ABAPOPENSQL将变量ls_file_db的值,插入到数据库表zfile里:下图是数据库......
  • To ChatGPT:让你更加随意地使用所有ChatGPT应用
    现在其实已经有很多在线的llm服务了,当然也存在许多开源部署方案,但是不知道大家有没有发现一个问题,目前基于ChatGPT开发的应用,都是使用的OpenAI的接口。换句话说,如果没有OpenAI账号,就没有办法使用这些应用。但是其实这些应用并不是强依赖于OpenAI的接口,其他的在线llm服务也是可以的......
  • 如何直接通过 ABAP 调试器将 SE16 事务码里无法直接查看的内容下载到本地试读版
    在SAPABAP系统里,我们可以使用事务码SE16查看数据库表的内容。这个事务码很方便,但是有一些局限性,比如类型为RAWSTRING的二进制内容,无法在这个事务码里方便的查看。下面的数据库表ZFILE是一个例子:字段VALUE存放的是文件的二进制内容。我们使用事务码SE16查看该文件......
  • POSTGRESQL UPDATE 如何提高I/O 能力
    POSTGRESQL的数据扫描,其实和其他的数据库也无差,无非就是数据块的扫描以及索引的扫描,这里POSTGRESQL数据扫描也叫TUPLESCAN。在POSTGRESQL8.3版本后再HEAP表的修改中,有一个概念叫HOT,通过新的概念提高了堆表的性能,减少了I/O。早起的POSTGRESQL更新的方式是修改索引中的数......