SDK
OpenAI Node
使用官方 Node SDK 连接 UOUODUO Gateway,并处理流式输出和错误。
安装
npm install openai
export UOUODUO_API_KEY="sk-xxx..."客户端配置
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.UOUODUO_API_KEY,
baseURL: "https://api.example.com/v1",
});Chat Completions
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "你是一个简洁的生产环境助手。" },
{ role: "user", content: "给客服团队写一句回复模板。" },
],
});
console.log(response.choices[0]?.message?.content);Streaming
const stream = await client.chat.completions.create({
model: "gpt-4o-mini",
stream: true,
messages: [{ role: "user", content: "逐步解释网关路由。" }],
});
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}Embeddings
const vectors = await client.embeddings.create({
model: "text-embedding-3-small",
input: ["第一段", "第二段"],
});
console.log(vectors.data[0]?.embedding.length);错误处理
try {
await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "hello" }],
});
} catch (error) {
if (error instanceof OpenAI.APIError) {
console.error(error.status, error.code, error.message);
}
throw error;
}生产建议
- 服务端保存 `UOUODUO_API_KEY`,不要下发到浏览器。
- 每个环境使用单独 key,方便在 `/app/logs` 过滤。
- 对 streaming 请求设置超时和重试;中途断流时不要假设已经收到完整 usage。