导航菜单

  • 1.vector
  • 2.milvus
  • 3.pymilvus
  • 4.rag
  • 5.rag_measure
  • ragflow
  • heapq
  • HNSW
  • cosine_similarity
  • math
  • typing
  • etcd
  • minio
  • collections
  • jieba
  • random
  • beautifulsoup4
  • chromadb
  • sentence_transformers
  • numpy
  • lxml
  • openpyxl
  • PyMuPDF
  • python-docx
  • requests
  • python-pptx
  • text_splitter
  • all-MiniLM-L6-v2
  • openai
  • llm
  • BPETokenizer
  • Flask
  • RAGAS
  • BagofWords
  • langchain
  • Pydantic
  • abc
  • faiss
  • MMR
  • scikit-learn
  • Runnable
  • PromptEngineering
  • dataclasses
  • LaTeX
  • rank_bm25
  • TF-IDF
  • asyncio
  • sqlalchemy
  • fastapi
  • Starlette
  • uvicorn
  • argparse
  • Generic
  • ssl
  • urllib
  • python-dotenv
  • RRF
  • CrossEncoder
  • Lost-in-the-middle
  • Jinja2
  • logger
  • io
  • venv
  • concurrent
  • parameter
  • SSE
  • 1. 什么是提示词工程?
  • 2. 前置知识
    • 2.1 角色说明(常见三类)
    • 2.2 变量注入(f-string 示例)
  • 3. 核心原则(记住这四点)
    • 3.1 清晰明确
    • 3.2 结构化(分点、分步骤)
    • 3.3 上下文与示例(Few-shot)
    • 3.4 约束与格式(字段/字数/风格)
  • 4. 常用提示模板(可运行示例)
    • 4.1 角色 + 任务 + 格式 + 示例
    • 4.2 思维链(Chain-of-Thought)
    • 4.3 Few-shot 翻译(模仿示例)
    • 4.4 格式控制(字段约束)
  • 5. 实战示例
    • 5.1 内容总结
    • 5.2 数据问答
    • 5.3 翻译与风格控制
  • 6. 迭代优化流程(四步走)
  • 7. 常见错误与修正
    • 7.1 过于模糊
    • 7.2 多重提问与矛盾要求
  • 8. 快速检查清单
  • 9. 总结

1. 什么是提示词工程? #

提示词工程就是写清楚、写准确地告诉大模型你想要什么,让模型产出更符合预期的结果。它关注两件事:

  1. 你说什么(内容和结构)
  2. 你怎么说(格式和约束)

2. 前置知识 #

2.1 角色说明(常见三类) #

  • system:设定总体角色和风格(例:你是严谨的律师)
  • user:用户问题或任务描述
  • assistant:模型的回答

2.2 变量注入(f-string 示例) #

# 定义提示模板
template = "你是{role},请用{style}回答:{question}"
# 使用 format 注入变量
prompt = template.format(role="科普作者", style="通俗易懂", question="什么是黑洞?")
# 打印生成的提示词
print(prompt)

3. 核心原则(记住这四点) #

3.1 清晰明确 #

  • 说清任务、对象、格式、限制,避免含糊词(如“简单介绍一下”)。
    # 不清晰的提示
    vague = "介绍一下AI"
    # 清晰的提示:角色、长度、对象
    clear = "你是科普作者,用80字介绍什么是AI,面向中学生"
    # 打印对比
    print("模糊示例:", vague)
    print("清晰示例:", clear)

3.2 结构化(分点、分步骤) #

# 结构化提示:拆成步骤
prompt = """请分步骤回答:
1) 列出AI在医疗的3个应用
2) 每个应用给出一句好处
3) 最后用1句话总结风险"""
# 打印提示词
print(prompt)

3.3 上下文与示例(Few-shot) #

# Few-shot 示例:给参考答案让模型模仿
prompt = """将中文翻译成英文,保持自然语气:
示例1:
输入:今天天气很好
输出:The weather is nice today.

示例2:
输入:人工智能正在改变世界
输出:AI is transforming the world.

现在翻译:
输入:提示词工程很重要
输出:"""
# 打印提示词
print(prompt)

3.4 约束与格式(字段/字数/风格) #

# 约束输出为 JSON,限制字段
prompt = """请以 JSON 输出:
{
  "title": "字符串",
  "summary": "50字内摘要",
  "keywords": ["关键词1","关键词2","关键词3"]
}
主题:量子计算科普"""
# 打印提示词
print(prompt)

4. 常用提示模板(可运行示例) #

4.1 角色 + 任务 + 格式 + 示例 #

