Claude API 基础用法 (Messages API)
Anthropic 的 Messages API 是与 Claude 进行交互的主要方式。它采用了类似对话的结构,清晰地分离了系统指令、用户输入和模型回复。
把 Messages API 想成“和 AI 的会议纪要系统”:
system 定规则,user 提需求,assistant 给产出。
谁说了什么都要留痕,后续才能复盘、调优、降本。
1. 快速入门代码 (Python)
首先,安装官方 SDK:
pip install anthropic
基础调用示例:
import anthropic
client = anthropic.Anthropic(
api_key="your_api_key_here",
)
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
system="你是一位资深的软件架构师。", # 系统指令
messages=[
{"role": "user", "content": "如何设计一个支持千万级用户的消息系统?"}
]
)
print(message.content[0].text)
2. API 核心参数说明
model:指定使用的模型名称。system:系统提示词(System Prompt)。在这里定义 Claude 的角色、规则和约束。messages:对话历史。role: 可以是user或assistant。content: 文本内容或多模态内容列表。
max_tokens:限制生成的最大长度。temperature:控制随机性。0 为最稳定(适合代码/逻辑),1 为最随机(适合创意写作)。
读者导向:建议阅读顺序
- 先跑“快速入门代码”,确认连通性与模型响应。
- 再看“核心参数”,建立稳定输出的基础控制面板。
- 最后看“流式响应 + 多轮管理”,进入产品化场景。
3. 流式响应 (Streaming)
对于交互式应用,流式输出能显著提升用户感知速度。
with client.messages.stream(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
messages=[{"role": "user", "content": "写一篇关于未来 AI 发展的短文。"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
4. 多轮对话管理
在进行多轮对话时,你需要手动维护 messages 数组,将之前的对话历史不断添加进去。
messages = [
{"role": "user", "content": "你好,我是小明。"},
{"role": "assistant", "content": "你好小明!很高兴见到你。"},
{"role": "user", "content": "我刚才说我叫什么名字?"}
]
常见坑
- 只追加用户消息,不追加 assistant 回复,导致上下文断裂
system指令写得太宽泛,输出风格飘忽不定- 没有做 token 预算,长会话成本失控
一句轻松版:
对话上下文像接力棒,丢一棒就会“剧情穿帮”。
5. 最佳实践:使用 XML 标签
Claude 经过专门训练,能够理解 XML 标签来组织输入。这在处理复杂指令时非常有效:
system_prompt = """
请提取下面 <document> 中的关键信息。
并将结果按照 <format> 要求的格式输出。
<format>
- 日期
- 地点
- 主要结论
</format>
"""
下一步:探索 Claude 的 视觉能力,了解如何让 AI 理解图片。