掌握Prompt工程技巧能显著提升大模型输出质量,本文将从五大模块系统讲解核心知识点与应用实例。
精准的大模型输出取决于指令的具体程度。值得注意的是,"清晰"并不等同于"简短"——某些情况下,较长的提示词反而能提供更全面的背景信息,从而获得更丰富的输出内容。

文本总结示例
text = """
你应当通过尽可能清晰、具体的指令,来明确你希望模型完成的任务。
这能引导模型产出符合预期的结果,同时降低回复内容偏离主题或出现错误的概率。
不要把编写清晰的提示词和精简提示词混为一谈。
很多时候,篇幅更长的提示词能为模型提供更完整的说明与背景信息,进而让输出内容更加详实、贴合需求。
"""prompt = f"""
将三个反引号之间的文本总结为一句话
```{text}```
"""
# 输出:清晰的指令应具体且详尽,而非简单精简,长提示词能提供更完整的背景信息,
# 从而提升模型输出的准确性和相关性。
格式指定示例
prompt = """
请列出四大名著,并标注对应的作者与书籍类型。
使用JSON格式呈现,需包含以下字段:book_id、title、author、desc、genre
"""
分步指令示例
text = """
泡一杯茶其实很简单!首先把水烧开,烧水的同时,拿出茶杯放入茶包,
水开之后将开水冲入杯中浸泡茶包。静止片刻后让茶香析出。
几分钟后,根据个人口味,还可以加入糖或牛奶。这样一杯美味的茶饮就泡好了。
"""prompt = """
若文本中包含一系列操作指令,请按照下述格式重新整理:
步骤1、...
步骤2、...
如果文本中没有一系列操作指引,直接输出"没有提供步骤。"
"
# 输出:
# 步骤1、把水烧开。
# 步骤2、烧水的同时,拿出茶杯放入茶包。
# 步骤3、水开之后将开水冲入杯中浸泡茶包。
# ...
处理复杂任务时,引导模型分步执行通常比要求一次性输出更能获得理想结果。
text = """
在一座风光宜人的小村庄里,姐弟俩杰克和吉尔动身前往山顶的水井取水...
"""prompt = """
执行以下操作:
1. 将文本概括为一句话
2. 把摘要翻译成法语
3. 列出法语摘要中出现的所有人名
4. 输出JSON对象,包含字段:french_summary、num_names
"
# 模型会按步骤逐一完成,最终返回结构化的 JSON 结果
为语言模型提供少量示范样本,能有效引导其遵循特定的风格和格式要求。
prompt = """
你的任务是保持统一的行文风格作答。提问:请讲讲何为耐心?
回答:凿出幽深峡谷的江河,源自涓涓细流;
恢弘壮阔的交响乐,起于一个个音符;
精美繁复的织锦,始于一缕缕丝绒。请讲讲何为伟大?
"
from openai import OpenAIclient = OpenAI(
api_key="your-api-key",
base_url="https://api.deepseek.com/v1"
)def get_completion(prompt, model='deepseek-chat'):
response = client.chat.completions.create(
model=model,
messages=[
{"role": "user", "content": prompt}
],
temperature=0.5, # 0=确定, 2=随机
max_tokens=1024, # 控制输出长度
)
return response.choices[0].message.content
| 参数 | 说明 |
|---|---|
model | 模型名称,如 deepseek-chat、gpt-4 |
messages | 对话列表,每条消息包含 role(user/assistant/system)和 content |
temperature | 0~2,0 代表确定性最高,2 代表随机性最强 |
max_tokens | 限制输入+输出的 token 总量 |
text = f"""
这是一个多行字符串模板,
可以直接嵌套 {变量},
非常适合用来构造 Prompt。
"
字典(Dict)的核心价值在于其O(1)时间复杂度的查找效率——这与查字典时通过索引快速定位词条的原理如出一辙,避免了线性查找(O(n))的耗时过程。
以查找学生成绩为例,不使用字典的实现方式:
# 使用平行列表存储数据
names = ["张三", "李四", "王五"]
scores = [90, 85, 92]# 查找李四的成绩
index = names.index("李四") # 线性查找效率较低
score = scores[index]
key → hash(key) → 唯一整数 → 取模 → 数组索引 → 值的内存地址 → 拿到 value
key = [1,2,3]会触发unhashable type: 'list'错误| Dict | List | |
|---|---|---|
| 查找/插入速度 | 极快,不随数据量增长而变慢 | 随元素增加而变慢 |
| 内存占用 | 大 | 小 |
| 适用场景 | 高速查找 | 节省内存 |
集合(Set)与字典采用相同实现原理,区别在于集合仅存储键而不存储值。由于键具有唯一性,集合天然具备去重功能。
a = 'abc'
a.replace('a', 'A')
print(a) # 输出仍为 'abc'# str是变量名,'abc'才是字符串对象
# replace方法作用于字符串对象,返回新字符串'Abc',原对象保持不变
// 输出结果为 1
showName();
function showName() {
console.log(1);
}
var showName = function() {
console.log(2);
}
JavaScript引擎实际执行顺序如下:
function showName() { console.log(1); } // 函数声明提升至顶部
// var showName; (因存在同名函数声明而被忽略)
showName();
showName = function() { console.log(2); };
var showName = function() { console.log('极客帮'); }
showName(); // 极客帮
var showName = function() { console.log('极客时间'); }
showName(); // 极客时间
函数声明方式同样遵循最后定义优先原则:
function showName() { console.log('极客帮'); }
showName(); // 极客时间
function showName() { console.log('极客时间'); }
showName(); // 极客时间
大语言模型有时会产生看似合理实则错误的信息。例如询问"Niko的Major冠军经历",尽管该选手从未获得此项荣誉,模型仍可能生成详细的"夺冠过程"。这提醒我们在使用AI时需保持审慎态度。
本文系统讲解了Prompt工程、API调用、数据结构等核心知识点,掌握这些内容将帮助您更高效地运用大模型技术解决实际问题。