跳到主要内容

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 使用 toolstool_usetool_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)

常见问题

现象建议检查
401AuthenticationErrorAPI 密钥是否完整,密钥是否启用
404base_url 是否为站点根地址,模型 ID 是否正确
max_tokens 缺失Anthropic Messages 请求必须设置最大输出 Token 数
系统消息报错使用顶层 system,不要在消息列表中使用 system 角色
模型不可用模型是否支持 Anthropic 端点,密钥分组是否匹配

下一步:Google Gen AI SDK