第四期 AI 编程
目标
- 如何用 AI 辅助编程,提升工作效率
- 如何用 AI 快速应用和学习新技术,扩展职业边界
- 通过 AI 编程,洞察 AI 对各个行业的影响
趋势
产品与技术的联通+业务视角 =AI 全栈工程师
AI 编程
使用 AI 编程(编程目前是大模型能力最强的垂直领域),除了解决编程问题以外,更重要是建立 AI 意识,形成对 AI 的正确认知 。通过 AI 编程,了解它的能力边界,使用场景,类比出其他领域怎么用好 AI,找到能力边界
示例流程:
向 ChatGPT 提需求、ChatGPT 整理需求内容、生成项目代码框架、挨个生成具体需求的代码
适用条件
-
技术我懂,不想自己写
- 快速完成重复性工作
- 知道是怎么回事,但需要费费脑子写出来
-
技术不大懂,让 AI 先搞,自己边用边学
- 当心 AI 犯错
- 当心给的不是最佳方案(可以试试提要求,就要最好的)
本质:提示工程
- 想让 AI 做什么,就先给它定义一个最擅长做此事的角色
- 用好思维链,结果更准确(大任务非常容易超过 token 数量限制;过程正确有助于结果正确)
- 如果可能,用英文撰写核心 prompt。会比中文成功概率更大
- 一切技巧,都是为了让 prompt 里的信息更丰富、具体、准确
经验总结
- GPT-4 是目前最强的编程大模型,没有之一。第二强是 GPT-3.5,剩下的非不得已不要用
-
对话界面
- 首选购买 ChatGPT Plus,使用 GPT-4o/GPT-4
- 次选 ChatGPT 3.5 + 三个风格的 Bing Chat
- 再次选,Copilot Chat。简单任务可优先交给它,体验更好
- 别太依赖上下文,尽量在最近 5 轮对话内覆盖所有信息,时不时重新开始对话
- 新技术的使用,老实看文档更好
-
IDE 中首推 GitHub Copilot
- 主要用来快速补全代码、注释
- 别用写注释出代码的能力,不如把注释当指令丢给 ChatGPT
- Copliot 生成测试用例很好用
- 国内平替 Copilot, CodeGeeX
其它工具:
- bito,基于 GPT-3.5 的代码补全,免费。CLI 工具挺好
- Amazon CodeWhisperer, 代码补全,免费
- Cursor,AI- first 的 IDE
- Tabnine,代码补全,个人基础版免费
典型使用场景
- 给出需求,获得技术选型建议
- 完成全局框架搭建,比如:工程框架,类的框架(不建议框架和功能一起完成,容易超过 GPT 处理能力)
- 完成局部小型任务。比如:一个函数,正则表达式,全套 try-catch,对某 API 的调用等
- 对已有代码改写,比如:加功能、注释、测试用例,让代码更易读、易维护、更安全
- 根据错误信息改 bug
- 解释代码,辅助阅读代码
- 开发工具使用,比如:VSCode 配置,各种命令行参数
- 询问技术问题
Code Interpreter(内置 Python 虚拟机) 是目前制高点
- 它能自我修正代码
- Python 项目可以狠狠依赖它
- 其它项目可以先让它用 Python 写,然后翻译成别的语言
看未来
给出想让 GPT 构建的内容,AI 会反问以澄清、得到具体的内容,最后进行构建
安装与使用方式:
pip install gpt-engineer
vim prompt
gpt-engineer .
核心 prompts:https://github.com/gpt-engineer-org/gpt-engineer/tree/main/gpt_engineer/preprompts
评价:啥都能干,就是不精
源代码: https://github.com/wasp-lang/wasp/tree/wasp-ai
用 Wasp, React, Node.js 和 Prisma 生成全栈 Web 应用程序。
纯在线操作,跟着提示下载到本地执行。
核心 prompts:https://github.com/wasp-lang/wasp/blob/wasp-ai/waspc/src/Wasp/AI/GenerateNewProject/Operation.hs
评价:限定了框架,用参数做配置,提供框架代码,成品率高
- MetaGPT: 多智能体元编程框架
使用 GPTs 组成软件公司,协作处理更复杂的任务
官方说明:
- MetaGPT 输入一句话的老板需求,输出用户故事、竞品分析、需求、数据结构、APIs、文件等
- MetaGPT 内部包括产品经理、架构师、项目经理、工程师,它提供了一个软件公司的全过程与精心调配的 SOP
会写代码、文档、画图等
核心 prompts:https://github.com/geekan/MetaGPT/tree/main/metagpt/prompts
评价:agent 模拟岗位的思路挺好玩
从 AI 编程看 AI 当前上限
- 能解决很多问题,但也会有误导
- 不稳定持续存在
- 人工确认必不可少
所以:
- 客观看待 AI,别神化
- 合格的确认官很重要