第一次接入 Claude 时,最容易卡住的不是代码,而是两个字符串:Base URL 该填什么,以及密钥放在哪个请求头。下面这份指南按顺序走一遍,五分钟能跑通第一次调用。
登录后进入「控制台 → 令牌」,点击新建令牌。建的时候注意两点:
创建完成后复制以 sk- 开头的字符串,它只完整显示一次。
这是最容易出错的地方。同一个站点,不同 SDK 要求的写法并不一样:
| 使用方式 | Base URL | 说明 |
|---|---|---|
| OpenAI SDK / 大部分第三方工具 | https://newmao.cn/v1 | 包含 /v1,SDK 会自己再拼 /chat/completions |
| Anthropic 官方 SDK | https://newmao.cn | 不含 /v1,SDK 内部会拼成 /v1/messages |
自动拼接 /v1 的工具 | https://newmao.cn | 填了 /v1 会变成 /v1/v1,直接 404 |
判断方法很简单:看这个工具自己会不会补 /v1。会补就只填域名,不会补就填到 /v1。
用 OpenAI SDK 调 Claude(最省事,生态工具都认这套):
from openai import OpenAI
client = OpenAI(
api_key="sk-你的密钥",
base_url="https://newmao.cn/v1",
)
resp = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": "用一句话解释什么是向量数据库"}],
)
print(resp.choices[0].message.content)
用 Anthropic 原生 SDK(需要 cache_control 等 Claude 专有参数时用这个):
from anthropic import Anthropic
client = Anthropic(
api_key="sk-你的密钥",
base_url="https://newmao.cn",
)
msg = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "写一个 Python 快速排序"}],
)
print(msg.content[0].text)
| 状态码 | 典型信息 | 原因与处理 |
|---|---|---|
| 401 | invalid api key | 密钥复制不完整,或请求头没用 Authorization: Bearer |
| 403 | 无权限 / group not allowed | 当前令牌分组没有该模型的权限,去令牌设置里换分组 |
| 404 | model not found | 模型名拼错,或 Base URL 多了/少了 /v1 |
| 429 | rate limit / 并发超限 | 触发了每分钟请求数限制,加退避重试或升级分组 |
排查顺序建议:先确认 /v1/models 能列出模型,再发一次最小请求。能列模型说明鉴权和地址都对,问题就只剩模型名或参数。