Node.js 示例
Panda World 兼容官方 OpenAI Node.js SDK。安装后只需更改 baseURL 即可使用。
安装
cURL
npm install openai基本聊天补全
Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.pandaworld.space/v1",
apiKey: "sk-your-key-here",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Explain quantum computing in 3 sentences." },
],
temperature: 0.7,
max_tokens: 200,
});
console.log(response.choices[0].message.content);流式响应
Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.pandaworld.space/v1",
apiKey: "sk-your-key-here",
});
const stream = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "Write a short poem." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}环境变量
cURL
export PANDA_API_KEY="sk-your-key-here"Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.pandaworld.space/v1",
apiKey: process.env.PANDA_API_KEY,
});错误处理
Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.pandaworld.space/v1",
apiKey: "sk-your-key-here",
});
try {
const response = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "Hello!" }],
});
} catch (error) {
if (error instanceof OpenAI.AuthenticationError) {
console.error("Invalid API key");
} else if (error instanceof OpenAI.RateLimitError) {
console.error("Rate limit exceeded");
} else {
console.error("API error:", error.message);
}
}多轮对话
Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.pandaworld.space/v1",
apiKey: "sk-your-key-here",
});
const messages = [
{ role: "system", content: "You speak like a pirate." },
{ role: "user", content: "What's the weather like?" },
];
// First turn
const res1 = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages,
});
messages.push(res1.choices[0].message);
messages.push({ role: "user", content: "Recommend a good ship." });
// Second turn with history
const res2 = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages,
});
console.log(res2.choices[0].message.content);TypeScript
OpenAI SDK 包含完整的 TypeScript 类型定义:
TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.pandaworld.space/v1",
apiKey: process.env.PANDA_API_KEY!,
});
// Response is fully typed
const response: OpenAI.Chat.Completions.ChatCompletion =
await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.usage?.total_tokens);