Node.js SDK 接入指南
本指南介绍如何使用 Node.js 的 OpenAI SDK 接入 Star API。
安装
bash
npm install openai或使用 yarn:
bash
yarn add openai或使用 pnpm:
bash
pnpm add openai提示
推荐使用 openai>=4.0.0 版本。确保您的 Node.js 版本 >= 18。
基本配置
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});使用环境变量管理 API Key:
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.STAR_API_KEY,
baseURL: "https://star.zhxyclaw.cn/v1",
});聊天补全
基本调用
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
async function main() {
const response = await client.chat.completions.create({
model: "gpt-5.4",
messages: [
{ role: "system", content: "你是一个有帮助的AI助手。" },
{ role: "user", content: "请用一句话解释什么是量子计算。" },
],
temperature: 0.7,
max_tokens: 200,
});
console.log(response.choices[0].message.content);
}
main();流式输出
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
async function main() {
const stream = await client.chat.completions.create({
model: "gpt-5.4",
messages: [
{ role: "user", content: "写一首关于月亮的七言绝句。" },
],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) {
process.stdout.write(content);
}
}
console.log();
}
main();多轮对话
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
const messages = [
{ role: "system", content: "你是一个友好的AI助手,用中文回答问题。" },
];
async function chat(userMessage) {
messages.push({ role: "user", content: userMessage });
const response = await client.chat.completions.create({
model: "gpt-5.4",
messages,
temperature: 0.7,
});
const assistantMessage = response.choices[0].message.content;
messages.push({ role: "assistant", content: assistantMessage });
return assistantMessage;
}
// 使用
async function main() {
console.log(await chat("你好,我叫小明。"));
console.log(await chat("你还记得我的名字吗?"));
}
main();使用不同模型
javascript
// 使用 Claude
const claudeResponse = await client.chat.completions.create({
model: "claude-sonnet-5",
messages: [{ role: "user", content: "你好!" }],
});
// 使用 DeepSeek
const deepseekResponse = await client.chat.completions.create({
model: "deepseek-v4-pro",
messages: [{ role: "user", content: "你好!" }],
});
// 使用 Gemini
const geminiResponse = await client.chat.completions.create({
model: "gemini-3.1-pro-preview",
messages: [{ role: "user", content: "你好!" }],
});图像生成
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
const response = await client.images.generate({
model: "dall-e-3",
prompt: "一只可爱的橘猫在阳光下打盹",
n: 1,
size: "1024x1024",
quality: "standard",
});
console.log("图片 URL:", response.data[0].url);文本嵌入
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
const response = await client.embeddings.create({
model: "text-embedding-3-small",
input: "Star API 是一个统一的大模型接口网关",
});
const embedding = response.data[0].embedding;
console.log(`向量维度:${embedding.length}`);语音转文字
javascript
import OpenAI from "openai";
import fs from "fs";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
const transcription = await client.audio.transcriptions.create({
model: "whisper-1",
file: fs.createReadStream("audio.mp3"),
language: "zh",
});
console.log(transcription.text);文字转语音
javascript
import OpenAI from "openai";
import fs from "fs";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
const response = await client.audio.speech.create({
model: "tts-1",
input: "你好,欢迎使用 Star API!",
voice: "alloy",
response_format: "mp3",
});
const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync("output.mp3", buffer);
console.log("音频已保存为 output.mp3");错误处理
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://star.zhxyclaw.cn/v1",
});
async function main() {
try {
const response = await client.chat.completions.create({
model: "gpt-5.4",
messages: [{ role: "user", content: "你好!" }],
});
console.log(response.choices[0].message.content);
} catch (error) {
if (error instanceof OpenAI.AuthenticationError) {
console.error("API Key 无效,请检查您的密钥。");
} else if (error instanceof OpenAI.RateLimitError) {
console.error("请求频率过高,请稍后重试。");
} else if (error instanceof OpenAI.APIError) {
console.error(`API 错误:${error.message}`);
} else {
console.error(`未知错误:${error.message}`);
}
}
}
main();下一步
- Python 接入指南 — Python SDK 示例
- curl 示例 — 命令行调用示例
- API 文档 — 完整的 API 参考
