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能力如何?的更多相关文章

  1. 国内“谁”能实现chatgpt,短期穷出的类ChatGPT简评(算法侧角度为主),以及对MOSS、ChatYuan给出简评,一文带你深入了解宏观技术路线。

    1.ChatGPT简介[核心技术.技术局限] ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于202 ...

  2. 把 ChatGPT 加入 Flutter 开发,会有怎样的体验?

    前言 ChatGPT 最近一直都处于技术圈的讨论焦点.它除了可作为普通用户的日常 AI 助手,还可以帮助开发者加速开发进度.声网社区的一位开发者"小猿"就基于 ChatGPT 做了 ...

  3. 介绍ChatGPT:基于GPT-3.5的强大自然语言处理工具

    大家好,今天我们来聊一下ChatGPT,一个基于GPT-3.5架构的大型语言模型.ChatGPT在自然语言处理方面有着非常强大的能力,可以进行语言生成.文本分类.对话生成等多种任务.接下来,我们将会详 ...

  4. 算法题学习链路简要分析与面向 ChatGPT 编程

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 声明:此图片由 MidJourney 生成 未经训练,不属于任何真实人物 大家好,我是小彭. 2023 开年 ...

  5. 从Chat-GPT看爆火技术概念及医疗领域科技与应用场景

    作者:京东健康 陈刚 一.前言 最近OpenAI在官网上宣告了多模态大模型 GPT-4 的诞生,它可能是迄今为止最好的多模态模型. 主要更新内容如下: 1. 逻辑分析能力更加全面.「考试」能力大幅提升 ...

  6. 一文讲透产品经理如何用好ChatGPT

    作者:京东零售 何雨航 "4.0版本的ChatGPT可以有效提升产品经理工作效率,但并无法替代产品经理的角色." 一.引言 3月15日,OpenAI发布了最新的基于GPT-4的Ch ...

  7. 真实世界的人工智能应用落地——OpenAI篇 ⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 本文地址:https://www.showmeai.tech/artic ...

  8. GPT接入飞书

    GPT接入飞书 在体验ChatGPT这方面,我算是晚的.使用下来,更多的是对于这种应用形式感到兴奋,而不是ChatGPT的专业能力. 得知OpenAI提供GPT3的Api接口后,我想到了将其接入团队飞 ...

  9. 好奇心驱使下试验了 chatGPT 的 js 代码的能力

    手边的项目中有个函数,主要实现图片分片裁剪功能.可以优化一下. 也想看看 chatGPT 的代码理解能力,优化能力,实现能力,用例能力. 于是有了这篇文章. 实验结果总结: chatGPT 确实强大, ...

  10. 和ChatGPT聊了一会天它的学习反映能力惊呆了我

    我:用java写一段玫瑰花 ChatGPT:您可以使用 Java 绘制玫瑰花.以下是一段代码: import java.awt.*; import javax.swing.*; public clas ...

随机推荐

  1. 游戏AI——GOAP技术要点

    目录 什么是GOAP(Goal-Oriented Action Planning) 介绍 细节 难点与挑战 世界表达 具体类型表示 字符串表示 bool转化为枚举 规划器 Regoap流程 Middl ...

  2. 微软博客上几篇 Semantic-kernel (SK)文章

    自从最近微软开源Semantic-kernel  来帮助开发人员在其应用程序中使用AI大型语言模型(LLM)以来,Microsoft一直在忙于改进它,发布了有关如何使用它的新指南并发布了5篇文章介绍他 ...

  3. ACM-DP-数塔问题

    Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告 ...

  4. java -- static, 内部类, 权限, 参数传递

    static关键字 static是静态修饰符,一般修饰成员.被static修饰的成员属于类,不属于单个这个类的某个对象.static修饰的成员被多个对象共享.static修饰的成员属于类,但是会影响每 ...

  5. PHP创建SqlLite数据表并让ID自增

    <?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = ...

  6. c# 异步进阶———— paralel [二]

    前言 简单整理一下paralel,以上是并行的意思. 正文 我们在工作中常常使用task await 和 async,也就是将线程池进行了封装,那么还有一些更高级的应用. 是对task的封装,那么来看 ...

  7. OpenAI的离线音频转文本模型 Whisper 的.NET封装项目

    whisper介绍 Open AI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的Whisper神经网络,且它亦支持其它98种语言的自动语音辨识. Whisper系统所提供的自动语音 ...

  8. 高性能、快响应!火山引擎 ByteHouse 物化视图功能及入门介绍

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 物化视图是指将视图的计算结果存储在数据库中的一种技术.当用户执行查询时,数据库会直接从已经预计算好的结果中获取数据 ...

  9. pandlepanlde-01-必备数学知识

    文章目录 必备数学知识 数学基础知识 高等数学 线性代数 行列式 矩阵 向量 线性方程组 矩阵的特征值和特征向量 二次型 概率论和数理统计 随机事件和概率 随机变量及其概率分布 多维随机变量及其分布 ...

  10. NUXT3.0实现网络请求二次封装

    最近在开发基于nuxt3.0的项目,看了官网的网络请求,感觉不太适合,就自己基于官网的useFetch()方法封装了一个网络请求,下面开始实现封装. 第一步:新建http.ts文件,用于编写封装代码 ...