Re: [讨论] 用AI写code产生的疑问

楼主: ZMTL (夜风/潇湘 VR板已经开板!)   2023-04-06 16:34:30
AI(GPT)用于Coding的实务心得
作者是虎尾科大资工系陈国益教授,经同意后转载文字内容,原连结于下:
https://www.facebook.com/kuoyichen/posts/10230748453674915
在上周前往华新丽华授课时,有工程师问到:若有要接手的大型专案,应如何透过AI协助
,加速对专案的理解速度,或是快速产生手册、API列表等,传统上要花非常多时间交互
阅读理解才能完成的工作?
经过数天的测试,ChatGPT(GPT-4)确实能够在理解、修改大型程式专案提供有效的协助,
其步骤与指令说明如下:
在接手大型专案时,常会发生程式码繁多、文件不齐全的状况,阅读跨档案的大量程式码
,不但耗时耗力,更常发生挂一漏万的状况。此时,ChatGPT能够有效的协助,包括直接
修改、整理API与参数、建立说明文件。
在处理多档案的大型专案时,因为档案之间的变量符号连结互有相关,因此首先要能够让
ChatGPT阅读所有专案档案,在此我们以一个GitHub上的俄罗斯方块专案为例,该专案包
括三个主要python档案,分别为block.py、constants.py、tetris.py,如下所示
因为要在同一个对话session中,让ChatGPT读取各个档案的所有程式码,因此建议以
GPT-4进行,较有余裕(有25000个token可供使用),读入程式码时指令后半段的summary
in 10 words是为了避免ChatGPT对单一程式解释过长,影响之后我们实际要做的事,指令
如下所示:
read block.py as follows, summary in 10 words
贴上整个 blocky.py 的程式码
read constants.py as follows, summary in 10 words
贴上整个 constants.py 的程式码
read tetris.py as follows, summary in 10 words
贴上整个 tetris.py 的程式码
当ChatGPT阅读完所有程式码后,我们就可以直接下指令,请其调整关键参数,例如调整
初始方块速度,指令如下:
modify the program to start speed as 5
ChatGPT会提供修改位置与函式,复制程式码后即完成修改,如下所示:
除了直接修改程式之外,也可请ChatGPT针对此专案撰写使用手册,AI会针对全部汇入的
专案程式码,进行整理并撰写手册,指令如下:
write a manual for this program
因应之后开发需求,我们也可以要求ChatGPT整理专案中所使用到的API列表,并以表格方
式呈现,AI便会将整个专案中全部API整理为表格供参考,指令如下:
write the API list and description for this program with a markdown table
在大型专案中,各个关键参数的位置及其意义极为重要,但一般来说需要自行阅读、笔记
、梳理后才能知道各个关键参数的意义。我们可以请ChatGPT针对此专案,列出所有参数
、标示位置、说明用途,并以表格方式呈现,可以大幅降低接手大型专案的难度与成本,
指令如下:
show all parameters, description and its location in this program as a
markdown table
透过请ChatGPT(GPT-4)阅读所有程式码作为先备知识之后,AI就可以变成一个彻底了解专
案程式架构的助理,不论是直接修改程式,或对程式进行分析报告都没问题,经测试,在
GPT-4的单一对话session 25000 token限制下,同时阅读十个程式档案(平均300行)均
十分顺畅,也能够跨档案理解参数与函式之间的符号关连,确实是协助工程师接手大型专
案的利器。
示例用专案位置:(https://github.com/benycze/python-tetris)
_
图片详见原文连结内。
再也不怕连注解都不写的前任了?
作者: DrTech (竹科管理处网军研发人员)   2023-04-06 16:41:00
炫技当网红成分多于实用,例如API List 这样的表格,连参数说明都没有,根本就不能实用。
作者: leolarrel (真.粽子无双)   2023-04-06 16:45:00
javadoc 懒人版?
作者: TAKADO (朕没给的你不能抢)   2023-04-06 17:48:00
把公司的程式码贴给ChatGPT,感觉迟早有一天会出大事,跟把公司专案直接放公开GitHub上差不多了。
作者: k798976869 (kk)   2023-04-06 17:52:00
开源的才能贴出去吧
作者: NCUking (中大王)   2023-04-06 18:07:00
把程式码送给OpenAI 哪间公司允许员工这么搞?
作者: nh60211as   2023-04-06 18:10:00
it's cool and hip so it's ok
作者: mozume (米虫)   2023-04-06 18:57:00
300行...看向那个3000行的method,好想去给原作者盖布袋
作者: bheegrl   2023-04-06 21:32:00
出事了你有办法负责的话你就用啊@@
作者: viper9709 (阿达)   2023-04-06 23:17:00
推四楼
作者: shownlin (哈哈阿喔)   2023-04-14 00:32:00
OpenAI有跟企业合作推线下版的 不用担心程式码流出问题

Links booklink

Contact Us: admin [ a t ] ucptt.com