Matthew Berman 的 ChatGPT 编程工作流:构建、测试与迭代

原标题Matthew Berman’s ChatGPT Coding Workflow: Build, Test, and Iterate

这段 2023 年的教程一边构建 Python 命令行聊天客户端,一边演示如何规划、调试和修改 AI 生成的代码。文中提到的软件接口和模型限制属于历史信息。

MBMatthew Berman讲者 · Forward Future
频道
Matthew Berman
发布
2023年4月24日
视频
20:48
阅读
6 分钟
幻灯片
5
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Matthew Berman 通过构建一个调用 OpenAI 模型的 Python 命令行客户端,展示如何把 ChatGPT 当作编程伙伴。他先制定计划,用文档纠正过时的 API 建议,测试程序,故意引入错误,再迭代实现打字效果。他对生产力和就业的预测属于个人观点;模型名称、限制、价格和代码反映的是 2023 年 4 月的情况,可能已不再适用。

  1. 1像指挥一样工作Berman 描述如何指导 AI 编程伙伴,同时保留理解、测试和修正工作的责任。
  2. 2编程前先规划创建项目之前,他要求提供 Python 命令行聊天机器人、文件结构和代码大纲。
  3. 3纠正过时的 API 建议当生成的方法使用旧写法时,他提供相关 API 文档并要求修改。
  4. 4利用错误调试他故意更改模型名称,运行程序,再让 ChatGPT 诊断产生的错误堆栈。
  5. 5完善打字效果第一版只延迟输出,因此他解释自己希望回复逐字显示。

要点建议

  1. 先清楚描述目标、编程语言、文件结构和期望的代码大纲。
  2. 审查并测试生成的代码;演示中 ChatGPT 给出过时的 API 写法后,需要人工纠正。
  3. 有用的调试上下文包括错误输出和相关代码,应先移除其中的秘密信息。
  4. 当第一次实现不符合预期时,可以要求其他设计方案并细化需求。
  5. 对话上下文有限,助手跟不上时应重新提供相关代码。
  6. 演示使用的是历史模型限制、软件包和接口;实际操作前应查阅当前文档。
全文

按章节阅读整理后的全文

只看原始文稿
01

编程伙伴及其局限

Berman 介绍自己对 AI 辅助开发的看法,并讨论入门所需的技能。他关于模型访问和上下文限制的讨论反映了服务在 2023 年的状态。

ChatGPT 改变了我构建软件的方式,我预计学会使用 AI 的开发者会提高生产力。我认为不会使用的人将失业,这是个人预测,并非既定结果。我也根据自己的体验描述了十倍生产力提升;这段教程没有测量或证明普遍适用的生产力倍数。

我把开发者看作指挥:描述工作、引导模型,并检查它的产出。对编程和项目结构有基本了解会有所帮助。我建议从 Python 入手,边做边学,包括询问 ChatGPT 文件应放在哪里,同时要认识到生成的代码仍需理解和检查。

在这次 2023 年 4 月的演示中,我用 ChatGPT 中的 GPT-4 辅助编写代码,而应用本身调用 GPT-3.5 Turbo。我讨论了当时可用的消息与上下文限制,包括每三小时 25 条消息的上限以及不同的 token 限制。这些数字和模型可用性只适用于当时,并非当前规格。

随着代码库增长,在提示中提供全部上下文会越来越难。清晰的文件和方法名称有助于表达意图,简洁的描述也能概括周边代码。但这些做法不能保证模型知道省略的文件实际做了什么:如果回答依赖具体细节,就应提供相关上下文。

02

规划命令行应用

他请 ChatGPT 设计一个 Python 聊天机器人,并在 VS Code 中创建项目文件。应用是调用远程 API 的本地界面。

演示项目是一个通过 OpenAI API 提问的 Python 命令行界面。界面运行在我的电脑上,但模型通过 API 远程调用。编写文件之前,我请 ChatGPT 给出高层计划、文件结构和代码大纲,并指定使用 GPT-3.5 Turbo 和 Python。

ChatGPT 建议使用 OpenAI 软件包。在 VS Code 中,我创建项目文件夹,安装依赖,并添加 `chatgpt.py`、`requirements.txt` 和 `.env` 文件。requirements 文件记录依赖,环境文件保存 API 密钥。视频中的命令和 SDK 写法属于 2023 年版本,复制使用前应查阅当前文档。

我创建一个秘密 API 密钥并放入环境文件。我在视频中表示,会在发布前轮换画面中显示的密钥。一般来说,应避免将密钥放进源代码管理、截图和提示;如果密钥泄露,应撤销或轮换。随后,我把生成的代码框架复制到 Python 文件,并选择已安装依赖的 Python 解释器。

选择 Python 解释器
幻灯片 1 / 5选择 Python 解释器VS Code 显示了项目文件和可用的 Python 环境。
03

纠正并测试 API 代码

生成的代码使用了较旧的 API 写法,因此 Berman 提供文档并替换方法。他运行客户端并检查回答。

ChatGPT 提供了调用 API 的函数,但我注意到第一条建议使用的是较旧模型,而不是我要求的 GPT-3.5 Turbo。要求它切换模型后,第二条建议仍沿用了旧的 API 写法。这说明看似合理的回答需要检查,不能自动接受。

我将 GPT-3.5 Turbo API 文档中的相关示例复制到对话里,要求给出正确用法。修改后的版本采用了当时使用的 chat-completion 写法。我替换该方法并更新主函数,让应用维护对话历史。API 接口会变化,因此不能假定这段历史代码今天无需修改就能运行。

纠正 API 使用方式
幻灯片 2 / 5纠正 API 使用方式对话展示了生成的主循环,以及 Berman 要求纠正模型 API 用法的请求。

