3. 编写第一个Claude Code脚本

编写第一个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 可降低延迟)。