理解 Claude API 的不同输入模式——选择最适合你场景的方式。
输入模式概览
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 标准模式 | 普通的消息列表输入 | 大多数场景 |
| 预填充(Prefill) | 预填充助手的回复开头 | 控制输出格式 |
标准模式
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
messages=[
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!有什么可以帮助的?"},
{"role": "user", "content": "解释一下 Python 的装饰器"}
]
)
预填充助手回复
你可以预填充助手的回复开头,引导 Claude 按特定格式回答:
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
messages=[
{"role": "user", "content": "写一个 JSON 配置"},
{"role": "assistant", "content": "好的,这是配置:\n\n```json\n{"}
]
)
# Claude 会从 { 开始继续生成 JSON
使用场景
强制 JSON 输出
messages = [
{"role": "user", "content": "返回 JSON 格式的代码分析"},
{"role": "assistant", "content": "{\n "}
]
# Claude 会继续完成 JSON 对象
强制代码输出
messages = [
{"role": "user", "content": "用 Python 写一个 HTTP 服务器"},
{"role": "assistant", "content": "```python\nimport http.server\n"}
]
# Claude 会从 import 开始继续
注意事项
- 预填充的内容会被计入输出 token
- 确保预填充的内容与 Claude 预期的回复一致
- 过度使用可能导致回复质量下降