写点什么

AI 写代码靠谱吗?| 社区征文

作者:石云升
  • 2023-07-10
    广东
  • 本文字数:2260 字

    阅读完需:约 7 分钟

AI写代码靠谱吗?| 社区征文

ChatGPT 出来半年多了,用 GPT 编码的程序员有多少?虽然没有数据支撑,但我感觉用 AI 编码程序员并不多。我问过几个朋友,他们的回复是,AI 没办法完成他想要完成的任务,最终还是得靠自己去写。


GPT 真的没办法帮助程序完成任务吗?我感觉不是。但为什么会造成这样现象?我总结有 2 个原因


  1. prompt 的问题,比如把需求描述的不够细,AI 在不了解细节的情况下只能猜。如果你没办法把需求描述清楚,AI 肯定是没办法帮你完成任务的。如何向 AI 提需求,未来很大可能会成为一门职业。而且这个时间我相信并不会太长。

  2. 对 AI 期望太高,很多 AI 回复的代码并不能立马运行,在这个过程中很可能出现报错。这样就需要来来回回跟 AI 沟通,才能搞定。


我自己其实已经有很多年没有做一线的编码工作了,但在用 AI 编码的尝试上,我觉得上面两个问题都不大。


首先,我们要学会把需求拆细。不要一开始就问一个很大而全的问题。就跟自己写程序一样,一个方法解决一个问题。其次,就是学会把出现的问题反馈给 AI,让它去修正。


比如我今天就用 GPT 完成了这样一个任务:我有一个文件夹下面有很多图片,我想要用 OCR 图片识别文字的方法把所有图片按照名称进行排序,然后按顺序输出文本内容。如果是以前,我可能需要自己写。但用 GPT,一分钟不到,初版的程序就写好了。虽然第一次返回的结果里有个小 BUG,但就一句话,改完后就能正常运行了。



完整代码如下:

import osimport requestsimport jsonimport 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_token token_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 应用入门课》,刚刚全部上线,这门课里有非常多的干货,学完后会给人一种原来 GPT 还能这么玩。作者牛 B 啊


发布于: 刚刚阅读数: 4
用户头像

石云升

关注

做时间的朋友,用文字记录成长。 2017-11-30 加入

🏆 InfoQ首批签约作者 🏆、荣获2021/2022年度社区共建奖 微信公众号:石云升 微信:shiys1121 凡是过往,皆为序章。正在找寻可以一起做事业的合作伙伴!

评论

发布
暂无评论
AI写代码靠谱吗?| 社区征文_ChatGPT_石云升_InfoQ写作社区