跳到主要内容

Anthropic SDK 调用

CloudBase AI 同时兼容 OpenAI Chat Completions 和 Anthropic Messages API 协议,可直接使用 Anthropic SDK 调用,只需将 authTokenbaseURL 替换为云开发配置即可。

认证方式

CloudBase 使用 Authorization: Bearer <token> 进行认证,对应 Anthropic SDK 的 authToken 参数,不是 apiKey

前置条件

  1. 已开通云开发环境
  2. 已购买 Token 资源包并启用模型开关(见 接入大模型
  3. 已创建 API Key(获取地址

安装

# Node.js
npm install @anthropic-ai/sdk

# Python
pip install anthropic

配置

初始化时,将 authTokenbaseURL 传给 SDK:

参数
authToken云开发 API Key
baseURLhttps://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase

<ENV_ID> 替换为实际的云开发环境 ID,<YOUR_CLOUDBASE_API_KEY> 替换为实际的 API Key。

Node.js 示例

非流式调用

const Anthropic = require("@anthropic-ai/sdk");

const client = new Anthropic({
authToken: "<YOUR_CLOUDBASE_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});

async function main() {
const message = await client.messages.create({
model: "hy3-preview",
max_tokens: 1024,
messages: [{ role: "user", content: "你好" }]
});

console.log(message.content[0].text);
}

main();

流式调用

const Anthropic = require("@anthropic-ai/sdk");

const client = new Anthropic({
authToken: "<YOUR_CLOUDBASE_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});

async function main() {
const stream = await client.messages.stream({
model: "hy3-preview",
max_tokens: 1024,
messages: [{ role: "user", content: "介绍一下你自己" }]
});

for await (const chunk of stream) {
if (
chunk.type === "content_block_delta" &&
chunk.delta.type === "text_delta"
) {
process.stdout.write(chunk.delta.text);
}
}
}

main();

Python 示例

非流式调用

import anthropic

client = anthropic.Anthropic(
auth_token="<YOUR_CLOUDBASE_API_KEY>",
base_url="https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
)

message = client.messages.create(
model="hy3-preview",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}]
)

print(message.content[0].text)

流式调用

import anthropic

client = anthropic.Anthropic(
auth_token="<YOUR_CLOUDBASE_API_KEY>",
base_url="https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
)

with client.messages.stream(
model="hy3-preview",
max_tokens=1024,
messages=[{"role": "user", "content": "介绍一下你自己"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)

多轮对话

const Anthropic = require("@anthropic-ai/sdk");

const client = new Anthropic({
authToken: "<YOUR_CLOUDBASE_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});

const messages = [];

async function chat(userMessage) {
messages.push({ role: "user", content: userMessage });

const response = await client.messages.create({
model: "hy3-preview",
max_tokens: 1024,
system: "你是一个诗词专家",
messages
});

const assistantContent = response.content[0].text;
messages.push({ role: "assistant", content: assistantContent });

return assistantContent;
}

// 使用示例
await chat("李白最著名的诗是什么?");
await chat("这首诗的创作背景是什么?");

从 Anthropic 迁移

如果你的项目原本使用 Anthropic SDK,迁移到 CloudBase 需要修改客户端初始化部分:

// 原 Anthropic 配置
const client = new Anthropic({
apiKey: "<ANTHROPIC_API_KEY>"
});

// 改为 CloudBase 配置
const client = new Anthropic({
authToken: "<YOUR_CLOUDBASE_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});

同时将模型名称替换为云开发中已开启的模型(如 hy3-preview),其余业务代码无需改动。

错误处理

const Anthropic = require("@anthropic-ai/sdk");

const client = new Anthropic({
authToken: "<YOUR_CLOUDBASE_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});

try {
const message = await client.messages.create({
model: "hy3-preview",
max_tokens: 1024,
messages: [{ role: "user", content: "你好" }]
});
console.log(message.content[0].text);
} catch (error) {
if (error instanceof Anthropic.APIError) {
console.error("API 错误:", error.status, error.message);
} else {
throw error;
}
}

支持的参数

参数类型说明
modelstring模型名称
messagesarray消息列表
systemstring系统提示词
max_tokensnumber最大生成 token 数(必填)
streamboolean是否流式返回
temperaturenumber采样温度 (0-1)
top_pnumber核采样 (0-1)