写点什么

绝对干货!如何更好的利用 ChatGPT 提升编码效率?

作者:booboosui
  • 2023-08-21
    北京
  • 本文字数:2408 字

    阅读完需:约 8 分钟

相信关注软件开发的你,早已经开始使用大语言模型(如 ChatGPT)来进行全新的辅助编程了。


不过,相信大家也体会到,使用它并不总是那么简单,尤其是面对复杂问题的时候,我们可能常常会得不到期望的结果。但这并不是因为 GPT 不够强大,而是我们需要找到一种更合理的方法去应用它。


本文将结合流行的 Prompt 工程和智能 Agent 的理念,以实际的操作案例来带你掌握利用 ChatGPT 辅助编程的方法,记得点赞分享哦。


本文目录:

  1. ChatGPT 擅长哪些类型的编码任务?

  2. 如何让 ChatGPT 更听话的完成我需要的代码?

  3. 如何让 AI 帮我与开发工具进行打通,进一步提升代码质量?

  4. 再进一步:利用 AI 驱动,端到端的实现从需求到可工作的软件!


1. GPT 擅长哪些类型的编码任务?

在使用 GPT 完成编码任务之前,我们需要清楚两个事情:

首先,GPT 拥有大量特定领域的知识,可以帮助我们完成几乎任何开发语言的代码,帮助我们完成诸如:“利用 OpenAPI 对接 GPT 实现一个简单的聊天服务”、“开发一个企业微信聊天机器人进行会议纪要总结”、“完成一个贪吃蛇的小游戏”这样的程序代码。

其次,它可能会在开发任务中完全迷路,不断地沟通和修正依然偏离原本的需求,并产完全对无法使用的垃圾代码。

因此,使用的关键在于缩小和明确我们的需求,在你和 GPT 交代开发需求的时候,应该记住:假设你在和一个从其他部门借调过来的开发人员沟通需求并期望他完成代码,你是否提供了足够明确的信息让他能完成任务?还是你的描述过于模糊,导致程序员可能会迷惑不解或者编写出与你期望不符的代码?

例如,如果你想通过 GPT 得到一个能够为任何会议生成会议纪要的功能。你不能只是简单地给出一个会议沟通记录并期望得到完美的摘要。相反,你应该详细描述你的需求,并提供足够的上下文信息,以帮助 GPT 理解你的目的。

2. 如何让 GPT 更听话的完成我需要的代码?

相信比较了解 GPT 的朋友们都清楚, Prompt 是 GPT 的核心,它能够帮助你引导 GPT 产生更加贴近需求的输出。以下是一些方法来提高产出代码的质量:

1. 结构化的描述语言:尝试使用更加具体和结构化的描述,例如使用:背景(外部信息和上下文)、指令词(需要 GPT 执行的任务)、输入(用户输入的内容或者问题)、输出(希望 GPT 输出什么,按照什么格式输出)的描述方式,如:



2. 提供样本(few-shot):当需求比较难以用语言清晰的描述时候,可以提供少量的样例,帮助 GPT 更好地理解你的意图。



3. 思维链引导(CoT):就像我们的大脑有快(无意识的)与慢(调动意识思考)两种做决策的方式。GPT 这种语言模型也有类似的特性,因此面对复杂问题的时候,我们只需要告诉 GPT “let's think step by step”,产生的内容就会产生意想不到的进步。

以下展示了如何告诉 GPT 思考问题的方式,来让 GPT 产出更高质量的代码:



4. 使用其他方法:如 ReAct 来调用外部工具、embedding 处理记忆,以及通过 TOT 进行深度思考等等这里就不做过多介绍了。

3. 如何让 AI 帮我与开发工具进行打通,进一步提升代码质量?

在实际软件开发过程中,理解需求,完成代码的开发是远远不够的,我们通常会使用一些代码质量检测工具来提升代码质量,比如代码扫描、单元测试等。

那么,我们如何通过 AI 来帮我们决策和调用工具,当工具检测到问题后再由 AI 来自动修复,实现完全由 AI 驱动的代码质量管理呢?

这里需要介绍一个在大语言模型领域非常重要的概念 - Agent:它使用 AI 作为中间代理人,从而进行决策和执行,实现语言模型和工具的打通。



我们可以使用 ReAct 的方法,通过设计一个 Prompt 模板,让 GPT 具有调用工具的能力:

参考模板:



模拟过程:



这里需要做一些开发工作,感兴趣的同学可以开发一个简单的程序来实现:让 GPT 来决策下一步动作(执行单元测试、执行代码扫描还是开发完成)、然后根据 GPT 的决策结果去执行对应的动作。

4. 再进一步:利用 AI 驱动,端到端的实现从需求到可工作的软件!

感谢你耐心的看到这里,希望以上内容能让你有所收获,接下来是硬广告时间。

想象一下,如果我们可以将多个 Agent 组合起来,形成一个完整的由 AI 驱动的软件开发系统,将会是多么的高效。

DevOpsGPT(已开源) 为我们提供了这样的解决方案:



通过这些 Agent 的协同作业,我们可以实现从自然语言需求到最终的软件产品的完整开发流程,具体包括:

  1. 澄清需求文档:使用 DevOpsGPT 与开发人员进行交互,澄清和确认需求文档中的细节。

  2. 生成接口文档:DevOpsGPT 可以根据需求生成相应的接口文档,方便开发人员进行接口设计和实现。

  3. 基于既有项目编写伪代码:通过分析已有项目,DevOpsGPT 可以生成相应的伪代码,为开发人员提供参考和起点。

  4. 代码功能完善以及优化:AI 在生成的代码基础上进行功能完善和优化。

  5. 持续集成:使用 DevOps 工具进行持续集成,确保代码的集成和测试过程自动化。

  6. 软件版本发布:通过 DevOpsGPT 和 DevOps 工具,将软件版本发布到目标环境。


下面通过一个视频完整的演示 DevOpsGPT 的开发流程:


【OMG!!!AI 自动软件开发并部署到云服务器,DevOpsGPT 实现从自然语言需求到可工作的软件!】 https://www.bilibili.com/video/BV1cV4y1e7zg/?share_source=copy_web&vd_source=f0b220a65d76cc10a3a36817712ee9c6


AI 正逐步渗透到我们的日常生活中,DevOpsGPT 的出现,让我们对未来的软件开发充满了期待。欢迎和 DevOpsGPT 一起探索 AI 带给我们的无限可能。




欢迎关注我们的产品了解更新动态

⭐️开源地址⭐️:github.com/kuafuai/DevOpsGPT

商业版本:https://www.kuafuai.net

微信公众号:KuafuAI

邮箱:service@kuafuai.net(我们 24 小时内回复您)

扫描进入微信互动群:



本文参考资料:

AutoGPT:github.com/Significant-Gravitas/Auto-GPT

用 GPT 写代码:www.zdnet.com/article/how-to-use-chatgpt-to-write-code/

Prompt 工程:www.bilibili.com/video/BV1jP411d7or

思考快与慢:book.douban.com/subject/10785583/

CoT:zhuanlan.zhihu.com/p/612136862

Agent:juejin.cn/post/7258445421418364987

用户头像

booboosui

关注

KuafuAI(开源产品DevOpsGPT)CTO 2018-08-07 加入

还未添加个人简介

评论

发布
暂无评论
绝对干货!如何更好的利用 ChatGPT 提升编码效率?_DevOps_booboosui_InfoQ写作社区