OpenAI SDK 快速开始
本页通过 OpenAI SDK 示例说明如何把 SDK 的 base URL 指向 AISIX,并使用调用方 API Key 访问模型别名。
本指南会把官方 OpenAI SDK 指向 AISIX AI 网关,而不是直接向上游服务提供方 发送请求。这种方式适合已经使用兼容 OpenAI Chat Completions 格式、并希望尽量少改客户端代码的应用。
示例会使用调用方 API Key 向 AISIX 认证,把请求发送到 AISIX 代理 API 根路径,使用 AISIX 模型别名,并接收兼容 OpenAI 的 Chat Completions 响应。只要配置的模型别名和服务提供方支持对应请求格式,上游服务提供方仍可在网关后切换。
准备工作
- 完成自托管快速开始。
- 安装 Node.js 20 LTS 或更新版本,并确保包含
npm。
配置 SDK
创建一个小型 Node.js 项目,安装 SDK,并将其指向 AISIX 代理 API 根路径。
安装 SDK
创建一个小型演示项目:
mkdir aisix-openai-demo && cd aisix-openai-demo
npm init -y
在演示项目中安装 OpenAI SDK:
npm install openai
设置示例要使用的网关参数:
export AISIX_API_KEY="sk-demo-caller"
export AISIX_MODEL="gpt-4o-mini"
export AISIX_BASE_URL="http://127.0.0.1:3000/v1"
创建聊天示例
使用 .mjs 扩展名,这样 Node 无需额外配置即可把顶层 await 和 import 当作 ES 模块处理。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.AISIX_API_KEY,
baseURL: process.env.AISIX_BASE_URL,
});
const response = await client.chat.completions.create({
model: process.env.AISIX_MODEL ?? "gpt-4o-mini",
messages: [{ role: "user", content: "Say hello from AISIX." }],
});
console.log(response.choices[0]?.message.content);
运行示例
在演示项目中运行聊天示例:
node openai-sdk-example.mjs
你应该会看到一段简短的助手回复。具体文本取决于上游模型。
当网关能够解析 gpt-4o-mini 且上游服务提供方可访问时,SDK 会返回包含助手消息的标准 OpenAI Chat Completions 对象。AISIX 会解析模型别名,并在调用上游服务提供方前注入已保存的服务提供方凭证。
流式响应
同一个 baseURL 也适用于流式响应。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.AISIX_API_KEY,
baseURL: process.env.AISIX_BASE_URL,
maxRetries: 0,
});
const stream = await client.chat.completions.create({
model: process.env.AISIX_MODEL ?? "gpt-4o-mini",
messages: [{ role: "user", content: "Stream a short greeting." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
在演示项目中运行流式响应示例:
node openai-sdk-streaming.mjs
你应该会看到终端中持续打印流式文本。
生产环境配置模式
在大多数部署中,应用代码只需要网关 base URL、调用方 API Key 和 AISIX 模型别名。上游凭证、服务提供方 base URL、上游模型 ID、路由策略、限流、安全护栏和可观测性挂钩都保留在网关后。
这种解耦让你可以轮换服务提供方凭证、变更上游模型 ID,或新增网关策略,而无需修改 SDK 调用点。
如果 SDK 请求失败
首先确认 SDK 使用了主快速开始中已经验证可用的网关参数:调用方 API Key、网关 base URL 和 AISIX 模型别名。
如果 SDK 仍然把流量直接发送到 OpenAI,请检查 baseURL。它必须指向 AISIX 代理 API 根路径,而不是上游 OpenAI API URL。
如果 AISIX 返回 404,说明请求的模型别名未配置。如果 AISIX 返回 403,说明调用方 API Key 已存在,但没有权限使用该别名。
下一步
你已经通过 OpenAI SDK 客户端调用了 AISIX。接下来可阅读兼容 OpenAI 的 API了解代理行为。关于 SSE 响应和工具定义, 参见流式响应和工具调用。如果应用需要 Claude 风格请求,请继续阅读 Anthropic SDK 快速开始。