1. 提示词与提示词工程 #

1.1 什么是提示词(Prompt) #

1.2 提示词为什么重要 #

1.3 什么是提示词工程(Prompt Engineering) #

3. 前置知识 #

3.1 system、user、assistant 三种角色 #

3.2 温度(temperature)与输出长度 #

3.3 提示词在代码里长什么样 #

# 导入 json,用于美化打印字典
import json

# 定义 system 消息:设定模型人设为旅行规划专家
system_msg = {
    "role": "system",
    "content": "你是一名专业的旅行规划专家,擅长为用户定制旅行路线和建议。"
}
# 定义 user 消息:用户的具体任务
user_msg = {
    "role": "user",
    "content": "请帮我规划一次去北京的五日自由行路线。"
}

# 把消息放入列表(真实调用 API 时传给 messages 参数)
messages = [system_msg, user_msg]

# 逐条打印消息角色和内容
for msg in messages:
    print(f"[{msg['role']}] {msg['content']}")
    print("-" * 40)

4. 写好提示词的两条核心原则 #

4.1 原则一:清晰明确的指令 #

4.1.1 好坏提示词对比 #

提示词 问题 / 优点
x 生成一篇科技文章 太宽泛,主题、风格、长度都不明确
√ 以「量子计算」为主题,写一段 200 字科技科普,面向高中生 主题、长度、受众都清楚
√ 把下面评论分类为「好评 / 中评 / 差评」,只输出类别词:「物流很快但包装破损」 任务和输出格式都明确

4.2 原则二:给足上下文和细节 #

4.2.1 提供细节示例 #

4.2.2 分步骤引导 #

5. 通用提示词结构:四要素模板 #

5.1 四要素分别是什么 #

嚼人腰细

5.2 拼装四要素提示词 #

# 定义四要素(可按业务替换成变量)
role = "你是一名资深旅游顾问"
task = "为一位带小孩的家庭设计西安两日游行程"
requirements = "输出 Markdown 表格,每天分上午、下午;行程宽松,适合亲子"
details = "必去景点:钟楼、大雁塔、兵马俑;孩子 6 岁,不爱走路太久"

# 按模板拼接完整提示词
prompt = f"""{role}。

【任务】{task}
【要求】{requirements}
【细节】{details}
"""

# 打印最终提示词
print(prompt)

6. 推理模型怎么用 #

6.1 和通用模型的区别 #

6.2 推理模型的写法建议 #

7. 常用技巧 #

7.1 零样本提示(Zero-Shot) #

# 零样本提示示例 —— 让模型摘要一段文本,要求输出 50 字以内
zero_shot_prompt = """你是一位专业摘要助手。
请将下列内容压缩成 50 字以内摘要,只输出摘要内容:

“人工智能(AI)快速发展,正推动社会各行各业变革。从智能助手到自动驾驶,AI 技术广泛应用于医疗、交通、教育等多个领域。”
"""
print(zero_shot_prompt)

7.2 少样本提示(Few-Shot) #

# 少样本提示示例 —— 情感分类,先给模型几个例子
few_shot_prompt = """你是一位情感分析助手。
请判断下列句子的情感(积极/消极/中性),只输出情感类别。

示例:
输入:这个产品非常好用!
输出:积极

输入:客服回应很慢。
输出:消极

输入:天气还行。
输出:中性

请判断:
输入:今天工作顺利完成了。
输出:
"""
print(few_shot_prompt)

7.3 链式思考(Chain-of-Thought) #

# 链式思考(CoT)提示示例 —— 让模型逐步解题
cot_prompt = """你是一个善于逻辑推理的助手。
请认真分析并逐步解决下面的问题,最后明确写出答案:

问题:小明有 12 个苹果,分给 3 个同学,每人分得多少个?请逐步思考,最后给出答案。
"""
print(cot_prompt)

8. 安全入门:提示词注入 #

8.1 什么是提示词注入 #

8.2 常见攻击与简单防范 #

类型 说明 防范思路
提示词注入 用恶意指令覆盖系统设定 在 system 中强调「只回答业务范围内问题」
提示词泄露 诱导模型复述系统提示或敏感信息 不要把密钥、内部文档写进可被用户看到的 prompt
越狱 绕过安全限制获取违规内容 使用平台自带安全策略;对用户输入做关键词过滤