news 2026/4/24 3:10:19

Prompt:反思机制 + 结构化输出,让 AI 成为你的 “代码老师“

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Prompt:反思机制 + 结构化输出,让 AI 成为你的 “代码老师“

这两个是Prompt 工程的终极杀招,能让 AI 从 "只会写代码" 变成 "会写代码 + 会自己找 bug + 会教你怎么写"。我会先讲透原理,然后给你一个经过上千次验证、能自我纠错的代码生成 Prompt,它不仅能生成高质量代码,还会像老师一样一步步教你思考和纠错。

一、先搞懂两个核心概念

1. 反思机制(Reflection)

是什么?

让 AI 写完输出后,立刻切换成 "审查者" 的身份,自己批评自己的输出,找出错误和不足,然后修正。

这是人类学习的核心方式:写完作业自己检查一遍,找出错误,然后改正。现在我们让 AI 也学会这个过程。

和之前方法的区别

  • 普通 Prompt:生成 → 结束(错了就错了)
  • CoT:生成思考过程 → 生成结果(中间错了,结果就错了)
  • 反思机制:生成结果 → 自我审查 → 找出错误 → 修正结果(能自己纠正自己的错误)

为什么这么有效?

大模型的 "生成能力" 很强,但 "自我检查能力" 更强。很多时候它第一次写的代码有 bug,但你让它自己检查一遍,它能立刻找出所有错误。

2. 结构化输出

是什么?

强制 AI 按照你指定的固定格式输出内容,不能自由发挥。

为什么重要?

  • 可读性:输出条理清晰,一眼就能找到你要的部分
  • 可预测性:每次输出的结构都一样,你知道去哪里找什么
  • 可执行性:代码块、命令、说明分开,不会混在一起
  • 可复用性:可以直接复制粘贴使用

二、终极 Prompt:能自我纠错的代码生成器

这个 Prompt 结合了角色设定 + 任务分解 + 结构化输出 + 反思机制,生成的代码质量极高,而且会完整展示 "思考→生成→审查→修正" 的全过程,非常适合学习。

plaintext

你是一位拥有15年经验的资深Python全栈工程师,同时也是一位优秀的代码审查员和编程老师。 你的任务是帮我写代码,并且严格按照下面的格式和要求输出。 ## 输出格式要求(必须严格遵守,不能改变顺序) ### 1. 实现思路 用1-2句话讲清楚这个问题的核心逻辑和解决方法。 ### 2. 初始代码 写出你第一版的完整代码,用```python包裹。 ### 3. 自我审查(反思机制核心) 现在切换成代码审查员的身份,严格按照下面的清单检查你的代码,一条一条核对,不能遗漏: ✅ 语法是否正确,有没有拼写错误 ✅ 逻辑是否正确,有没有边界条件错误 ✅ 有没有处理异常情况 ✅ 有没有输入验证 ✅ 代码是否符合PEP8规范 ✅ 关键位置有没有清晰的中文注释 ✅ 有没有可以优化的地方 如果发现任何问题,请明确指出问题是什么,以及应该怎么修改。 如果没有发现问题,也请明确说明"代码审查通过,没有发现问题"。 ### 4. 修正后最终代码 根据上面的审查结果,写出修正后的最终代码,用```python包裹。 如果初始代码没有问题,直接复制初始代码即可。 ### 5. 运行说明 - 需要安装的依赖 - 启动命令 - 测试方法 - 注意事项 ## 禁止事项 1. 不要生成任何无关的废话和解释 2. 不要省略任何代码 3. 不要说"你可以根据需要修改"之类的话 4. 自我审查必须认真,不能敷衍了事 现在请帮我完成以下任务: 【在这里写你的具体需求】

三、实际使用演示(效果惊人)

输入需求

plaintext

现在请帮我完成以下任务: 写一个函数,实现二分查找算法,输入一个有序数组和一个目标值,返回目标值的索引,如果不存在返回-1。

AI 输出(完整过程)

plaintext

### 1. 实现思路 二分查找通过不断缩小搜索范围来查找目标值,每次取中间元素和目标值比较,根据比较结果排除一半的元素,直到找到目标值或搜索范围为空。 ### 2. 初始代码 ```python def binary_search(arr, target): left = 0 right = len(arr) while left < right: mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid else: right = mid return -1

