ChatGPT出来半年多了,用GPT编码的程序员有多少?虽然没有数据支撑,但我感觉用AI编码程序员并不多。我问过几个朋友,他们的回复是,AI没办法完成他想要完成的任务,最终还是得靠自己去写。
GPT真的没办法帮助程序完成任务吗?我感觉不是。但为什么会造成这样现象?我总结有2个原因
-
prompt的问题,比如把需求描述的不够细,AI在不了解细节的情况下只能猜。如果你没办法把需求描述清楚,AI肯定是没办法帮你完成任务的。如何向AI提需求,未来很大可能会成为一门职业。而且这个时间我相信并不会太长。
-
对AI期望太高,很多AI回复的代码并不能立马运行,在这个过程中很可能出现报错。这样就需要来来回回跟AI沟通,才能搞定。
我自己其实已经有很多年没有做一线的编码工作了,但在用AI编码的尝试上,我觉得上面两个问题都不大。
首先,我们要学会把需求拆细。不要一开始就问一个很大而全的问题。就跟自己写程序一样,一个方法解决一个问题。其次,就是学会把出现的问题反馈给AI,让它去修正。
比如我今天就用GPT完成了这样一个任务:我有一个文件夹下面有很多图片,我想要用OCR图片识别文字的方法把所有图片按照名称进行排序,然后按顺序输出文本内容。如果是以前,我可能需要自己写。但用GPT,一分钟不到,初版的程序就写好了。虽然第一次返回的结果里有个小BUG,但就一句话,改完后就能正常运行了。
完整代码如下:
import os
import requests
import json
import base64# 定义接口地址和参数
url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
client_id = "your_client_id"
client_secret = "your_client_secret"# 定义图片文件夹路径
img_dir = "your_image_folder_path"# 获取图片文件夹中所有图片文件名并按读取顺序排序
img_files = os.listdir(img_dir)
img_files.sort()# 定义最终文本变量
final_text = ""# 循环遍历每个图片文件并识别
for img_file in img_files:# 拼接图片文件路径img_path = os.path.join(img_dir, img_file)# 读取图片二进制数据并进行base64编码with open(img_path, "rb") as f:img_data = base64.b64encode(f.read())# 定义请求参数params = {"image": img_data,"access_token": "","detect_direction": "true","language_type": "CHN_ENG"}# 获取access_tokentoken_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}".format(client_id, client_secret)token_res = requests.post(token_url)access_token = json.loads(token_res.text)["access_token"]params["access_token"] = access_token# 发送POST请求识别图片文字res = requests.post(url, data=params)# 解析响应结果并拼接文本res_json = json.loads(res.text)if "words_result" in res_json:words_result = res_json["words_result"]for words_item in words_result:final_text += words_item["words"]final_text += "\n"# 输出最终文本
print(final_text)
我这里用的是百度的图片识别接口,需要申请去百度智能云申请一个应用拿到client_id和client_secret。
总用时不到5分钟。当然因为我有一点编程基础,所以运行时看到报错,我就知道问题在哪里了。如果你没有一点编程基础,通过跟AI互动,我相信也能解决,这种解决过程能帮助你学习编程。
我后面用同样的提示语,在GPT4里提问,获得代码是直接可以运行的。现在GPT4还是很贵,但GPT3.5的话,你可以用我搭建的网站:https://ai.yunyoute.cn 纯福利,免费,无需注册,开箱即用。
我相信随着AI的进步,很多编码工作是可以代的。如果你还没有开始,我建议你现在就尝试去做。
ps: 有同学不太知道该怎么向GPT提问题。你可以尝试在询问GPT的时候,用下面这个提示词:
你将扮演一位 prompt engineer 专家,你非常清楚通过哪些问题能引导 AI 提供令人满意的专业解答。
你将专注于引导我设计促使 GPT 生成具有最小冗余的特定内容所需的策略和 prompt 语句结构。对于每个资源,请提供简洁的摘要,并突出显示在设计有效指令方面有帮助的具体引用。此外,还应包括实例演示,帮我理解如何将其中的概念和策略应用于提示工程。
我是 GPT 新手,我很难清晰表达我的需求。并且不了解 GPT 不能直接联网的局限性。我希望一步步通过问题引导我完成需求的描述,使它能变成明确、简洁又带有足够背景的 prompt。
输出模版:
指引:
你的prompt设计指引,使用简洁易懂的,精确的讲解方式,来引导我对prompt进行迭代设计。
对于每个改良的结果,按 5-10 分的范围给出你的评估分数并添加指导,提出可以改进的地方。如评分>= 8,询问:「你想运行此提示吗?」
附带选项「嗯」和「no 」。如果我说表示肯定,请运行你建议的最后一个提示。否则,请为我生成更好的提示。
确保在我表示肯定时运行提示非常重要。请继续此提示,直到我说「停」或你运行提示为止。
尽管可能地使用 Markdown,确保我们的输出结果有良好的可读性和美观度,使用强调样式突出重点。
解答:
引导任务完成之后,你再重新变成 GPT 来解答我的问题。
谢谢。
它会根据你的提问判断是否需要补充细节,这样来来回回几次,你就能写出更好的提示词了。
这个提示词的作者是:键盘老师,他在极客时间里推出了一门《零基础GPT应用入门课》,刚刚全部上线,这门课里有非常多的干货,如果感兴趣的也可以去看看。