一、角色设定:给模型一个清晰的身份

Prompt 的首要任务是明确角色。与其直接问一个模糊的问题,不如先赋予模型一个具体的身份,比如“你是一位资深的Python开发者”或“你是一名科普作家”。这样做的好处在于,模型能迅速调用与该角色相关的知识库和语言风格,让回答更专业、更聚焦。

例如,当你希望获得一段代码时,可以这样设定:“你是一名资深后端工程师,擅长编写高效、可读的 Python 代码。请根据以下需求,提供解决方案。” 这比直接问“如何用Python处理文件”能得到质量更高的答案。角色的设定,本质上是帮助模型缩小思考范围,减少生成无关或泛泛内容的可能性。

二、任务拆解:将复杂问题步骤化

面对复杂任务,一次性要求模型完成所有工作往往效果不佳。一个更有效的策略是任务拆解,引导模型像完成一个项目一样,分步思考。这可以显著提高输出结果的逻辑性和完整性。

你可以使用类似项目管理的方法来构建提示。例如:

prompt_template = """
## 任务背景
{background}

## 你的任务
1. 分析上述需求的核心问题。
2. 提出2-3种可行的解决方案。
3. 对比各方案的优缺点。
4. 给出最终推荐方案并说明理由。

请严格按照以上步骤进行思考,并在回答中清晰列出每一步。
"""

这个模板强制模型进行了结构化思考,避免了跳跃性回答。这对于写分析报告、设计方案或调试复杂代码尤其有用。

三、格式约束:明确输出的“样子”

很多时候,我们不只需要内容,还需要特定格式的输出,比如 JSON、Markdown 列表或特定的表格。明确指定格式是保证结果可直接使用的窍门。

提示:格式约束要具体。例如,不要说“用列表回答”,而要说“请用无序列表回答,每一点以-开头”。如果你希望结果能被程序解析,直接要求输出一个定义好的JSON结构是最稳妥的。

对于需要严格格式的场景,一个清晰的示例(Few-shot Learning)比千言万语都管用。在提示中给出一个输入和你期望的输出示例,模型就能很好地模仿这个格式进行生成。

四、思维链:引导模型展示思考过程

思维链(Chain-of-Thought, CoT) 是一项强大的技术,它要求模型在给出最终答案前,先展示其推理步骤。这能大幅提升模型在数学、逻辑和复杂推理任务上的表现。

你只需在提示中加入一句魔法咒语:“请逐步思考”或“Let's think step by step”。更进阶的用法是,你自己提供一个简短的推理示例,然后让模型模仿。例如,在解决一个数学题时,先展示你的草稿纸:“第一步,我理解题目是……第二步,我列出了公式……”,然后要求模型遵循类似路径。

五、迭代与优化:提示工程是门实验科学

不要指望一次就写出完美的提示。迭代是提示工程师的核心工作方法。根据模型的输出,你可以不断调整提示的措辞、增减约束条件、提供更精确的例子。

优化提示时,可以遵循这个循环:

  1. 初步尝试:写下你认为最合理的提示。
  2. 测试与评估:观察模型输出,找出不满意的地方(如不准确、太啰嗦、格式错误)。
  3. 调整提示:针对问题点进行修改,可能是增加约束、修正角色描述,或添加一个反例(“不要包含以下内容:…”)。
  4. 重复测试:直到获得稳定、满意的输出。记录下那些特别有效的提示,构建你自己的“提示库”。

六、安全与边界:理解模型的局限性

任何技巧都建立在理解模型能力边界的基础上。大模型并非无所不知,它可能产生“幻觉”(一本正经地胡说八道),也可能输出有偏见或不安全的内容。

因此,在提示中设置“护栏”至关重要。你可以在开头或结尾加入安全声明,例如:“如果问题涉及医疗或法律建议,请你明确告知这仅供参考,并建议咨询专业人士。” 或者 “请确保你的回答公正、客观,不包含任何歧视性言论。” 记住,提示工程不仅是提升效果,更是负责任地使用这项强大技术的一部分。始终对模型输出保持批判性思维。