6.system prompt
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
系统提示词是自定义Claude响应用户输入的强大方式。您可以塑造Claude的语调、风格和方法来匹配您的特定用例,而不是获得通用的答案。

为什么系统提示词很重要
考虑构建一个数学辅导聊天机器人。当学生问"如何求解5x + 2 = 3中的x?"时,您希望Claude表现得像一个真正的导师,而不是直接给出答案。一个好的数学导师应该:
- 最初给出提示而不是完整的解答
- 耐心地逐步引导学生解决问题
- 展示类似问题的解答作为示例
您绝对不希望Claude:
- 立即给出直接答案
- 告诉学生直接使用计算器
系统提示词的工作原理

系统提示为Claude提供如何响应的指导。你将它们定义为纯字符串并传递到create函数调用中。主要优势包括:
- 系统提示为Claude提供如何响应的指导
- Claude会尝试以指定角色的方式来响应
- 有助于让Claude专注于任务
基本结构如下:
system_prompt = """
You are a patient math tutor.
Do not directly answer a student's questions.
Guide them to a solution step by step.
"""
client.messages.create(
model=model,
messages=messages,
max_tokens=1000,
system=system_prompt
)
看到差异
没有系统提示词时,Claude 会立即给出完整的分步解决方案。这可能很有帮助,但并不能鼓励学生自己思考问题。
使用数学导师系统提示词后,Claude 的回应发生了显著变化。Claude 不再提供完整的解决方案,而是提出引导性问题,比如"你认为隔离 x 的第一步应该是什么?考虑一下我们可能需要对等式两边执行什么操作来开始移动项。"
构建灵活的聊天函数
与其硬编码系统提示词,你可以通过接受系统提示词作为参数来让聊天函数更具可重用性:
def chat(messages, system=None):
params = {
"model": model,
"max_tokens": 1000,
"messages": messages,
}
if system:
params["system"] = system
message = client.messages.create(**params)
return message.content[0].text
这种方法处理了一个重要细节:Claude的API不接受system=None参数,因此你需要仅在提供系统提示时才有条件地包含system参数。
现在你可以在调用chat函数时选择是否使用系统提示:
# 不使用系统提示
answer = chat(messages)
# 使用系统提示
system = """
你是一位耐心的数学导师。
不要直接回答学生的问题。
引导他们一步步找到解决方案。
"""
answer = chat(messages, system=system)
系统提示对于创建行为一致且适合其预期用途的AI应用程序至关重要。它们将通用的AI响应转换为专业化的、符合角色的交互。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org