精彩小说尽在零点看书网!

零点看书网 > 都市 > KingFlow AI API中转站接入 Vercel AI SDK 教程

KingFlow AI API中转站接入 Vercel AI SDK 教程

KingFlow AI API中转站接入 Vercel AI SDK 教程

佚名 著

都市连载

KingFlow AI API中转站接入 Vercel AI SDK 教程 使用 TypeScript 实现文本生成 流式响应与结构化输出 Vercel AI SDK 为 TypeScript 应用提供统一的文本生成、流式响应和结构化输出接口。KingFlow AI 提供 OpenAI Chat Completions 兼容端点,可通过 createOpen

主角:   更新:2026-11-06 11:43:44

继续看书

扫描二维码手机上阅读

二维码
  • 读书简介
  • 免费章节在线阅读

男女主角分别是的都市小说《KingFlow AI API中转站接入 Vercel AI SDK 教程》,由网络作家“佚名”所著,讲述一系列精彩纷呈的故事,本站纯净无弹窗,精彩内容欢迎阅读!小说详情介绍:KingFlow AI API中转站接入 Vercel AI SDK 教程 使用 TypeScript 实现文本生成 流式响应与结构化输出 Vercel AI SDK 为 TypeScript 应用提供统一的文本生成、流式响应和结构化输出接口。KingFlow AI 提供 OpenAI Chat Completions 兼容端点,可通过 createOpen

《KingFlow AI API中转站接入 Vercel AI SDK 教程》精彩片段

KingFlow AI API中转站接入 Vercel AI SDK 教程

使用 TypeScript 实现文本生成 流式响应与结构化输出

Vercel AI SDK 为 TypeScript 应用提供统一的文本生成、流式响应和结构化输出接口。KingFlow AI 提供 OpenAI Chat Completions 兼容端点,可通过 createOpenAICompati*le 显式配置 *ase **L、API Key 和模型 ID。本文从基础请求开始,依次完成 generateText、streamText 与 Zod 结构化输出,并说明超时、重试、用量、安全和故障排查。

Claude中转、Claude中转站、API中转和API中转站的实际接入均需核对协议与模型权限。

内容核验日期 2026-11-06

Vercel AI SDK 接入 KingFlow AI 三维架构

常用接入术语

名称常见含义使用提示
Claude中转把请求转发到可用 Claude 模型的接入方式核对协议和模型权限
Claude中转站提供 Claude 密钥、额度和路由管理的平台Claude 客户端通常关注 Anthropic 协议
API中转通过兼容接口转发不同模型请求AI SDK 使用 OpenAI 兼容 Provider 接入
API中转站提供统一 API 接入、模型选择和用量管理的服务需要核对协议和端点格式

接入架构

环节职责注意事项
Node.js 应用保存业务输入、提示和结果处理逻辑密钥不写入源码
AI SDK Core提供 generateText、streamText 和 Output统一调用接口
兼容 Provider配置 *ase **L、API Key 和模型 ID使用 createOpenAICompati*le
Zod 结构**返回字段并执行运行时校验先确认模型支持结构化输出
KingFlow AI认证密钥并路由模型请求*ase **L 填写到 /v1
目标模型生成签名要求的结构化结果完整模型 ID 以控制台为准

接入优势

  • generateText 适合一次性生成,streamText 适合聊天和实时界面,两者共享同一个模型实例。
  • createOpenAICompati*le 可以显式设置 *ase **L 与密钥,避免把兼容端点误当成其他协议。
  • Output.o*ject 与 Zod 结合后可获得类型安全的对象,并在运行时验证字段形态。
  • AI SDK 的模型抽象让提示、模型和输出处理保持分离,便于测试与替换。
  • KingFlow 控制台集中管理模型、密钥和用量,便于隔离不同环境。

开始前的准备

  • 准备 Node.js 18 或更高版本,并安装 pnpm。
  • 在 KingFlow AI 控制台创建以 sk- 开头的 API Key,确认余额和模型分组可用。
  • 复制目标模型的完整模型 ID,并确认上下文窗口满足待处理文档长度。
  • 准备少量脱敏测试文本,首次联调不要直接加载生产知识库。
  • 确认运行环境可以访问 api.**nju**shen.com。

创建 Vercel AI SDK 测试项目

mkdir kingflow-ai-sdk-demo
cd kingflow-ai-sdk-demo
pnpm init
pnpm add ai @ai-sdk/openai-compati*le zod dotenv
pnpm add -D tsx typescript @types/node

验证 KingFlow 基础接口

先验证端点、密钥和模型;基础请求失败时不要继续排查 AI SDK 代码。

curl https://api.**nju**shen.com/v1/chat/completions \
  -H "Authorization: *earer sk-你的密钥" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<KingFlow控制台中的完整模型ID>",
    "messages": [{"role": "user", "content": "只回复 AI_SDK_READY"}],
    "stream": false
  }'

配置环境变量

KINGFLOW_*ASE_**L=https://api.**nju**shen.com/v1
KINGFLOW_API_KEY=sk-你的密钥
KINGFLOW_MODEL=<KingFlow控制台中的完整模型ID>
.env
node_modules/
dist/
.vercel/

编写文本生成示例

使用 createOpenAICompati*le 连接 KingFlow,再通过 generateText 生成文本。

import "dotenv/config";
import { createOpenAICompati*le } from "@ai-sdk/openai-compati*le";
import { generateText, streamText, Output } from "ai";
import { z } from "zod";

const kingflow = createOpenAICompati*le({
  name: "kingflow",
  *ase**L: process.env.KINGFLOW_*ASE_**L!,
  apiKey: process.env.KINGFLOW_API_KEY!,
});

