跳转到内容
返回主站

JavaScript

JavaScript 是在 Node.js 环境中接入 零派智能API 的常用方式。通过官方 openai npm 包,你可以快速完成 API 调用。

安装 SDK

使用 npm 或你喜欢的包管理器安装 OpenAI Node.js SDK:

Terminal window
npm install openai

需要 Node.js 18 或更高版本。

配置 Client

通过环境变量配置 API Key 和 Base URL:

Terminal window
export API_KEY="sk-your-api-key"
export BASE_URL="https://your-domain.com/v1"
export MODEL="gpt-4o"

在代码中初始化客户端:

import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: process.env.BASE_URL,
});

如果使用 CommonJS,请用 const OpenAI = require("openai").default;。

Chat Completions 示例

import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: process.env.BASE_URL,
});
async function main() {
const response = await client.chat.completions.create({
model: process.env.MODEL,
messages: [
{ role: "system", content: "你是一个有帮助的助手。" },
{ role: "user", content: "用一句话解释什么是 API。" },
],
});
console.log(response.choices[0].message.content);
}
main();

流式响应示例

import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: process.env.BASE_URL,
});
async function main() {
const stream = await client.chat.completions.create({
model: process.env.MODEL,
messages: [
{ role: "user", content: "写一首关于秋天的诗。" },
],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || "";
process.stdout.write(content);
}
}
main();

使用 fetch 的替代方案

如果你不想安装额外的依赖,可以直接使用 Node.js 内置的 fetch API:

async function chatCompletion() {
const response = await fetch(
`${process.env.BASE_URL}/chat/completions`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.API_KEY}`,
},
body: JSON.stringify({
model: process.env.MODEL,
messages: [
{ role: "user", content: "用一句话解释什么是 API。" },
],
}),
}
);
const data = await response.json();
console.log(data.choices[0].message.content);
}
chatCompletion();

使用 fetch 时,BASE_URL 环境变量应包含 /v1 后缀(例如 https://your-domain.com/v1),因为 fetch 不会自动拼接路径。

查看可用模型

import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: process.env.BASE_URL,
});
async function main() {
const models = await client.models.list();
for await (const model of models) {
console.log(model.id);
}
}
main();