脚本加载环境文件和 API 密钥,初始化客户端,然后启动命令行循环。我在 VS Code 中运行它,要求写一首十词的 AI 诗;回答不足十词,但确认了界面能够响应。然后我要求生成数到 100 的 Python 代码,它返回了使用 `range(1, 101)` 的循环。

测试命令行客户端
幻灯片 3 / 5测试命令行客户端终端显示了诗歌提示的回答和接下来的代码生成请求。
04

审查、上下文与调试

Berman 解释为何生成的代码和建议需要人工审查。他引入模型名称错误,并利用错误堆栈请求修复。

生成的代码可能有错,因此要阅读并运行测试。助手也可能过于轻易地遵循错误建议。如果希望获得替代方案而非盲目执行,应明确要求它讨论你提出的方法并建议更好的做法。这种讨论会有所帮助,但判断建议是否合理仍是你的责任。

助手可以将此前消息作为上下文,所以我不会每一轮都重复整个项目。但上下文有限,也不能保证它一直保留所有信息。当回答反复提出错误建议或不再符合代码时,应重新提供相关文件和细节,而不是假定助手仍掌握全部内容。

为了演示调试,我故意把模型名称改成无效的 GPT-3.0 Turbo,然后重新运行脚本。应用产生了错误堆栈。我把错误输出复制到 ChatGPT 并请求帮助;它识别出模型名称问题,并建议使用 GPT-3.5 Turbo。实际分享日志时,应先移除 API 密钥及其他敏感信息。

分享错误堆栈以调试
幻灯片 4 / 5分享错误堆栈以调试错误指出了历史版本应用中故意设为无效的模型名称。

调试循环很直接:编写代码、测试、提供错误和相关上下文、应用建议的修复,然后再次测试。我把模型名称改回去,重新运行诗歌请求。有用的错误消息可以直接指出问题,但 AI 给出的诊断仍需验证。

05

通过迭代扩展程序

ChatGPT 提出功能建议,Berman 选择打字效果。第一次实现不符合他的意图后,他修改了请求。

接下来我询问 ChatGPT 可以添加哪些功能来扩展应用。它建议保存对话历史、支持多用户、富媒体、个性化、模拟打字、翻译、语音和外部 API 等选项。我选择模拟打字,并要求给出实现方法。

扩展客户端的想法
幻灯片 5 / 5扩展客户端的想法ChatGPT 提出若干功能,包括下一轮迭代选用的打字效果。

第一个建议使用 `time.sleep` 延迟聊天机器人的回复。我添加建议的导入和方法,替换主函数并运行程序。它先显示正在输入的消息,再显示回复,但这不完全符合我的意思:我希望文字本身逐渐出现。

我进一步说明,希望模拟有人正在输入回复。ChatGPT 建议在每个字符之间加入延迟,逐字显示回复。我添加新的输入和显示函数,更新主循环并再次测试。这次字符逐渐出现;这是视觉模拟,与将模型回复按块流式传输并不相同。

06

项目变大后的上下文管理

他建议在项目大到无法放入一条提示时,选择相关代码提供给助手。最后,他谈到了对未来编程工具的期待。

随着项目变大,应选择解释当前任务所必需的代码部分,并在需要时提供。经过练习,你会了解助手何时丢失上下文,以及哪些建议需要更仔细的检查。我也期待 GitHub Copilot X,希望它能让项目上下文更易于处理;这一期待反映了录制时的情况。

同频道的其他文章

12 张幻灯片34:21EN → 简体中文
Matthew Berman· 2026年10月27日Matthew Berman 解读 Anthropic 的上市文件、AI 增长与治理Matthew Berman, Sam Altman · Forward Future主持人审视 S-1 中的财务指标、算力战略和投票结构,并质疑 AI 快速发展与安全之间的张力。AnthropicAI Safety企业 AI+2
2 张幻灯片0:36EN → 简体中文
Matthew Berman· 2026年10月25日Kimi K3.1 与魔方求解演示Matthew Berman · Forward FutureMatthew Berman 展示一个被打乱的虚拟魔方如何复原,并对 Kimi K3.1 的测试给予积极评价。评估编程智能体Open-weight models
6 张幻灯片25:50EN → 简体中文
Matthew Berman· 2026年10月24日Kimi K3.1 Pro 实测:3D 演示出色,表现不一,价格有竞争力Matthew Berman · Forward FutureMatthew Berman 测试这款开放权重模型的编程、3D 渲染和视觉讲解能力,并比较基准成绩与价格。Open-weight modelsBenchmarksAI cost & performance+1
2 张幻灯片32:20EN → 简体中文
Matthew Berman· 2026年10月23日本地 AI 究竟适合谁?成本、取舍与混合模式的未来Matthew Berman · Forward FutureMatthew Berman 权衡数据控制和自主权,与硬件成本、设置复杂度及推理速度之间的关系。Local inferenceOpen-weight modelsAI cost & performance+1
6 张幻灯片1:03:37EN → 简体中文
Matthew Berman· 2026年10月23日Matthew Berman 团队测试 Kimi K3.1:动画、游戏与图表Matthew Berman, Alex, Brian · Forward Future一场团队直播问答变成了对 Kimi K3.1 的非正式测试,内容涵盖个人智能体工作流、动态图形、浏览器游戏和基准图表。编程智能体Generative media评估+2
0:53EN → 简体中文
Matthew Berman· 2026年10月22日Sam Altman 谈 AI 与新知识的发现Sam Altman · OpenAIAltman 预计,数学发现方面的进展将延伸到生物学、材料和能源领域。AI for scienceMathematicsComputational Biology+1