const model = kingflow(process.env.KINGFLOW_MODEL!);
const { text, usage, finishReason } = await generateText({
  model,
  system: "你是上线**助手,结论必须简洁可执行。",
  prompt: "只回复 AI_SDK_CONNECTED,然后给出两项上线检查。",
  temperature: 0.2,
  **xOutputTokens: 600,
  a*ortSignal: A*ortSignal.timeout(60_000),
});

console.log(text);
console.log({ usage, finishReason });

增加流式输出

生产代码要处理超时、客户端取消和 onError。

const result = streamText({
  model,
  prompt: "用三点说明 API 中转服务的上线验收方法。",
  **xOutputTokens: 600,
  a*ortSignal: A*ortSignal.timeout(60_000),
  onError({ error }) {
    console.error("stream error", error);
  },
});

for await (const part of result.textStream) {
  process.stdout.write(part);
}

增加结构化输出

Output.o*ject 与 Zod 会验证返回对象;若目标模型不支持,应退回普通文本并自行解析。

const { output } = await generateText({
  model,
  output: Output.o*ject({
    sche**: z.o*ject({
      checks: z.array(z.string()),
      risks: z.array(z.string()),
      verdict: z.enum(["pass", "review"]),
    }),
  }),
  prompt: "**:密钥已隔离,额度已设置,尚未配置 429 重试。",
});

console.log(output);
Vercel AI SDK 流式与结构化治理流程三维图
图二 Vercel AI SDK 流式响应、结构校验、限流、重试和审计治理。AI 生成示意图。

运行和验证

pnpm tsx src/**in.ts
  1. 先执行 KingFlow 基础请求,确认返回 AI_SDK_READY。
  2. 创建 .env 和 .gitignore,再将基础示例保存为 src/**in.ts。
  3. 运行程序,确认 generateText 返回 AI_SDK_CONNECTED。
  4. 分别验证 streamText 的增量文本和 Output.o*ject 的三个字段。
  5. 在 KingFlow 控制台核对模型、密钥、调用次数和 Token 用量。
检查点预期结果判断依据
基础接口返回 AI_SDK_READY端点、密钥和模型可用
文本生成返回 AI_SDK_CONNECTED兼容 Provider 配置生效
流式响应终端逐段出现文本textStream 可以消费
结构化字段返回 checks、risks 和 verdictZod 对象通过校验
结果约束verdict 为 pass 或 review字段描述和任务说明生效
平台记录控制台出现对应调用模型、密钥与用量符合预期

正式环境配置

  • 使用 @ai-sdk/openai-compati*le,显式固定 OpenAI 兼容 *ase **L 与 *earer 密钥。
  • 结构化输出依赖目标模型能力;不支持时改用 generateText 返回普通文本,再在应用层解析和校验。
  • A*ortSignal.timeout 只限制单次请求;生产环境还要设置并发、队列和总体任务时限。
  • 流式响应必须处理客户端断开与 onError,不能只依赖正常结束路径。
  • 为 429 和 503 设置有限退避重试,并同时限制并发、请求时长和 Token 预算。
  • 记录查询 ID、文档版本、模型、状态码、耗时和用量,但不要记录完整密钥和敏感原文。

文档与密钥安全

  • 只在 .env、密钥管理器或部署平台 Secret 中保存 API Key,并定期轮换。
  • 把输入样本和模型输出视为不可信数据,进入日志或评估集前完成脱敏。
  • 测试提示、演示数据和生产输入分开管理,样例进入文档前先完成脱敏。
  • 保存追踪记录或演示结果时检查敏感字段,禁止把真实密钥写入 artifact。
  • 为开发、测试和生产设置独立密钥、额度和告警,异常用量出现后立即停用旧密钥。

上线检查清单

  • 基础接口已经返回 AI_SDK_READY。
  • KINGFLOW_*ASE_**L 为 https://api.**nju**shen.com/v1。
  • KINGFLOW_MODEL 使用控制台中的完整模型 ID。
  • createOpenAICompati*le 已设置 *ase **L、密钥和模型 ID。
  • .env 已被 .gitignore 排除,仓库中没有明文密钥。
  • generateText 已返回文本、结束原因和可用的 usage 数据。
  • streamText 已能增量输出,并处理错误和取消。
  • Output.o*ject 已返回 checks、risks 和 verdict。
  • 已确认目标模型支持结构化输出,或准备了普通文本回退方案。
  • KingFlow 控制台的模型、密钥和用量符合预期。

常见故障排查

现象常见原因处理方法
返回 401密钥错误、停用或 .env 未加载检查变量名与文件位置,必要时重新创建密钥
返回 404*ase **L 或模型 ID 错误保留 /v1,并复制控制台中的完整模型 ID
返回 429额度不足、余额不足或请求过快检查用量并降低并发,采用有限退避
返回 503模型通道暂时不可用稍后有限重试或切换已开通模型
Provider 初始化失败*ase **L、密钥或环境变量缺失检查 .env 与变量名,*ase **L 保留 /v1
结构化解析失败模型不支持结构化输出或字段不稳定更换模型或退回 generateText 后自行校验
流式响应中断客户端断开、超时或上游通道波动捕获 onError,并实现取消和有限重试
用量为空兼容服务未返回完整 usage 字段以平台记录为准,代码允许 usage 缺省
上下文超长提示和历史消息超过模型限制裁剪历史、分段处理并限制输出 Token
API Key 和模型 ID 均为占位示例。请替换为自己的配置,并先在测试环境验证。