# 角色定义
role = "你是一位数据分析师"
# 任务描述
task = "分析下方销售数据,给出三个趋势、三个发现、两条建议"
# 格式要求
fmt = """请输出 JSON:{
  "trends": ["趋势1","趋势2","趋势3"],
  "findings": ["发现1","发现2","发现3"],
  "advice": ["建议1","建议2"]
}"""
# 示例(可选)
example = """示例:
输入:1月100,2月120,3月140
示例输出:{
  "trends": ["销量逐月上升"],
  "findings": ["2-3月增速略放缓"],
  "advice": ["关注增速变化","评估活动效果"]
}"""
# 组合提示词
data = "1月50,2月80,3月60,4月90"
prompt = f"{role}\n{task}\n{fmt}\n{example}\n请分析:{data}"
# 打印提示词
print(prompt)

4.2 思维链(Chain-of-Thought) #

# 思维链:要求分步骤推理
prompt = """请分步骤思考并回答:
1) 列出问题的关键信息
2) 分析可能原因或路径
3) 给出结论
4) 用一句话总结
问题:如何提高电商转化率?"""
# 打印提示词
print(prompt)

4.3 Few-shot 翻译(模仿示例) #

# Few-shot 翻译模板
prompt = """翻译成英文,保持礼貌:
示例:输入:谢谢你的帮助。输出:Thank you for your help.
现在翻译:输入:很高兴认识你。输出:"""
# 打印提示词
print(prompt)

4.4 格式控制(字段约束) #

# 限定字段与类型
prompt = """请用 JSON 返回:
{
  "title": "不超过15字",
  "summary": "不超过60字",
  "key_points": ["要点1","要点2","要点3"]
}
主题:AI 在教育的应用"""
# 打印提示词
print(prompt)

5. 实战示例 #

5.1 内容总结 #

# 准备要总结的文本
text = "人工智能正用于医疗、金融、交通,提升效率并创造新模式。"
# 构造提示词
prompt = f"请用中文总结下面内容,50字以内:{text}"
# 打印提示词(实际使用时传给 LLM)
print(prompt)

5.2 数据问答 #

# 准备简单数据
sales = [120, 150, 90, 200]
# 构造提示词
prompt = f"""你是商业分析师,回答问题:
数据:{sales}
问题:哪个月销量最高?给出20字理由。"""
# 打印提示词
print(prompt)

5.3 翻译与风格控制 #

# 待翻译文本
cn_text = "请将这句话翻译成英文,并保持礼貌语气:谢谢你的帮助。"
# 构造提示词
prompt = f"翻译任务:要求英语,礼貌,简洁。文本:{cn_text}"
# 打印提示词
print(prompt)

6. 迭代优化流程(四步走) #

1) 写出第一版提示词; 2) 加角色和格式; 3) 加示例和约束; 4) 调整语气和细节。

# 不同版本的提示词
versions = [
    "写一段关于AI的介绍。",
    "你是科普作者,用100字介绍AI是什么。",
    "你是科普作者,用100字介绍AI是什么,举1个生活例子。",
    "你是科普作者,用100字介绍AI是什么,举1个生活例子,最后给1条学习建议。"
]
# 打印各版本,模拟迭代
for i, v in enumerate(versions, 1):
    print(f"版本{i}: {v}\n")

7. 常见错误与修正 #

7.1 过于模糊 #

# 错误示例:太模糊
bad = "介绍一下AI"
# 修正示例:角色+对象+长度
good = "你是科普作者,用80字介绍什么是AI,面向中学生"
# 打印对比
print("错误:", bad)
print("修正:", good)

7.2 多重提问与矛盾要求 #

# 错误示例:多个要求且矛盾
bad = "写一篇500字文章,既简短又详细,还要幽默严肃"
# 修正示例:拆分任务,明确语气
good = "写一篇500字科普,语气轻松,解释AI的定义和2个应用场景"
# 打印对比
print("错误:", bad)
# 打印修正示例
print("修正:", good)

8. 快速检查清单 #

  • 是否说明角色(你是…)
  • 是否拆成步骤/要点
  • 是否给出格式和长度限制
  • 是否提供示例或背景
  • 是否删除矛盾或多余要求

9. 总结 #

  • 核心公式:角色 + 任务 + 格式 + 示例 + 约束
  • 原则:清晰、结构化、给上下文、加约束
  • 方法:多版迭代,记录效果最好的提示词
  • 练习:多写、多试、多对比,才能写出高质量提示词
← 上一节 parameter 下一节 Pydantic →

访问验证

请输入访问令牌

Token不正确,请重新输入