Prompt并非魔法咒语而是对话艺术:我的提示词工程入门第一课

作者:袖梨 2026-06-02

掌握Prompt设计技巧是提升大模型交互效率的关键。本文将分享五种核心方法,从基础封装到高级应用,助你快速提升AI交互质量。

提示词工程入门:从 API 封装到 Prompt 设计的五种核心技巧


一、背景:LLM 接口并不复杂,复杂的是怎么问

在ModelScope Notebook环境中,调用大模型仅需少量代码。DeepSeek接口与OpenAI完全兼容,引入openai模块即可快速使用:

Prompt 不是咒语,是沟通——我的提示词工程第一课

from openai import OpenAIclient = OpenAI(
    api_key="your-api-key",
    base_url="https://api.deepseek.com/v1"
)

接口调用本身并不复杂,真正的挑战在于Prompt设计——相同的任务,不同的Prompt写法可能导致输出质量天差地别。

本次研究围绕这个核心问题展开,通过五组实验揭示了Prompt设计的核心规律。


二、封装基础调用函数

2.1 函数设计

def get_completion(prompt, model='deepseek-chat'):
    response = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.5,
        max_tokens=1024,
    )
    return response.choices[0].message.content

这个基础函数包含多个值得注意的设计细节。

2.2 参数解析

messages的结构

LLM的chat接口本质是多轮对话,messages列表中的每条消息都包含rolecontent两个字段:

role含义
user用户输入内容
assistant模型回复内容
system系统级行为指令

单轮调用只需传递user角色。多轮对话需要手动维护历史消息记录。

temperature控制随机性

0          0.5          1          2
|----------|------------|----------|
严谨确定   均衡适中     略有创意   随机发散
  1. 代码编写、数据分析等任务建议使用低temperature(0~0.3)
  2. 创意写作、头脑风暴等场景可适当提高(0.7~1.2)

max_tokens控制输出长度

该参数限制的是输入输出总token数,设置过小会导致回复被截断。

2.3 第一次调用

print(get_completion("写一首夏天游玩的七言诗"))

模型返回了一首工整的七言诗,这只是后续实验的热身。


三、Prompt 技巧一:用分隔符隔离数据与指令

3.1 问题背景

当Prompt同时包含指令和处理文本时,模型可能混淆两者的界限。

3.2 实验

text = f"""
你应当通过尽可能清晰、具体的指令,来明确你希望模型完成的任务。
这能引导模型产出符合预期的结果,同时降低回复内容偏离主题或出现错误的概率。
不要把编写清晰的提示词和精简提示词混为一谈。
很多时候,篇幅更长的提示词能为模型提供更完整的说明与背景信息,进而让输出内容更加详实、贴合需求。
"""prompt = f"""
将三个反引号之间的文本总结为一句话
```{text}```
"""print(get_completion(prompt))

使用三个反引号包裹待处理文本,实现数据与指令的物理隔离

3.3 原理分析

分隔符不仅美化格式,更重要的是提供明确的结构信号:

[指令区域] 将三个反引号之间的文本总结为一句话
[数据区域] ```...待处理文本...```

模型能清晰区分任务说明和处理对象,避免误读。

常用分隔方案:

