开篇说明

在刚接触 Codex 这类 AI 工具时,很多新手可能会感到无从下手。本篇文章将通过一个实战案例演示如何快速上手 Codex,实现一个金融数据分析项目。

本次案例来源于天池竞赛:个人贷款违约预测。数据集来自某信贷平台,包含 120 万条贷款记录 和 47 个字段(其中 15 个为匿名变量)。为了保证公平性,数据被划分为:

  • 训练集:80 万条
  • 测试集 A:20 万条

测试集 B:20 万条 敏感信息(如就业职称、贷款用途、邮编)已脱敏。每条记录包含贷款金额、期限、利率、借款人信用评分、债务收入比、历史逾期情况等信息。目标是根据贷款申请人的数据预测违约概率,这是一个典型的二分类问题,提交结果将用AUC评价模型效果。 在实践中,很多人一开始就让 AI 直接生成理想结果,但往往感觉不够理想。原因在于自己没有明确需求,让 AI 只能生成标准化、通用的答案。因此,先让 AI 帮助生成需求文档,再生成设计文档,最后执行任务,是更高效的流程。


需求分析



下面开始第一步,我们将竞赛题目及数据放置在项目目录下(如 data/raw),并通过 Codex 打开项目。
使用的提示词如下:

目标:  
我想要完成这个竞赛,并需要长期维护这个项目,现在请帮我完成需求文档  
  
输入:  
topic.txt  
  
输出:  
请在doc目录下生成需求文档proposal.md  
  
步骤:  
我不了解任何关于这个项目的知识  
使用提问的方式帮助我确认需求  
不要猜测我的意图,任何不明确的地方必须向我提问

这个时候我们可以把模型的智能水平调到超高,然后 Codex 会根据输入问题不断提问,帮助我们澄清需求并生成详细的需求文档。


在经过七八轮的选择之后,AI就会给我们详细的生成需求文档


然后这一轮的对话就算结束了,这里补充一个小知识点:
Codex 窗口有一个上下文的限制,超过一定长度就会压缩信息,这可能会导致遗漏某些关键信息。因此我们将当前会话成果都浓缩到 proposal.md,然后新开一个会话继续操作就好,从而保持上下文简洁,还可以减少 token 的消耗。


技术设计


生成需求文档后,下一步是让 Codex 生成 详细技术设计文档
这里我们输入以下提示词:

目标:  
根据需求文档生成详细设计文档  
 
输入:  
需求文档 doc/proposal.md  
 
输出:  
详细设计文档 doc/detailed-design.md  
 
步骤:  
根据需求文档的内容,根据里面划分出的模块编写详细设计文档  
模块与模块之间尽量保持相互独立,可以独立进行测试  
不要猜测我的意图。任何不明确的地方都必须向我提问
然后AI就会根据我们的需求文档生成对应的技术设计文档


从图片我们可以看到,AI 5分钟就生成了一份900行的设计文档,里面包含了非常详细的技术实现细节,我们也可以对文档检查一遍,不过我们这一次的目标是为了实现baseline,AI 已经做的很好,我们直接进行下一步
任务划分
我们已经有了具体技术实现的技术文档,接下来就是将项目划分为最小可执行模块。每个模块生成对应任务文件
我们输入提示词如下:

目标:  
为每个模块划分最小可执行任务  
 
输入:  
需求文档 doc/proposal.md  
详细设计 doc/detailed-design.md  
 
输出:  
任务列表  
- doc/tasks/<module-name>.md (每个模块对应一个)  
- doc/tasks/progress.md (总体进度)  
 
步骤:  
根据需求文档和详细设计  
为每一个模块生成 Vibe Coding用的最小任务  
每个模块对应一个 <module-name>.md  
用check list表示子任务是否完成  
progress.md中用check list表示模块是否已经完成


最后的结果

提示词与自动化


划分好具体任务之后,我们输入相应的提示词就可以让AI进行工作了,但Codex等这种AI工具有一个功能,可以支持生成子代理Agent,子Agent具有独立的上下文。所以我们可以让一个总Agent来做监工,根据任务总览然后划分任务给子Agent,让子Agent来完成具体的模块任务,从而可以很大程度上提高效率,并且保证上下文的简短
生成这种提示词的提示词如下:

目标:  
生成Vibe Coding用的Prompt  
 
输入:  
需求文档 doc/proposal.md  
详细设计 doc/detailed-design.md  
任务划分 doc/tasks  
 
输出:  
doc/prompt.md  
 
步骤:  
阅读输入信息,了解当前要实现的工程  
生成doc/prompt.md作为Vibe Coding的起始Prompt  
 
主Agent,用来跟踪整体进度  
主Agent生成子Agent,用来实现每一个模块,并完成测试  
整个过程不会有人工参与  
 
代码必须有完整的pytest单元测试  
并通过mypy和ruff检测  
 
生成prompt过程中  
如果有任何不明确的地方都必须向我提问


最后AI就帮助我们生成了这份300字左右的提示词,我们只需要新开一个窗口直接把这个文档发给AI就好了。然后AI就会一直帮我们完成任务,直到结束。


最后AI完成之后,将模型生成的提交结果提交到官方上去,AUC分数为0.73左右,至此,一个简单的项目框架就做完了,后面就是不断优化了,后续我会继续更新

baseline 成果


在完成全部模块任务后,将模型生成结果提交到官方竞赛平台。

  • 本次 baseline AUC 约 0.73
  • 项目框架完整,可在此基础上进一步优化特征工程和模型参数

至此,一个完整的 Codex 数据分析项目框架就搭建完成,后续可以通过调整模型、优化特征或增强 AI 协作效率进一步提升性能。

本次提示词主要参考了这位大佬的视频内容:

【VibeCoding就该这么做!】 https://www.bilibili.com/video/BV1YP5W6ZEP9/?share_source=copy_web&vd_source=6c5c2d6e4e7a44f84f4ecd91d25a9344

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