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后的時代會是個和過去完全不同的時代,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/555704.html
標籤:其他
下一篇:返回列表