> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 提示工程实用技巧
- URL: https://www.hubwiz.com/blog/practical-prompt-engineering-techniques/
- Published: 2025-08-31T14:45:13.000Z
- Updated: 2025-08-31T14:45:13.000Z
- Description: 在这篇文章中，我们将探讨适用于LLM的实用提示工程技术。
- Author: admin
- Tags: PROMPT ENGINEERING, #Import 2026-10-14 14:41

大型语言模型（LLM）已经从研究实验室进入了开发人员、分析师甚至非技术人员的日常工作中。无论是在编写SQL查询、总结文档、生成代码还是头脑风暴产品想法，LLM的有效性在很大程度上取决于你的提示的质量。

而这里有一个真相：**提示不是魔法，而是工程。**

在这篇文章中，我们将探讨适用于LLM的实用提示工程技术。我会分享框架、经过测试的策略和你可以立即应用的例子来提高结果。在文章结束时，你不仅会理解*为什么提示能以这种方式工作*，还会了解*如何系统地设计它们以实现可靠性、精确性和可扩展性*。

这是一篇较长的文章（约3000字），因为我们会深入探讨。拿一杯咖啡，打开Jupyter笔记本（你会想尝试一些东西），让我们开始吧。

## 1、为什么提示工程很重要

如果你曾经要求一个LLM *“为按地区每月销售生成SQL查询”*，然后得到一个不完整或错误的结果，你已经知道为什么提示很重要了。

与确定性程序不同，LLM是**概率生成器**。它们基于你的输入预测下一个最可能的标记。这意味着你的提示不仅仅是指令——它也是输入分布的一部分，影响输出。

可以这样想象：

- 一个*模糊的提示*就像在一个陌生的城市向一个陌生人问路。你会得到一个困惑的答案，甚至可能是错误的街道。
- 一个*清晰且结构化的提示*就像给他们一张GPS地图。你大大提高了到达目的地的可能性。

好的提示 = **减少猜测，增加一致性，减少后期编辑**。

## 2、一个好的提示的基本要素

在深入高级技术之前，让我们先建立基础：

1. **角色定义** → LLM应该扮演什么角色？  
示例：*“你是一位专门从事时间序列预测的数据科学家。”*
2. **任务明确性** → 它应该做什么？  
示例：*“生成一个使用Prophet进行周销售预测的Python函数。”*
3. **约束条件** → 它应该遵循哪些规则？  
示例：*“将预测限制在12周内，并仅返回Python代码。”*
4. **上下文** → 它需要哪些背景信息？  
示例：*“这是CSV的标题：\['date', 'sales', 'region'\]。使用'date'作为时间列。”*
5. **输出格式** → 答案应该如何结构化？  
示例：*“以Markdown代码块的形式返回输出，不要包含解释文本。”*

这五个要素是有效提示的DNA。

## 3、实用的提示工程技术

让我们从理论转向实践。以下是一些在OpenAI、Anthropic和开源LLM中一致有效的技术。

### 3.1 角色提示

人类根据他们的角色会有不同的反应。LLM也是如此。通过分配一个角色，你可以引导模型进入特定的*风格、语气和知识库*。

**示例:**

```
你是一位资深的数据科学家，正在指导一位初级分析师。    
用体育类比解释梯度提升是如何工作的。    
保持解释在200字以内。

```

结果？LLM采用了一种*导师角色*，而不是堆砌教科书术语。

### 3.2 少样本提示

与其告诉LLM *“做X”*，不如展示LLMX的样子。

**示例:** 情感分类。

```
Q: "该模型表现非常出色。"    
A: 正面    

Q: "这个实验完全是一场灾难。"    
A: 负面    

Q: "数据集有一些不一致之处，但可以清理。"    
A: 中性    

```

这是因为LLM是*模式学习者*。少量的例子锚定了响应风格。

**小贴士:** 使用**多样但有代表性的例子**。太多可能导致“过拟合”到你的例子，太少则可能无法设定模式。

### 3.3 思维链（CoT）提示

对于推理任务，明确告诉LLM要**逐步思考**。

**示例:**

```
你正在解决一个数学问题。    
在给出最终答案之前，请逐步解释你的推理过程。    

问题: 一列火车以60公里/小时的速度行驶2小时，然后以90公里/小时的速度行驶1小时。    
平均速度是多少？

```

这会提高准确性，因为模型将问题分解成更小的推理步骤。

**事实:** 谷歌研究人员表明，CoT在多步骤推理任务中可将性能提高高达**40%**。

### 3.4 ReAct提示（Reason + Act）

有时你希望LLM既能推理又能行动。这种混合方法让模型*解释它在想什么，然后执行一个动作*。

**示例（伪代理）:**

```
问题: "今天伦敦的天气怎么样？"    

推理: 我需要调用一个天气API，包括今天的日期和位置。    
动作: fetch_weather("London", "2025-08-26")

```