分隔符适用场景
```代码块或多行文本
"""长段落文字
结构化数据
---简单分隔

四、Prompt 技巧二:约束输出格式

4.1 实验

要求模型以指定JSON格式返回四大名著信息:

prompt = f"""
请列出四大名著,并标注对应的作者与书籍类型。
使用JSON格式呈现,需包含以下字段:
book_id(书籍编号)、title(书名)、author(作者)、desc(简介)、genre(书籍类型)
"""response = get_completion(prompt)
print(response)

返回结果包含完整字段,格式规范。

4.2 格式约束的价值

信息内容和呈现格式需要分别明确。

未约束格式时,模型可能返回任意形式的结果。约束为JSON后:

import json
data = json.loads(response)
# 可直接用于后续处理

这是重要原则:输出格式服务于程序处理,而不仅是人类阅读。

4.3 常用格式方案

场景建议格式
程序处理数据指定字段的JSON
列表输出Markdown列表或JSON数组
文本处理纯文本
多任务输出XML标签分区

五、Prompt 技巧三:条件判断——让模型识别输入类型

5.1 实验设计

使用相同Prompt处理两类文本:

  1. 操作指南:泡茶步骤
  2. 描述性文字:公园景色

Prompt逻辑:有步骤则格式化输出,否则返回固定提示。

# 文本一:泡茶步骤
text = f"""
泡一杯茶其实很简单!首先把水烧开。烧水的同时,拿出茶杯,放入茶包。
水烧开后,将热水冲入杯中浸泡茶包。静置片刻让茶香析出。
几分钟后,根据个人口味,还可以加入糖或牛奶。这样一杯美味的茶饮就泡好了。
"""prompt = f"""
你将收到由三引号包裹的文本。若文本中包含一系列操作指令,
请按照下述格式重新整理这些指令。
步骤 一 ...
步骤 二 ...
...
步骤 N ...
如果文本中没有一系列操作指引,直接输出**"没有提供步骤。"**
"""{text}"""
"""print(get_completion(prompt))
# 文本二:公园景色描写
text_2 = f"""
今日阳光明媚,鸟儿欢唱。这样的好天气很适合去公园散步。
花儿竞相绽放,树木在微风中轻轻摇曳。
人们纷纷出门,享受这宜人的天气……
"""

结果:文本一被正确格式化为步骤列表;文本二返回预设提示。

5.2 原理分析

Prompt可以包含完整判断逻辑:

IF 文本包含操作步骤
    THEN 格式化输出步骤列表
ELSE
    THEN 输出固定文本

这表明Prompt本身可作为业务规则描述语言,处理分类判断任务。


六、Prompt 技巧四:Few-Shot 少样本提示

6.1 实验

通过示例引导回答风格:

prompt = f"""
你的任务是保持统一的行文风格作答。提问:请讲讲何为耐心。
回答:能凿出幽深峡谷的江河,源自涓涓细流;
      恢弘壮阔的交响乐,起于单个音符;
      精美繁复的织锦,始于一缕丝绒。请问:请讲讲何为韧性。
"""print(get_completion(prompt))

回答延续了示例的三比喻并列风格。

6.2 样本优势

Few-Shot方式比文字描述更有效:

文字描述:难以准确传达抽象风格要求

Few-Shot:模型自动提取示例特征并迁移

6.3 适用场景

场景适用性
特定写作风格 非常适合
固定格式输出 适合
分类任务 效果良好
事实问答️ 意义有限

七、Prompt 技巧五:多步任务链——引导模型分步推理

7.1 实验

将多个子任务打包进单个Prompt:

text = f"""
在一座风光宜人的小村庄里,姐弟俩杰克和吉尔动身前往山顶的水井取水。
两人一路欢歌向上攀登,不料意外突生——杰克被石头绊倒,滚下山坡,
吉尔也跟着摔了下去。二人虽受了些轻伤,还是回到了家中,得到家人温柔的安抚。
"""prompt = f"""
执行以下操作:
1. 将三个反引号内的文本概括为一句话。
2. 把这句摘要翻译成法语。
3. 列出法语摘要中出现的所有人名。
4. 输出JSON对象,包含字段:french_summary、num_names。
答案分行展示。文本:
```{text}```
"""print(get_completion(prompt))

模型依次完成各步骤,最终输出格式规范。

7.2 分步优势

分步执行可验证中间结果,减少错误积累:

直接问答模式:输入 ──→ 输出(中间推理隐含,容易出错)分步推理模式:输入 → 步骤1输出 → 步骤2输出 → ... → 最终输出
                         ↑每步可验证

这是复杂AI应用的核心原则之一。


八、幻觉:LLM 的边界问题

8.1 实验

prompt = f"""
介绍一下博依品牌的喜多多饮料
"""
print(get_completion(prompt))

对不存在的品牌,模型生成了看似真实的虚构内容。

8.2 本质原因

LLM基于概率生成文本,没有"不知道"的概念:

人类遇到不知道的问题:
"我不了解这个品牌,没有相关信息。"LLM 遇到不知道的问题:
生成一段在统计上"像真实品牌介绍"的文本。

这是工作机制决定的固有特性。

8.3 应对方案

场景建议
创意任务可信任输出
事实查询必须验证
代码生成需要测试
文献引用核查来源

实际应用中常采用RAG(检索增强生成)方案。


九、总结

通过五组实验总结Prompt设计核心原则:

Prompt 工程的五条核心原则
├── 用分隔符隔离数据与指令  → 防止模型混淆输入结构
├── 约束输出格式            → 让结果可被程序直接消费
├── 写入条件判断逻辑        → Prompt 本身是业务规则
├── Few-Shot 给示例         → 样本比描述风格更精准
└── 分步骤引导推理          → 减少跳步错误,提升稳定性

同时需注意:模型不会主动声明知识盲区,使用者需自行判断可信度。

本文系统介绍了Prompt设计的核心方法,从基础封装到高级技巧,帮助开发者提升AI交互效率与质量。掌握这些原则,可显著改善大模型输出效果。


相关文章

精彩推荐