提示词工程是一门专注于 LLM 输入的学科,主要目的是以尽可能程序化的方式生成理想的输出。
- 角色(Role)
- 上下文(Context)
- 任务(Task)
上下文
在为 LLM 编写输入文本的时候,需要尽可能详细的描述上下文。
常见上下文形式:
- 提供数据、范例、定义、规则、语境
- 指明受众(如“这段话要写给小学生听”)
- 加入限制条件(如“不能超过100字”)
使用示例
使用简短的提示词:给我一个午餐建议
使用上下文更丰富的提示词:我现在正在健身,坚持16+8的健身计划,请你给我一个午餐的建议
任务
任务定义了你使用模型的目的,应该明确且具体。你应该为任务提供足够的信息,并且在提示词中使用恰当的语句来引导模型达到预期。
常见任务形式:
- 生成类:帮我写一段话、帮我生成一个标题、续写一段话
- 分析类:总结这段话的要点,比较两段话的异同,找错误
- 转换类:给它一段话,切换风格、翻译
- 多轮任务:先分析要点、在总结成一个报告
示例:
我现在正在健身,坚持16+8的健身计划,请你给我一个午餐的建议,我需要你以表格的形式罗列出每一样食材的量、卡路里等信息,还包括健身时关心的食材的其他信息。
在 OpenAI API 示例页面 上有一个列表,包含 GPT 模型可以执行的多个任务示例,均附有相关的提示词和演示。
角色
影响模型输出的最后一个方式是在编写提示词的时候赋予它一个角色。
角色和上下文可以独立使用,但同时使用两者可以增强你对模型输出的控制。
角色的设定会影响大模型输出结果的语气、表达方式以及知识深度。
常见角色示例:
- 你是一位严谨的大学教授 - 回答的时候会更加学术化
- 你是一名耐心的初中数学老师 - 回答的时候会更加通俗
- 你是产品经理,正在写 PRD 文档 - 回答的时候会更加结构化
示例:
你是一个资深营养学家,我现在正在健身,坚持16+8的健身计划,请你给我一个午餐的建议,我需要你以表格的形式罗列出每一样食材的量、卡路里等信息,还包括健身时关心的食材的其他信息。
最佳实践
一个标准的,符合 RCT 结构的提示词模板如下:
你是一个 [角色],现在的背景是 [上下文],请你完成如下任务:[任务描述]。或者
假设你是 [角色]。请基于以下上下文:[上下文内容]。你的任务是:[任务目标 + 要求]。-EOF-