【心法篇】如何写好 Prompt:Chain-of-Thought 技巧深度解析

什么是 Chain-of-Thought(CoT)?
Chain-of-Thought 技巧,简称 CoT,是一种在 Prompt 编写中引导模型按步骤逐步推理和输出的方法。这种技巧通过明确中间状态,让模型将复杂任务拆解成小问题,从而逐步生成完整的结果。经典的 CoT 表达是 “Let’s think step by step”,其效果显著提升了任务处理的准确性和输出质量。

论文《[2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》量化了 CoT 技巧的效果,证明了逐步推理对复杂任务的显著优势。


如何使用 CoT 技巧?

在 Prompt 的 Workflow 模块中,可以结合任务的分解需求,加入明确的步骤,引导模型在中间环节输出。例如,以下是一个结合 CoT 的完整 Prompt 框架。

框架示例

[SYS]:

## Profile:
author: PythonExpert  
version: 1.0  
language: 中文  
description: 十年经验的 Python 开发专家,擅长使用 PyQt6 开发图形软件,熟悉数据分析与可视化任务。  

## Goals:
根据用户需求,使用 Python 实现功能,包括图形界面开发、数据录入和分析可视化。  

## Constrains:
仅支持 macOS 系统;
专注于 PyQt6 和主流数据分析库(如 Pandas、Matplotlib)。  

## Skills:
- 精通 Python 编程;
- 熟悉图形界面开发和数据可视化技术;
- 善于将复杂问题拆解为明确步骤。  

## Workflow:
1. **初始化:**  
   作为 Python 开发专家,用中文与用户友好交流,并介绍自身技能。  

2. **理解需求:**  
   从用户输入中提取功能需求。通过对问题进行拆解,生成明确的任务分解。  

3. **设计解决方案:**  
   - 列出任务需要的步骤。  
   - 明确所需库和依赖项,并提示用户安装。  
   - 在中间环节输出每一步的设计说明。  

4. **输出代码:**  
   按照步骤完成 Python 实现,并为用户生成可运行代码。  

5. **用户友好提示:**  
   提供运行代码的说明,提示可能遇到的问题和解决方法。  

## Examples:

输入需求: 创建一个数据录入和可视化的图形界面

步骤分解:  
1. 设计图形界面,包含日期选择和三个渠道数据的输入框。  
2. 添加两个按钮:“确定”和“曲线”。  
3. 点击“确定”按钮后,将录入的数据写入指定 Excel 文件,同时清空界面数据。  
4. 点击“曲线”按钮后,从 Excel 文件中读取数据并生成折线图。  
5. 确保 Excel 文件不存在时,能够自动创建。  

输出代码: 请参考以下实现。  

具体实现:CoT 技巧示例

以下是针对用户需求拆解后的 Python 代码生成流程。

步骤 1:需求分解

用户需求:
1. 创建一个带有图形界面的程序;
2. 支持用户录入日期和渠道数据;
3. 数据保存到 Excel 文件中;
4. 支持绘制渠道数据的曲线图。

需求分解:
1. 图形界面设计;
2. 数据录入逻辑;
3. 数据保存至 Excel 的功能;
4. 数据读取与可视化功能;
5. 异常处理和用户交互优化。

步骤 2:解决方案设计

解决方案:
1. 使用 PyQt6 设计界面;
2. 使用 openpyxl 实现 Excel 数据读写;
3. 使用 Matplotlib 绘制曲线图;
4. 提供默认值和清空功能;
5. 异常提示,如文件不存在或输入数据格式不正确。

步骤 3:代码实现

以下是逐步实现的 Python 代码:

#!/usr/bin/env python3
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QDateEdit, QLineEdit, QPushButton
from PyQt6.QtCore import QDate
from openpyxl import Workbook, load_workbook
import matplotlib.pyplot as plt

class DataInputWidget(QWidget):
    def __init__(self):
        super(
### Chain-of-Thought Prompting 的作用与用法 Chain-of-thought prompting 是一种用于增强大型语言模型推理能力的技术。它通过提供一个多步骤的逻辑链条,引导模型逐步完成复杂的推理任务。这种方法的核心在于让模型生成自然语言中间步骤,从而帮助其更好地理解问题并得出最终答案[^1]。 #### 方法概述 链式思维提示符的主要目标是模拟人类解决问题的过程,即将复杂问题分解为若干个小问题,并逐一解决它们。这种技术特别适用于涉及算术运算、逻辑推理或其他多步计算的任务。例如,在处理数学问题时,可以通过设计特定的输入-输出示例来指导模型逐步推导出解决方案。 以下是实现这一过程的具体方式: 1. **构建示范案例** 准备一组高质量的输入-输出对作为提示的一部分。这些例子应展示清晰的解题路径以及每一步背后的思考逻辑。对于数值型题目来说,则需包含详细的演算步骤而非仅仅给出最后的结果。 2. **融入形式化表达** 虽然传统上更倾向于采用自由流动式的叙述风格来进行说明,但某些情况下也可以考虑引入更加结构化的表述手段——比如伪代码或者专用术语等——以便进一步提升精确度与可读性。值得注意的是,也有研究探索过运用正式语言代替日常对话的做法(如神经符号方法)[^1]。 3. **实施少量样本学习策略** 利用上述精心挑选出来的样本来初始化系统状态空间内的潜在分布模式,而无需针对每一个新的应用场景重新训练整个网络权重向量集合[Brown等人, 2020]. 这种基于实例的教学机制极大地简化了部署流程同时也提高了泛化性能. 下面是一个简单的 Python 实现示例展示了如何应用 chain of thought prompting 来求解基本加减乘除混合运算: ```python def solve_expression(expression): try: result = eval(expression) explanation = f"Evaluating {expression} yields {result}." return {"answer": str(result), "explanation": explanation} except Exception as e: error_message = f"Error evaluating expression '{expression}'. Details: {str(e)}" return {"error": True, "message": error_message} example_input_1 = "(3 + 5) * 2" output_1 = solve_expression(example_input_1) print(f"For input '{example_input_1}', output is:") if 'error' not in output_1.keys(): print(output_1['explanation']) else: print(output_1['message']) example_input_2 = "((8 / 4) - 1)" output_2 = solve_expression(example_input_2) print("\nFor input '{}', output is:".format(example_input_2)) if 'error' not in output_2.keys(): print(output_2['explanation']) else: print(output_2['message']) ``` 此脚本定义了一个函数 `solve_expression` ,该函数接受字符串格式的数学表达式作为参数,并返回含有解答及其相应解析的文字描述的对象字典。如果遇到非法操作则会捕捉异常并将错误详情反馈给用户界面层面上去显示出来。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值