提示工程
使用提示模板和变量
在使用Claude部署基于LLM的应用程序时,您的API调用通常包含两种类型的内容:
- 固定内容: 在多次交互中保持不变的静态指令或上下文
- 变量内容: 随每个请求或对话而变化的动态元素,例如:
- 用户输入
- 用于检索增强生成(RAG)的检索内容
- 对话上下文,如用户账户历史
- 系统生成的数据,如来自其他独立Claude调用的工具使用结果
提示模板将这些固定和变量部分结合在一起,为动态内容使用占位符。在Anthropic Console中,这些占位符用**{{双括号}}**表示,使它们易于识别并允许快速测试不同的值。
何时使用提示模板和变量
当您预期提示的任何部分会在另一次调用Claude时重复使用时,您都应该使用提示模板和变量(仅通过API或Anthropic Console。claude.ai目前不支持提示模板或变量)。
提示模板提供了几个好处:
- 一致性: 确保在多次交互中保持提示结构的一致性
- 效率: 无需重写整个提示即可轻松替换变量内容
- 可测试性: 通过仅更改变量部分来快速测试不同的输入和边缘情况
- 可扩展性: 随着应用程序复杂度增加,简化提示管理
- 版本控制: 通过仅跟踪提示的核心部分(与动态输入分开),轻松跟踪提示结构的变化
Anthropic Console大量使用提示模板和变量,以支持上述所有功能和工具,例如:
- 提示生成器: 决定您的提示需要哪些变量,并将它们包含在输出的模板中
- 提示改进器: 接收您现有的模板(包括所有变量),并在输出的改进模板中保持这些变量
- 评估工具: 通过分离提示模板的变量和固定部分,让您轻松测试、扩展和跟踪提示的版本
提示模板示例
让我们考虑一个将英文文本翻译成西班牙文的简单应用程序。由于您预期这段文本会在用户之间或对Claude的调用之间发生变化,因此翻译的文本将是变量。这个翻译文本可以从数据库或用户输入中动态检索。
因此,对于您的翻译应用程序,您可以使用这个简单的提示模板: