Anthropic SDK
Anthropic Python SDK 适合 Claude Code 之外的 Python 应用。SDK 会自动生成 Anthropic Messages 请求,并添加 anthropic-version 等协议请求头。
安装
python -m pip install --upgrade anthropic
创建客户端
from anthropic import Anthropic
client = Anthropic(
api_key="YOUR_BITA_API_KEY",
base_url="https://www.bita-api.com",
)
Anthropic SDK 的 base_url 使用站点根地址,不包含 /v1。SDK 会自动请求 /v1/messages。
不要在地址后添加
/v1/messages正确地址是 https://www.bita-api.com。如果填写完整接口路径,SDK 再次追加路径后会导致 404。
查询模型
models = client.models.list()
for model in models.data:
print(model.id)
如果使用的 SDK 版本没有 models 方法,请升级 anthropic 包,或参照查询可用模型。
发送消息
message = client.messages.create(
model="YOUR_MODEL_ID",
max_tokens=1024,
system="你是一个简洁、准确的助手。",
messages=[
{
"role": "user",
"content": "请用一句话介绍 Bita API。",
}
],
)
for content in message.content:
if content.type == "text":
print(content.text)
Anthropic Messages 的系统指令使用顶层 system 参数,不能作为 role: "system" 的普通消息发送。
流式输出
with client.messages.stream(
model="YOUR_MODEL_ID",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "请介绍流式响应的作用。",
}
],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print()
text_stream 只输出文本增量。需要处理工具调用、用量或停止原因时,应遍历底层事件或在流结束后读取最终消息。
获取完整流式消息
with client.messages.stream(
model="YOUR_MODEL_ID",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "请介绍流式响应的作用。",
}
],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final_message = stream.get_final_message()
print()
print("停止原因:", final_message.stop_reason)
print("输出 Token:", final_message.usage.output_tokens)
工具调用
Anthropic SDK 使用 tools、tool_use 和 tool_result 处理函数工具。完整的请求、执行和回传示例参见工具调用与结构化输出:Claude。
错误处理
import anthropic
try:
message = client.messages.create(
model="YOUR_MODEL_ID",
max_tokens=128,
messages=[
{
"role": "user",
"content": "你好。",
}
],
)
except anthropic.AuthenticationError as error:
print("API 密钥无效:", error)
except anthropic.NotFoundError as error:
print("地址或模型不存在:", error)
except anthropic.RateLimitError as error:
print("请求受限或额度不足:", error)
except anthropic.APIConnectionError as error:
print("无法连接到 Bita API:", error)
常见问题
| 现象 | 建议检查 |
|---|---|
401 或 AuthenticationError | API 密钥是否完整,密钥是否启用 |
404 | base_url 是否为站点根地址,模型 ID 是否正确 |
max_tokens 缺失 | Anthropic Messages 请求必须设置最大输出 Token 数 |
| 系统消息报错 | 使用顶层 system,不要在消息列表中使用 system 角色 |
| 模型不可用 | 模型是否支持 Anthropic 端点,密钥分组是否匹配 |
下一步:Google Gen AI SDK。