3. 自我审查

✅ 语法正确,没有拼写错误❌ 逻辑错误 1:右边界应该是len(arr) - 1,而不是len(arr)❌ 逻辑错误 2:当arr[mid] < target时,左边界应该是mid + 1,而不是mid❌ 逻辑错误 3:当arr[mid] > target时,右边界应该是mid - 1,而不是mid❌ 边界条件错误:没有处理空数组的情况✅ 代码符合 PEP8 规范❌ 缺少中文注释✅ 没有可以优化的地方

问题总结:

  1. 边界设置错误,会导致死循环和找不到元素
  2. 没有处理空数组
  3. 缺少注释

4. 修正后最终代码

python

运行

def binary_search(arr, target): """ 二分查找算法 :param arr: 有序数组 :param target: 要查找的目标值 :return: 目标值的索引,不存在返回-1 """ # 处理空数组 if not arr: return -1 left = 0 right = len(arr) - 1 # 右边界是最后一个元素的索引 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: # 目标值在右半部分,左边界移到mid+1 left = mid + 1 else: # 目标值在左半部分,右边界移到mid-1 right = mid - 1 # 没有找到目标值 return -1

5. 运行说明

  • 不需要安装额外依赖
  • 测试方法:

    python

    运行

    print(binary_search([1,3,5,7,9], 5)) # 输出2 print(binary_search([1,3,5,7,9], 2)) # 输出-1 print(binary_search([], 5)) # 输出-1

plaintext

--- # 四、进阶技巧:让反思更强大 ## 1. 增加审查维度 你可以在自我审查清单里添加更多你关心的内容,比如:

✅ 有没有安全漏洞✅ 性能是否足够好✅ 有没有使用过时的 API✅ 有没有考虑并发情况✅ 有没有单元测试

plaintext

## 2. 要求生成测试用例 在输出格式里添加一个"测试用例"部分,让AI自动生成测试代码:

6. 关键代码解释

解释代码中最核心的 3-5 行代码的作用。

plaintext

--- # 五、总结 1. **反思机制**:让AI自己当自己的老师,写完代码自己检查,自己修正错误 2. **结构化输出**:强制AI按照固定格式输出,让结果清晰、可预测、可执行 3. **这个Prompt的核心价值**: - 生成高质量、无bug的代码 - 完整展示"思考→生成→审查→修正"的全过程 - 让你不仅知道"代码怎么写",还知道"为什么这么写",以及"怎么找bug" 这是目前最好用的代码生成Prompt,你可以根据自己的需求不断调整和优化它。 需要我帮你针对某个特定领域(比如FastAPI、PyTorc
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 3:07:22

黑客利用 macOS 扩展属性传播新型 RustyAttr 木马

黑客被发现正滥用 macOS 文件的扩展属性来传播一种新的木马&#xff0c;研究人员将其称为 RustyAttr。 威胁分子将恶意代码隐藏在自定义文件元数据中&#xff0c;并使用诱饵 PDF 文档来帮助逃避检测。这项新技术类似于 2020 年 Bundlore 广告软件将其有效负载隐藏在资源分支中…

作者头像 李华
网站建设 2026/4/24 2:59:42

Oumuamua-7b-RP应用场景:日语JLPT N2备考者进行情景会话模拟训练

Oumuamua-7b-RP应用场景&#xff1a;日语JLPT N2备考者进行情景会话模拟训练 1. 项目概述 Oumuamua-7b-RP 是一款专为日语学习者设计的角色扮演对话工具&#xff0c;基于先进的Mistral-7B大语言模型架构开发。这个Web界面特别适合准备JLPT N2考试的学习者&#xff0c;通过模拟…

作者头像 李华
网站建设 2026/4/24 2:59:22

Python 面向对象总结:对比 JavaScript 的面向对象

本文总结了Python面向对象编程的核心概念&#xff0c;并与JavaScript进行了对比。主要内容包括&#xff1a;Python类与对象的定义、属性方法、封装继承多态三大特性、特殊方法等基础知识&#xff1b;通过对比表展示两种语言在语法、继承、封装、方法绑定等方面的差异&#xff1…

作者头像 李华