一、需求不要过于复杂,请拆分任务
一次只干“一件事”,模型越弱任务粒度需要拆分越小。
二、尽量提供充分的信息,描述不要打马虎眼
尽量选中文件;可以直接把示例输入/输出贴进来;少说业务黑话。
三、赋予新角色
为AI设定一个角色,就像是给它加载了一个“专家知识包”,这会引导它使用更专业、更地道的术语、代码风格和思考模式来回答你的问题,从而显著提升生成结果的质量和专业性。
四、习惯新开会话,避免过多伦次
主要有两个原因:
1.当前模型能力在短上下文下能力最强,很多模型声称有200k上下文,实际上真正有效的就几十K,新开会话会比较有效的把这些上下文利用起来。
2.模型幻觉导致的误差会累计,模型在第一轮犯的错误如果没有被及时修正可能会误导第二轮的决策,第二轮变差的第三轮更差,以此类推。
新开会话,把必要的信息提供一遍,最大化的利用模型上下文空间,能得到更好的结果。
五、如果项目允许,请尝试TDD(测试驱动开发)
如果项目在本地启动比较方便,并且测试多是无需启动应用的单测,那开发代码的时候,可以先让AI把测试写好,然后再去编写业务代码,直到AI把用例都跑过才算成功。
六、AI并不擅长问题修复
通常来说,如果一个问题一次修复不掉,大概率一直修复不掉,最好让模型整体换个思路。比如让模型整体换一个jar包,或者整体换一个数据结构/算法。
七、提示词(Prompt)撰写公式
公式:角色(Role)+上下文(Context)+任务(Task)+约束/要求(Constraints)
- 角色(Role):“你是一位资深的Go语言架构师”、“你是一位前端性能优化专家”、“你是一位精通正则表达式的大师”。
- 上下文(Context):
- 代码上下文:使用#引用文件,或直接粘贴代码片段。
- 业务上下文:“我们正在做一个电商系统”、“这个函数是用来计算优惠券折扣的”。
- 任务(Task):动词开头,清晰明确。“重构以下代码”、“解释这段正则表达式的含义”、“为..函数编写单元测试”
- 约束/要求(Constraints):
- 技术栈:“使用React Hooks和TypeScript”、“不要使用任何第三方库”。
- 代码风格:“遵循Google aicoding Style Guide”、“添加详细的中文注释”。
- 输出格式:“以JSON格式返回”、“直接给我可以运行的代码块,不要过多解释”。