3. 编写第一个Claude Code脚本
任务目标
编写一个Python脚本,通过Claude API发送文本提示,获取并打印模型生成的回复。本案例使用Anthropic官方SDK,以最小可运行实现完成一次完整的文本生成调用。
环境准备
- Python 3.9+
- 安装依赖:
pip install anthropic - 获取:在Anthropic控制台创建密钥,并设置环境变量
ANTHROPIC_
完整代码
import os
from anthropic import Anthropic
client = Anthropic() # 自动读取 ANTHROPIC_ 环境变量
def generate_text(prompt: str, model: str = "claude-3-5-sonnet-20241022", max_tokens: int = 1024) -> str:
"""调用Claude API生成文本回复"""
try:
response = client.messages.create(
model=model,
max_tokens=max_tokens,
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
except Exception as e:
return f"API调用失败: {e}"
if __name__ == "__main__":
# 测试提示词
test_prompt = "用一句话解释什么是递归算法。"
result = generate_text(test_prompt)
print(f"提示: {test_prompt}\n")
print(f"Claude回复: {result}")
运行方式
export ANTHROPIC_="your--here"
python claude_script.py
验证方法
- 成功标准:程序正常退出,输出包含"Claude回复:"开头的内容,且回复文本与提示词主题相关(即关于递归算法的解释)。
- 错误排查:若输出"API调用失败",检查环境变量是否正确设置、网络连接是否正常、是否有效。
- 预期输出示例(内容因模型回复而异):
提示: 用一句话解释什么是递归算法。
Claude回复: 递归算法是一种函数直接或间接调用自身来解决问题的编程方法,它将复杂问题分解为相同类型的子问题直至达到基准条件。
关键说明
- 代码中
Anthropic()构造函数会自动从环境变量读取密钥,无需在代码中硬编码。 messages参数采用兼容的消息格式,role: "user"表示用户输入。- 返回的
response.content[0].text是模型生成的文本内容,这是当前版本SDK的标准访问方式。 - 若需更换模型,修改
model参数为其他可用模型ID即可(如claude-3-haiku-20240307可降低延迟)。