Few-shot 示例与提示工程技巧
通过少量示例引导模型行为,掌握 few-shot 模板与常见提示工程模式。
Few-shot Prompting
在提示词中直接给模型几组"输入→输出"示例,是最简单有效的对齐手段:
from langchain_core.prompts import FewShotChatMessagePromptTemplate
examples = [
{"input": "开心", "output": "情绪:正面"},
{"input": "服务器崩了,真烦", "output": "情绪:负面"},
{"input": "今天周三", "output": "情绪:中性"},
]
example_prompt = ChatPromptTemplate.from_messages([
("human", "{input}"), ("ai", "{output}"),
])
few_shot = FewShotChatMessagePromptTemplate(
example_prompt=example_prompt, examples=examples)
prompt = ChatPromptTemplate.from_messages([
("system", "判断用户输入的情绪倾向。"),
few_shot,
("human", "{input}"),
])
常用提示工程模式
- 思维链(CoT):加一句"请一步步思考",推理类任务正确率明显提升;
- 结构化要求:给出输出 JSON 的字段模板,让模型照着填;
- 自我检查:要求模型先列出依据再下结论;
- 否定约束放最后:模型对提示词末尾内容更敏感。
示例选择策略
当示例库很大时,可按语义相似度动态挑选与当前输入最接近的 k 条示例(SemanticSimilarityExampleSelector),兼顾效果与 token 成本。
📝 课后练习
quiz-1 Few-shot Prompting 指的是?