1. 先给结论

普通ChatGPT的Chat模式更适合代码解释、方案讨论和独立代码片段;Codex更适合围绕真实工作区执行任务,包括检查项目、查找和修改文件、运行命令、执行测试并汇报验证结果。

两者的核心差异不是简单的模型能力比较,而是任务执行方式不同。

2. 为什么“能够生成代码”还不够?

在Chat模式中,我们可以粘贴一段Python代码并询问报错原因。模型能够解释可能的原因,并给出修改建议。

但实际项目通常包含多个模块。一个错误可能跨越多个文件;修改一个函数可能影响调用方;项目需要遵守既有目录结构和代码风格;提交改动前还要运行测试和检查。

如果只通过普通对话完成任务,用户往往需要自己进行以下操作:

1. 定位相关文件;
2. 将代码和报错复制到聊天框;
3. 将建议手动应用到项目;
4. 运行测试;
5. 将新的错误继续发回聊天框。

Codex的工作流程更接近:理解目标、检查项目、定位文件、实施修改、运行测试、检查结果并汇报改动。

3. 工作区与权限边界

Codex可以在获得相应权限后处理工作区中的代码和文件。它能够访问什么,取决于用户选择的工作区、提供的权限、运行环境、任务要求以及安全和网络设置。

启动Codex并不意味着它自动获得电脑中所有内容的访问权限。

实际使用中建议:

- 不在提示词中写入密码或API密钥;
- 修改前保存当前版本;
- 明确允许修改的文件和范围;
- 修改后检查代码差异;
- 要求运行已有测试和检查命令;
- 涉及支付、生产数据库和用户数据时进行人工复核。

4. 任务应该怎么写?

假设网站注册页面提交后报错,可以把任务写成:


检查注册页面提交失败的问题。
先确认错误原因;
只修改与问题有关的文件;
不改变现有页面设计;
修改后运行相关测试;
最后汇总改动、测试结果和仍需人工确认的风险。
 

这段任务包含三类信息:

- 目标:修复注册页面提交失败;
- 约束:只修改相关文件,不改变设计;
- 验收标准:运行测试,并汇总结果与风险。

相较于“帮我修一下”,这种描述更容易控制修改范围,也更方便在完成后验收。

5. 已验证的最小README任务

第一次使用Codex时,可以从不会修改程序逻辑的README任务开始:


检查当前项目的README。
目标:补充本地启动说明。
要求:不修改程序代码;根据项目现有脚本编写步骤;
不猜测不存在的命令;完成后列出修改内容。
 

示例项目中已核对的脚本为:
start: node server.js
test: node --test

实际执行的验证命令:

bash
node --test

验证结果:
demo server can be imported
tests 1
suites 0
pass 1
fail 0
cancelled 0
skipped 0
todo 0
```

测试退出码为0。这里的技术结论仅限于该示例项目和这次实际运行结果,不代表其他项目会得到相同结果。

6. Codex适合哪些任务?

对开发者而言,典型任务包括理解陌生代码库、追踪功能调用、修复错误、增加功能、补充测试、审查变更、项目迁移和重构。

有编程需求的科研人员也可以在Python、R或Matlab项目中使用它协助数据清洗、统计分析、可视化、代码复现和环境排错。但研究者仍需审核数据、方法、结果和学术规范。

Codex也可以在合适环境中处理文档、数据、报告、简单网站和自动化流程。如果任务只是概念解释、翻译润色、头脑风暴或独立代码示例,普通Chat模式通常更加直接。

7. 生成代码不代表任务完成

一个更可靠的任务要求是:


修改完成后运行测试和代码检查。
如果测试失败,分析失败原因。
不要删除测试或降低检查标准来制造通过结果。

即使测试通过,也不能自动证明功能、安全和设计都没有问题。测试可能没有覆盖边界情况,需求也可能被误解。因此,正式上线前仍应检查差异并进行人工审查。

8. 总结

需要解释、建议和代码片段时,普通ChatGPT通常已经足够;涉及真实代码库、多个文件、命令执行、测试和持续修改时,Codex更符合这种工作方式。

第一次使用建议从范围明确、风险较低、能够验证的小任务开始,而不是直接交付大型生产项目。


 

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