§02
地址和鉴权
OpenAI 格式(大多数工具和 SDK)用带 /v1 的地址:
https://api.macloudai.com/v1Anthropic 格式(Anthropic SDK、Claude Code)用不带 /v1 的地址:
https://api.macloudai.comAPI Key 放在请求头 Authorization: Bearer sk-...(Anthropic 格式也可以用 x-api-key)。Key 等于你的余额,不要放进网页前端代码或公开的仓库。
§03
OpenAI SDK
from openai import OpenAI
client = OpenAI(base_url="https://api.macloudai.com/v1", api_key="sk-...")
r = client.chat.completions.create(
model="gem-3.8-flash",
messages=[{"role": "user", "content": "Halo"}],
)
print(r.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.macloudai.com/v1", apiKey: process.env.API_KEY });
const r = await client.chat.completions.create({
model: "gem-3.8-flash",
messages: [{ role: "user", content: "Halo" }],
});
console.log(r.choices[0].message.content);
curl https://api.macloudai.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gem-3.8-flash", "messages": [{"role": "user", "content": "Halo"}], "stream": true}'
支持 stream(流式输出)。
§04
Anthropic SDK
import anthropic
client = anthropic.Anthropic(base_url="https://api.macloudai.com", api_key="sk-...")
r = client.messages.create(
model="hk-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Halo"}],
)
print(r.content[0].text)
Anthropic 格式的地址不带 /v1。
§05
Claude Code
在终端里设好这几个环境变量再运行 claude(想一直生效就写进 ~/.zshrc 或 ~/.bashrc):
export ANTHROPIC_BASE_URL=https://api.macloudai.com
export ANTHROPIC_AUTH_TOKEN=sk-...
export ANTHROPIC_MODEL=hk-5-5
claude
§06
Cursor
- 打开 Settings → Models。
- 在 OpenAI API Key 填你的 Key,打开 Override OpenAI Base URL,填 https://api.macloudai.com/v1。
- 点 + Add model,填模型页上的模型名,然后点 Verify。
§07
Cherry Studio
- 设置 → 模型服务 → 添加,类型选 OpenAI(Claude 模型也可以选 Anthropic)。
- API Host 填 https://api.macloudai.com,API Key 填你的 Key。
- 点“管理”或“添加”,填模型页上的模型名。
§08
LobeChat
在设置 → 语言模型 → OpenAI 里填 API Key 和 API 代理地址 https://api.macloudai.com/v1。自己部署的话设环境变量:
OPENAI_API_KEY=sk-...
OPENAI_PROXY_URL=https://api.macloudai.com/v1
§09
计费和报错
每次调用按输入和输出的 token 数从余额扣,价格见模型页。余额用完后请求会被拒绝,充值后马上恢复。
| 状态码 | 意思 |
|---|---|
| 401 | API Key 不对、被停用或被删了。 |
| 403 | 余额不够,或者这个 Key 不能用这个模型。 |
| 404 | 模型名写错了,照模型页上的名字填。 |
| 429 | 请求太快了,等一下再试。 |
| 5xx | 上游模型暂时出错,过一会儿重试。 |