Anthropic SDK 接入(Python / TypeScript)
用 Anthropic 官方 SDK 调 1折AI:base_url 填 https://1zheai.com,原生支持缓存、流式、工具调用和 thinking。
Anthropic 官方 SDK 走原生 /v1/messages,Claude 的所有参数都能直接用。改的地方只有 base_url 和 api_key。
安装
“安装”小节链接pip install anthropicnpm install @anthropic-ai/sdk调用
“调用”小节链接import osimport anthropic
client = anthropic.Anthropic( base_url="https://1zheai.com", api_key=os.environ["ONEZHE_API_KEY"],)
message = client.messages.create( model="claude-sonnet-5-5", max_tokens=1024, messages=[{"role": "user", "content": "用一句话介绍你自己"}],)print(message.model)print(message.content[0].text)print(message.usage)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://1zheai.com", apiKey: process.env.ONEZHE_API_KEY,});
const message = await client.messages.create({ model: "claude-sonnet-5-5", max_tokens: 1024, messages: [{ role: "user", content: "用一句话介绍你自己" }],});console.log(message.model);console.log(message.content);console.log(message.usage);base_url 填根地址,不要加 /v1。
流式输出
“流式输出”小节链接with client.messages.stream( model="claude-sonnet-5-5", max_tokens=1024, messages=[{"role": "user", "content": "写一首四行的诗"}],) as stream: for text in stream.text_stream: print(text, end="", flush=True)const stream = client.messages.stream({ model: "claude-sonnet-5-5", max_tokens: 1024, messages: [{ role: "user", content: "写一首四行的诗" }],});stream.on("text", (text) => process.stdout.write(text));await stream.finalMessage();带缓存的调用
“带缓存的调用”小节链接把长且固定的内容放进 system,加上 cache_control:
message = client.messages.create( model="claude-sonnet-5-5", max_tokens=1024, system=[ { "type": "text", "text": LONG_PROJECT_CONTEXT, # 每次都一样的长文本 "cache_control": {"type": "ephemeral"}, } ], messages=[{"role": "user", "content": "根据上面的说明回答:..."}],)print(message.usage.cache_creation_input_tokens, message.usage.cache_read_input_tokens)第二次调用时 cache_read_input_tokens 大于 0 就是命中了。细节见 Prompt Caching。
用环境变量
“用环境变量”小节链接官方 SDK 会读取 ANTHROPIC_BASE_URL 和 ANTHROPIC_API_KEY,构造客户端时不传参数也行:
export ANTHROPIC_BASE_URL="https://1zheai.com"export ANTHROPIC_API_KEY="sk-你的Key"然后构造客户端时不传参数:
client = anthropic.Anthropic() # 自动读取上面两个变量如果这台机器上 Claude Code 也读这两个变量,它们会一起切到 1折AI,这通常正是你想要的。
常见问题
“常见问题”小节链接404?
base_url 多写了 /v1。Anthropic SDK 会自己拼 /v1/messages。
401?
检查 API 密钥(API key);另外,环境里如果同时存在 ANTHROPIC_AUTH_TOKEN(比如以前给 Claude Code 设的旧值),SDK 也会读它,把旧值删掉再试。
