OpenAI SDK 调用
CloudBase AI 同时兼容 OpenAI Chat Completions 和 Anthropic Messages API 协议,可直接使用 OpenAI SDK 调用,方便项目迁移和多模型切换。
准备工作
安装
# Node.js
npm install openai
# Python
pip install openai
配置
将 OpenAI SDK 的 baseURL 和 apiKey 替换为 CloudBase 的配置:
| 配置项 | 值 |
|---|---|
| baseURL | https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/<PROVIDER> |
| apiKey | 你的 CloudBase API Key |
支持的 Provider
| Provider | 说明 |
|---|---|
| cloudbase | 资源点套餐(统一入口,支持多种模型) |
Node.js 示例
非流式调用
const OpenAI = require("openai");
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});
async function main() {
const completion = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "你好" }],
temperature: 0.7
});
console.log(completion.choices[0].message.content);
}
main();
流式调用
const OpenAI = require("openai");
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});
async function main() {
const stream = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "介绍一下你自己" }],
stream: true
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || "";
process.stdout.write(content);
}
}
main();
Python 示例
非流式调用
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>",
base_url="https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
)
completion = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "你好"}],
temperature=0.7
)
print(completion.choices[0].message.content)
流式调用
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>",
base_url="https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
)
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "介绍一下你自己"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content or ""
print(content, end="", flush=True)
多轮对话
多轮对话需要在每次请求中维护完整的 messages 数组,详见多轮对话文档。
切换模型
只需修改 baseURL 中的 provider 和 model 参数即可切换不同模型:
// 使用 cloudbase(资源点套餐,推荐)
const cloudbaseClient = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});
await cloudbaseClient.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "你好" }]
});
支持的参数
| 参数 | 类型 | 说明 |
|---|---|---|
| model | string | 模型名称 |
| messages | array | 消息列表 |
| stream | boolean | 是否流式返回 |
| temperature | number | 采样温度 (0-2) |
| top_p | number | 核采样 (0-1) |
| max_tokens | number | 最大生成 token 数 |
| presence_penalty | number | 存在惩罚 |
| frequency_penalty | number | 频率惩罚 |
从 OpenAI 迁移
如果你的项目原本使用 OpenAI,迁移到 CloudBase 只需两步:
- 修改配置
// 原 OpenAI 配置
const client = new OpenAI({
apiKey: "sk-xxx" // OpenAI API Key
});
// 改为 CloudBase 配置
const client = new OpenAI({
apiKey: "<YOUR_CLOUDBASE_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});
- 修改模型名称
// 原 OpenAI 模型
model: "gpt-4"
// 改为 CloudBase 支持的模型
model: "deepseek-v4-flash" // 或其他已开启的模型
相关文档
如果你使用 Anthropic SDK,也可以通过同样的方式接入云开发,详见 Anthropic SDK 调用。
错误处理
const OpenAI = require("openai");
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://<ENV_ID>.api.tcloudbasegateway.com/v1/ai/cloudbase"
});
try {
const completion = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "你好" }]
});
console.log(completion.choices[0].message.content);
} catch (error) {
if (error instanceof OpenAI.APIError) {
console.error("API 错误:", error.status, error.message);
} else {
throw error;
}
}