配置速查
只改一个参数,但写法和 OpenAI SDK 不一样。
| 配置项 | 填什么 | 容易错在哪 |
|---|---|---|
base_url | https://turingapi.space | 不带 /v1,带了会 404 |
api_key | 控制台创建的 sk- 密钥 | SDK 会发成 x-api-key 头 |
max_tokens | 必填,例如 1024 | 漏了会直接报参数错误 |
base_url 后面拼 /v1/messages。你填 https://turingapi.space,最终请求 https://turingapi.space/v1/messages,正好对。填了带 /v1 的地址就变成 /v1/v1/messages,404。前置准备
装好 SDK、拿到密钥就能跑。
在 注册页 建账号,控制台新建密钥并保存。同一把密钥在两种协议下通用。
执行 pip install -U anthropic。
站内 claude-* 系列都支持 Messages 协议,模型名从 模型列表 复制。
配置步骤
两份示例:普通调用与流式调用。
基础调用 最小示例
- 初始化
Anthropic客户端 base_url填域名,不带 /v1- 调用
messages.create,别忘了max_tokens
from anthropic import Anthropic
import os
client = Anthropic(
base_url="https://turingapi.space",
api_key=os.environ["TURING_API_KEY"],
)
msg = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}],
)
print(msg.content[0].text)max_tokens 是这个 SDK 的必填参数,漏掉会直接抛参数错误,很多人第一次用都会卡在这。
流式输出 常用写法
- 用
client.messages.stream上下文管理器 - 注册
text_stream逐段取文本 - 结束时可以取完整消息对象
with client.messages.stream(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "写一段快排"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)用 text_stream 比自己解析事件更省事,它已经把文本增量拼好了。
两种 SDK 混用 进阶
- 同一把密钥既能调
/v1/messages也能调/v1/chat/completions - OpenAI SDK 也能调 Claude 模型,只是走 Chat Completions 协议
- 要原生 Messages 特性(如特定的 system 字段行为)就用这个 SDK
选哪个 SDK 取决于你想用哪套协议,不取决于模型属于哪家厂商。
验证是否配置成功
看到这些就说明通了
- 返回
msg.content[0].text且是正常中文回答 - 没有抛
AuthenticationError - 控制台「用量」页出现这次调用
能拿到 content 数组里的文本,说明 Messages 协议这条路是通的。
404 的定位方法
- 先看
base_url是否多写了/v1 - 再看模型名是否存在
- 最后确认密钥没有多余空格
print(client.base_url)打印出来如果结尾是 /v1,去掉它再试,这是最高频的错误。
常见问题
这个 SDK 的坑几乎只有一个:base_url 多写了 /v1。
为什么一直 404?
base_url 写了 https://turingapi.space/v1。SDK 会自己拼 /v1/messages,你填的地址要停在域名这一层。
改成 https://turingapi.space 即可。
max_tokens 能不能不填?
不能。这个参数在 Anthropic 的接口里是必填项,漏了会直接报参数错误。一般给 1024 到 4096 之间,按用途调。
一把密钥能同时用两种协议吗?
能。同一把 sk- 密钥在 /v1/messages、/v1/chat/completions、/v1/responses 上都通用,不需要分别申请。
能用 OpenAI SDK 调 Claude 模型吗?
能,但走的是 Chat Completions 协议。如果你的代码依赖 Anthropic 特有的行为(比如 system 字段的处理方式),还是用这个 SDK 更稳。
相关客户端
OOpenAI Python SDK
改一个参数,业务代码不用动
NNode.js (openai)
注意是 baseURL 不是 base_url
CClaude Code
走 Anthropic 协议,地址不带 /v1
通通用 OpenAI 兼容
两种地址写法,互换一次就能解决大半问题
接入过程卡住了?到 QQ 群 1128182538 说明「客户端 + 报错码 + 时间点」,比只说"用不了"好排查得多。其他通用问题见 常见问题。