要让 AI 生成可直接落地、无需大幅修改的代码,关键在于把“需求描述”从模糊的一句话拆成五个确定要素。我们将其总结为一个可直接套用的公式:
高质量代码提示 = 角色定位 + 具体任务 + 上下文信息 + 约束条件 + 输出要求
下面按要素说明,并给出真实可用的模板。
五个要素说明
| 要素 | 作用 | 真实示例 |
|------|------|----------|
| 1. 角色定位 | 设定代码风格与专业深度 | “你是一位有 8 年经验的 Python 后端工程师,习惯写防御式代码和完整注释。” |
| 2. 具体任务 | 用动词开头,明确要做什么 | “编写一个函数,将用户上传的 CSV 文件解析为 Pandas DataFrame,并自动检测日期列。” |
| 3. 上下文信息 | 提供现有环境,避免 AI 假设错误依赖 | “项目使用 Python 3.9,Pandas 1.5,不允许使用 eval。该函数将被 views.py 中的上传接口调用。” |
| 4. 约束条件 | 划定边界:性能、安全、异常、依赖 | “文件大小不超过 50MB;空值用 NaN 表示;必须处理编码错误(utf-8 失败时回退到 gbk)。” |
| 5. 输出要求 | 规定代码格式和附带内容 | “只输出代码块和简短的使用说明,不需要逐步解释思路。代码需包含类型注解。” |
直接复用模板
角色:你是一位经验丰富的 [语言/领域] 工程师,[补充风格要求]。
任务:请编写 [具体功能],用于 [使用场景]。
上下文:
- 运行环境:[语言版本 / 框架版本]
- 现有依赖:[已安装的库 / 已有代码结构]
- 调用方式:[如何被调用]
约束:
- 必须处理:[异常/边界情况]
- 禁止使用:[特定方法或库]
- 性能/安全要求:[具体指标]
输出:
- 代码格式:[如:带类型注解、符合 PEP8]
- 附带内容:[如:单元测试 / 使用示例 / 复杂度分析]
- 排除内容:[如:不要解释思路,不要 apologizing]
对比示例
低效描述(会得到通用玩具代码):
“帮我写一个读取 CSV 的代码。”
高效描述(会得到接近生产环境的代码):
角色:你是一位资深 Python 数据工程师,注重异常处理和内存效率。
任务:编写一个生成器函数stream_csv_rows,逐行读取大 CSV 文件并返回字典。
上下文:运行环境 Python 3.10,仅使用标准库csv,不允许用 Pandas。将在 2GB 内存容器中调用。
约束:文件可能含 BOM;遇到无法解码字符时跳过该行并记录日志;首行缺失标题时抛出 ValueError。
输出:提供完整可运行代码(含类型注解),附一个使用示例,不要输出逐步思考过程。
三条实用建议
- 约束宁多勿少
AI 默认倾向于“最大兼容的通用解”。你把异常处理、边界条件、禁用方案明确写出来,代码才会贴近真实业务。
- 上下文控制在 3–5 条
给出关键依赖和调用环境即可。超过 500 字的无关联背景反而会让模型抓不住重点。
- 复杂需求分两步走
如果逻辑复杂,先让 AI 输出接口定义(函数签名 + 参数说明),你确认后再要求实现细节。这比一次性堆砌 10 个要求效果更好,也能减少返工。