跳到主要内容

Vercel AI SDK

Vercel AI SDK 是用于构建 AI 应用流程的 TypeScript 工具包,涵盖文本生成、流式 UI 响应、工具调用和结构化输出。在 AISIX 部署中,应用可以继续使用 AI SDK 的辅助函数,同时将模型服务提供方配置指向网关。

兼容 OpenAI 的服务提供方包允许 Vercel AI SDK 使用 API Key 调用自定义基础 URL。当 TypeScript 应用需要通过 AISIX 发送模型请求时,请使用该服务提供方。

本指南使用 AI SDK 核心包和 @ai-sdk/openai-compatible。你将创建一个指向 AISIX 的兼容 OpenAI 服务提供方,并在应用代码中使用 AISIX 模型别名。

前置条件

开始前,请准备以下内容:

  • 应用的 TypeScript 项目。
  • 一个代理监听器可用的运行中 AISIX 网关。
  • 一个 AISIX 调用方 API Key。
  • 一个可通过兼容 OpenAI 的 API访问的模型别名。

配置 Vercel AI SDK

如果应用尚未包含 AI SDK 包,请先安装:

npm install ai @ai-sdk/openai-compatible

设置应用要使用的值:

# Replace with your values
export AISIX_BASE_URL="http://127.0.0.1:3000/v1"
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
export AISIX_MODEL="gpt-4o-prod"

为 AISIX 创建兼容 OpenAI 的服务提供方:

import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";

const aisix = createOpenAICompatible({
name: "aisix",
apiKey: process.env.AISIX_API_KEY,
baseURL: process.env.AISIX_BASE_URL,
});

async function main() {
const { text } = await generateText({
model: aisix(process.env.AISIX_MODEL ?? "gpt-4o-prod"),
prompt: "Write one sentence about model governance.",
});

console.log(text);
}

main();

模型值应填写 AISIX 模型别名,而不是上游服务提供方模型 ID。AISIX 负责模型请求路径:验证调用方 API Key、解析别名、应用策略、记录遥测数据,并将请求分发到别名背后的服务提供方。应用仍负责 UI 流式输出、工具编排和响应处理。

验证路由

在已设置 AISIX 环境变量的 Shell 中运行应用。

请求成功后,请确认以下结果:

  • 应用输出生成的文本。
  • AISIX 为所选模型别名记录一条成功的 POST /v1/chat/completions 请求。

如果使用 AISIX Cloud 或私有化部署的托管控制面,请在托管网关日志中验证请求。对于自托管网关,请使用已配置的日志、指标或上游服务提供方日志。

处理兼容性问题

如果请求失败,请先确认调用方 API Key 可以访问所选模型别名,且 baseURL 指向包含 /v1 的 AISIX 代理 API 根路径。

本指南使用聊天式文本生成。使用其他 AI SDK 辅助函数(如流式响应、工具调用或结构化输出)前,请验证对应路径,再依赖其网关策略或遥测数据。

后续步骤