当前位置:首页|资讯|ChatGPT|编程

顺应潮流,解放双手,让ChatGPT直接编写可融入业务可运行的程序代码(Python3.10实现)

作者:刘悦的技术博客发布时间:2023-03-16

众所周知,ChatGPT可以帮助研发人员编写或者Debug程序代码,但是在执行过程中,ChatGPT会将程序代码的一些相关文字解释和代码段混合着返回,如此,研发人员还需要自己进行编辑和粘贴操作,效率上差强人意,本次我们试图将ChatGPT直接嵌入到代码业务中,让ChatGPT生成可以直接运行的代码。

ChatGPT的主观回答问题

首先,我们向ChatGPT提出一个简单的代码需求:

可以看到,就像上文所描述的那样,ChatGPT会将文字描述和代码片段混合着返回,其实对于真正的需求者来说,文字描述本身是不必要的,因为如果提问者不知道什么是布隆过滤器,也就不会提出布隆过滤器相关的代码需求。

再看ChatGPT返回的布隆过滤器代码:

大体上,没有毛病。但是主观性太强,什么是主观性?就是ChatGPT其实不是站在需求者的视角来编写代码,而是站在自己的角度上,它没有考虑业务的上下文关系,也就是类和方法命名、方法参数、以及参数类型或者返回值以及类型,这些东西是否符合需求者当前的代码业务。

当然,这并不是ChatGPT的错,主要是输入的问题描述不够明确和详细,但如果每次都需要将代码业务逻辑转化为文字告诉ChatGPT,又有些画蛇添足,狗尾续貂之感。

基于业务配置ChatGPT

那么怎样将ChatGPT融入业务代码?首先创建Openai接入函数:

诀窍就是提前设置好引导词:

这里我们提前设置两个参数func和docstring,也就是函数名和功能描述,要求ChatGPT严格按照参数的输入来返回代码,现在运行函数:

程序返回:

如此一来,ChatGPT就不会返回废话,而是直接交给我们可以运行的代码。

装饰器调用ChatGPT

事实上,函数调用环节也可以省略,我们可以使用Python装饰器的闭包原理,直接将所定义函数的参数和描述传递给ChatGPT,随后再直接运行被装饰的函数,提高效率:

将方法定义好之后,使用基于ChatGPT的装饰器:

程序返回:

直接将业务逻辑和运行结果全部返回。

那么现在,回到开篇的关于布隆过滤器的问题:

程序返回:

丝滑流畅,和业务衔接得天衣无缝,拉链般重合,不需要挑挑拣拣,也不必复制粘贴。

结语

毫无疑问,ChatGPT确然是神兵利器,吹毛可断,无坚不摧。但工具虽好,也需要看在谁的手里,所谓工具无高下,功力有高深,类比的话,如果倚天剑握在三岁孩童手中,不仅毫无增益,还可能伤其自身,但是握在峨眉掌门灭绝师太手里,那就可以横扫千军如卷席了,那才能体现大宗匠的手段。最后,奉上项目代码,与众乡亲同飨:github.com/zcxey2911/chatgptapi_write_code


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1