Node.js SDK
SDKMAX 完全兼容 OpenAI 接口协议,在 Node.js / TypeScript 中直接使用官方 openai 包即可接入。
安装
bash
npm install openai初始化客户端
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-你的密钥", // 在 SDKMAX 控制台创建
baseURL: "https://api.sdkmax.com/v1",
});推荐用环境变量
bash
export OPENAI_API_KEY="sk-你的密钥"
export OPENAI_BASE_URL="https://api.sdkmax.com/v1"设置后 new OpenAI() 会自动读取,无需硬编码密钥。
对话补全
javascript
const resp = await client.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "system", content: "你是一个乐于助人的助手。" },
{ role: "user", content: "介绍一下 SDKMAX 的核心能力" },
],
});
console.log(resp.choices[0].message.content);流式输出
javascript
const stream = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "写一首关于 AI 网关的短诗" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}切换模型
javascript
for (const model of ["gpt-4o", "claude-opus-4-8", "deepseek-chat"]) {
const resp = await client.chat.completions.create({
model,
messages: [{ role: "user", content: "1+1等于几?" }],
});
console.log(model, "->", resp.choices[0].message.content);
}文本向量化(Embeddings)
javascript
const resp = await client.embeddings.create({
model: "text-embedding-3-small",
input: "SDKMAX 是企业级 AI 网关",
});
console.log(resp.data[0].embedding.length);生成图片
javascript
const resp = await client.images.generate({
model: "dall-e-3",
prompt: "一只在赛博朋克城市里骑摩托车的猫",
size: "1024x1024",
});
console.log(resp.data[0].url);详见 图片 API。
错误处理
javascript
import OpenAI from "openai";
try {
await client.chat.completions.create({ model: "gpt-4o", messages: [] });
} catch (err) {
if (err instanceof OpenAI.RateLimitError) {
// 429:额度耗尽或触发限流,建议退避重试
} else if (err instanceof OpenAI.APIError) {
console.error(err.status, err.message);
} else {
throw err;
}
}完整错误码含义见 错误码。
在浏览器端使用?
不建议在前端直接嵌入 API Key。前端应调用你自己的后端服务,由后端持有 Key 并转发到 SDKMAX,避免密钥泄露给终端用户。
