共计 2170 个字符,预计需要花费 6 分钟才能阅读完成。
环境准备
在开始之前,我们需要确保 macOS 系统已经准备好运行 Python 和 Claude API 的开发环境。以下是详细的步骤:

-
检查 Python 版本
打开终端,输入以下命令检查 Python 版本:python3 --version确保版本是 3.8 或更高。如果没有安装 Python,可以通过 Homebrew 安装:
brew install python -
安装 Homebrew(可选)
如果你还没有安装 Homebrew,可以通过以下命令安装:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
设置虚拟环境
为了避免污染全局 Python 环境,建议使用虚拟环境:python3 -m venv claude-env source claude-env/bin/activate
Claude API 账号申请与密钥获取
-
访问 Anthropic 官网注册账号
打开浏览器,访问 Anthropic 官网 并注册账号。 -
获取 API 密钥
登录后,进入 API 管理页面,创建一个新的 API 密钥。请妥善保管这个密钥,不要泄露给他人。 -
安全存储 API 密钥
最佳实践是将 API 密钥存储在环境变量中,而不是直接写在代码里。在终端运行:echo 'export CLAUDE_API_KEY="your_api_key_here"' >> ~/.zshrc source ~/.zshrc
安装必要库
我们需要安装 requests 库来处理 HTTP 请求:
pip install requests
第一个对话程序实现
下面是一个完整的 Python 示例代码,包含错误处理和基本对话功能:
import os
import requests
import json
# 从环境变量获取 API 密钥
API_KEY = os.getenv('CLAUDE_API_KEY')
if not API_KEY:
raise ValueError("请设置 CLAUDE_API_KEY 环境变量")
# API 端点
API_URL = "https://api.anthropic.com/v1/complete"
# 请求头
headers = {
"Content-Type": "application/json",
"X-API-Key": API_KEY,
}
# 请求数据
data = {
"prompt": "\n\nHuman: 你好,Claude!\n\nAssistant:",
"model": "claude-v1",
"max_tokens_to_sample": 300,
"stop_sequences": ["\n\nHuman:"],
}
try:
# 发送 POST 请求
response = requests.post(API_URL, headers=headers, json=data)
response.raise_for_status() # 检查 HTTP 错误
# 解析响应
result = response.json()
print("Claude 回复:", result["completion"])
except requests.exceptions.HTTPError as err:
print(f"HTTP 错误: {err}")
except requests.exceptions.RequestException as err:
print(f"请求错误: {err}")
except json.JSONDecodeError as err:
print(f"JSON 解析错误: {err}")
响应结果解析与格式化输出
Claude 的响应通常是一个 JSON 对象,包含 ”completion” 字段。我们可以进一步美化输出:
# 在 try 块中添加以下代码
formatted_response = result["completion"].strip()
print(f"\nClaude 回复:\n{formatted_response}\n")
API 调用与 SDK 对比
- 直接调用 API 的优势
- 更轻量,不需要额外依赖
- 更灵活,可以完全控制请求和响应
-
适合简单的使用场景
-
使用 SDK 的优势
- 更简洁的代码
- 内置错误处理和重试机制
- 适合复杂的应用场景
常见错误排查指南
-
SSL 证书问题
如果在 macOS 上遇到 SSL 证书错误,可以尝试:/Applications/Python\ 3.*/Install\ Certificates.command -
速率限制
Claude API 有速率限制,如果遇到 429 错误,可以: - 降低请求频率
-
实现指数退避重试机制
-
API 密钥无效
确保 API_KEY 环境变量设置正确,并且没有过期。
性能优化建议
-
使用连接池
可以创建一个 Session 对象来复用连接:session = requests.Session() response = session.post(API_URL, headers=headers, json=data) -
异步调用
对于高并发场景,可以考虑使用 aiohttp 库实现异步调用。 -
批量请求
如果可能,将多个请求合并为一个批量请求。
下一步尝试
现在你已经实现了基本的对话功能,可以尝试修改代码实现连续对话。这里有一些思路:
- 创建一个循环,持续接收用户输入
- 将之前的对话历史包含在 prompt 中
- 添加退出条件(如用户输入 ” 退出 ”)
期待看到你扩展这个基础示例,开发出更有趣的 AI 应用!
