JavaScript
JavaScript 是在 Node.js 环境中接入 零派智能API 的常用方式。通过官方 openai npm 包,你可以快速完成 API 调用。
安装 SDK
使用 npm 或你喜欢的包管理器安装 OpenAI Node.js SDK:
npm install openai需要 Node.js 18 或更高版本。
配置 Client
通过环境变量配置 API Key 和 Base URL:
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();