代码生成提示是什么
要让模型产出可用代码,关键是把隐含契约显式写出来:语言与版本、运行环境与依赖范围、函数签名与输入输出类型、异常行为,并要求附带测试用例。生成之后必须在沙箱里真正执行验证再合并到主干;现代编码代理可以直接运行测试,常见做法是让它先写测试再写实现,循环修到测试通过。没有执行验证的代码只是看起来能跑,边界与异常路径往往未被覆盖。
基本信息
| 必声明项 | 语言与版本、依赖范围(如仅标准库) |
|---|---|
| 契约项 | 函数签名、输入输出类型、异常行为 |
| 测试要求 | 附测试用例,覆盖正常与边界输入 |
| 验证方式 | 沙箱运行 + 代码评审后再合并 |
| 常见风险 | 凭空引入依赖、边界处理缺失 |
| 适用场景 | 脚本、工具函数、数据转换、测试用例生成 |
典型使用场景
- 日常工具脚本:日志解析、批量改名、数据清洗
- 接口适配层:把第三方返回结构转换成内部模型
- 测试用例生成:依据已有函数签名补边界用例
- 代码解释与重构:把长函数拆小并补充类型标注
- SQL 与配置生成:按表结构生成查询或配置文件
- 遗留代码迁移:把旧语法改写成当前版本写法
带契约与测试的生成提示
带契约与测试的生成提示
用 Python 3.12 写一个函数 parse_amount(text: str) -> float:
- 支持 12.5 元、1,200 元、¥88 三种写法;
- 解析失败时抛出 ValueError,不要返回 0;
- 只使用标准库,不要引入第三方依赖;
- 附 5 个 pytest 用例,覆盖以上格式与异常边界。
# 先让模型写测试再写实现,循环跑到测试通过
# 生成后必须实际运行:pytest -q,不要只靠肉眼审阅
# 依赖清单对照运行环境核对,确认没有凭空引入的包生成代码评审要点
| 检查项 | 为什么容易出问题 | 怎么查 |
|---|---|---|
| 依赖清单 | 模型会顺手引入未声明的库 | 对照运行环境的包清单逐个核对 |
| 边界与异常 | 空值、超长输入、编码异常常被漏掉 | 跑边界用例,看是否抛预期异常 |
| 资源释放 | 文件与连接未关闭 | 静态扫描与人工评审 |
| 安全隐患 | 拼接 SQL 或命令、明文密钥 | 静态扫描加人工复核 |
| 许可证 | 复制来的实现可能带使用限制 | 核对来源与许可证文本 |
让模型先输出测试再输出实现,效果通常好于一次生成全部代码:测试给出了验收标准,实现阶段会更少走偏。
生成代码等同外部贡献,必须走评审与扫描流程;直接进生产的风险不在语法错误,而在逻辑上看似合理的边界错误。