Claude 使用笔记
简介
Claude 是 Anthropic 开发的大型语言模型,以安全性、准确性和长上下文处理能力著称。
特点
- 长上下文:支持 100K+ token 的上下文窗口
- 安全性:内置安全机制,减少有害输出
- 准确性:在复杂推理任务上表现优秀
API 使用
基本调用
import anthropic
client = anthropic.Anthropic(api_key="your-api-key")
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=[
{"role": "user", "content": "解释一下量子计算的基本原理"}
]
)
print(message.content[0].text)
流式响应
with client.messages.stream(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=[{"role": "user", "content": "写一个 Python 函数"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
使用场景
以下是我在实际应用中使用 Claude 的场景:
1. 长文档分析
Claude 的长上下文能力适合分析长文档:
# 读取长文档
with open("long_document.txt", "r") as f:
document = f.read()
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=2000,
messages=[
{
"role": "user",
"content": f"请总结以下文档的主要内容:\n\n{document}"
}
]
)
2. 代码审查
Claude 在代码审查方面表现优秀:
code = """
def calculate_sum(numbers):
total = 0
for num in numbers:
total += num
return total
"""
response = client.messages.create(
model="claude-3-opus-20240229",
messages=[
{
"role": "user",
"content": f"请审查以下代码,指出潜在问题和改进建议:\n\n```python\n{code}\n```"
}
]
)
3. 结构化输出
使用 XML 标签获取结构化输出:
response = client.messages.create(
model="claude-3-opus-20240229",
messages=[
{
"role": "user",
"content": """
分析以下文本的情感:
"今天天气真好,心情也很愉快!"
请用以下格式输出:
<sentiment>情感类型</sentiment>
<score>情感分数(0-1)</score>
"""
}
]
)
模型版本
- claude-3-opus: 最强性能,适合复杂任务
- claude-3-sonnet: 平衡性能和速度
- claude-3-haiku: 快速响应,适合简单任务
与 ChatGPT 对比
| 特性 | Claude | ChatGPT |
|---|---|---|
| 上下文长度 | 100K+ | 4K-128K |
| 安全性 | 内置安全机制 | 依赖内容过滤 |
| 代码能力 | 优秀 | 优秀 |
| 推理能力 | 强 | 强 |
| 响应速度 | 中等 | 快 |
最佳实践
- 利用长上下文:一次性提供完整信息,减少多轮交互
- 明确格式要求:使用 XML 标签或 JSON 格式要求
- 系统消息:虽然 Claude 不支持 system role,但可以在第一条消息中设定角色
- 错误处理:实现重试机制处理 API 错误