这是基于LLM的代理（如LangChain工具）的基础。即使你不是在构建代理，这样结构化的提示也能使输出可预测。

### 3.5 自洽性

LLM有时会幻觉。一种减少这种方法的方法：多次以轻微变化的方式提出同一个问题，然后**汇总结果**。

**示例:**

而不是:

*“总结这篇研究论文。”*

尝试:

*“生成这篇论文的三个不同摘要。然后将它们综合成一个最终摘要。”*

令人惊讶的是，这减少了事实错误，因为模型“交叉检查”自己。

### 3.6 指令层次结构

将指令分层**重要性**。模型通常首先遵守最高层的指令。

**示例:**

```
主要任务: 总结这份财务报告。    

约束条件:    
1. 将摘要限制在200字以内。    
2. 使用项目符号。    
3. 分别突出显示风险和机会。    

上下文: [插入报告文本]

```

可以把它看作是一种**提示架构**。这种结构最小化了模型忽略约束的风险。

### 3.7 分隔符和显式格式

模糊性会摧毁提示。使用清晰的分隔符，如三重引号、XML标签或JSON。

**示例:**

```
在三个项目符号中总结以下文本。

```

对于结构化输出:

```
以以下键返回答案:    
{ "summary": string, "keywords": list, "tone": string }

```

这使得后处理自动化且可靠。

### 3.8 提示链

将复杂任务分解成较小的步骤并链接提示。

**示例:** 研究摘要

1. 提示1 → 提取关键发现。
2. 提示2 → 概括方法。
3. 提示3 → 生成最终的高管摘要。

这种模块化方法更容易调试且更具可扩展性。

### 3.9 负面提示

告诉模型*不要*做什么。

**示例:**

```
用简单的术语解释随机森林。    
不要使用数学公式。    
不要超过三段。

```

这减少了无关的延伸。

### 3.10 自动化优化提示

手动提示对于一次性查询来说是可以的。但对于工作流程，你需要自动化。

- 使用**Python脚本**生成提示的不同变体。
- 使用**日志记录**跟踪模型的响应。
- 对提示进行**A/B测试**以衡量哪种提示产生更高的准确性。

**示例（Python片段）:**

```
prompts = [  
    "用三个要点总结这段文字:",  
    "提供一个简洁的三点总结:",  
    "给我这段文档的三个要点:"  
]  

for p in prompts:  
    response = llm_api(prompt=p + text)  
    log(p, response)

```

这样，你就像调整超参数一样来优化提示。

## 4、常见的提示工程错误

我们也要讨论什么是**不应该做的**：

1. **提示过度加载** → 如果一次问10个问题，模型可能会错过一半。
2. **缺乏规范** → “总结这个”而不指定长度、风格或重点 = 模糊输出。
3. **忽视迭代** → 第一个提示很少是最好的。像调试代码一样迭代。
4. **盲目信任输出** → 总是验证事实的正确性，特别是在关键领域。

## 5、数据科学工作流程的实际应用

由于这是**数据科学集体**，让我们将技术锚定在实际用例中：

- **SQL生成:** 使用表模式示例的少样本提示。
- **数据清洗:** 作为“数据整理者”的角色提示，逐步推理。
- **探索性数据分析（EDA）:** 思维链生成假设，然后自动生成可视化代码。
- **文档:** 使用分隔符提示自动生成函数文档字符串。
- **报告写作:** 使用提示链生成结构化的高管摘要。

这些并不是未来用例——它们是日常生产力的提升。

## 6、提示工程的未来

随着模型的改进，提示工程会变得过时吗？

不完全是。将其视为**人工智能的用户界面设计**。模型会变得更聪明，但人类始终需要：

- 明确地定义**意图**。
- 将混乱的目标转化为**结构化的输入**。
- 优化**效率、一致性和自动化**。

可能发生改变的是工具：内置提示测试的IDE、监控仪表板和共享提示库。但核心技能——有效地与LLM沟通——将保持不变。

## 7、结束语

提示工程是艺术与科学的结合。

- 艺术在于清晰、创造性且富有同理心地提出问题。
- 科学在于像其他系统一样构建、测试和优化提示。

回顾一下，最实用的技术如下：

- 角色提示
- 少样本学习
- 思维链
- ReAct推理
- 自洽性
- 指令层次结构
- 分隔符和格式
- 提示链
- 负面提示
- 自动化优化

掌握这些将使你不仅成为一个更好的提示撰写者，而且成为一个更有效的数据科学家、开发者或AI从业者。

所以下次你打开你的LLM界面时，记住：这不是关于*与聊天机器人交谈*。而是关于**设计一场对话**。

如果你把它当作工程来看待，你会得到感觉像魔法的结果。

---

原文链接：[Practical Prompt Engineering Techniques for LLMs](https://medium.com/data-science-collective/practical-prompt-engineering-techniques-for-llms-881c912eda16?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处