AI News HubLIVE
站内改写1 分钟阅读

Vercel AI 网关在账户余额为零时似乎阻止 BYOK 请求

当 AI 网关积分耗尽时,所有请求都会被阻止,包括使用自带密钥(BYOK)的请求,这与文档描述不符。

来源Hacker News AI作者: kaicianflone

当 AI 网关积分耗尽(余额为零)时,所有请求都会被阻止——包括那些应使用自带密钥(BYOK)凭据的请求。无论 BYOK 是通过仪表盘集成(已验证的“测试密钥”功能正常工作)还是通过代码中的 providerOptions.byok 配置,都会发生这种情况。

预期行为

当 BYOK 凭据已配置(通过仪表盘或 providerOptions.byok)时,请求应直接使用这些凭据路由到提供商,无需 AI 网关积分。 文档指出: > “使用您自己的凭据与外部 AI 提供商交互,AI 网关可以代表您进行身份验证,且不增加额外费用。” 这意味着 BYOK 应完全绕过积分系统。

实际行为

所有请求失败并显示:

余额不足。请向账户充值以继续使用 AI 服务。

即使:

  1. 在仪表盘中配置了 BYOK 集成且“测试密钥”通过
  2. 在请求中显式设置了 providerOptions.byok

复现步骤

  1. 在 Vercel 仪表盘(AI 网关 → 集成)中配置 BYOK 集成
  2. 使用“测试密钥”功能验证密钥是否正常 ✓
  3. 将 AI 网关积分耗尽至 $0
  4. 使用 createGateway() 发起请求:
import { createGateway, generateText } from "ai";

const gateway = createGateway();

// 方法1:依赖仪表盘 BYOK 配置
const response1 = await generateText({
model: gateway("anthropic/claude-3-5-haiku-latest"),
prompt: "Hello",
});

// 方法2:通过 providerOptions 显式 BYOK
const response2 = await generateText({
model: gateway("anthropic/claude-3-5-haiku-latest"),
prompt: "Hello",
providerOptions: {
gateway: {
byok: {
anthropic: [{ apiKey: process.env.ANTHROPIC_API_KEY }],
},
},
},
});

两者均失败并显示“余额不足”错误。

验证

API 密钥有效——直接调用提供商工作正常:

import { anthropic } from "@ai-sdk/anthropic";
import { generateText } from "ai";

// 此调用完美运行
const response = await generateText({
model: anthropic("claude-3-5-haiku-latest"),
prompt: "Hello",
});

环境

  • ai 包版本:6.0.0-beta.128
  • @ai-sdk/gateway:最新
  • Node.js:v25.2.1

影响

以下用户:

  • 设置 BYOK 以避免 Vercel 积分费用
  • 拥有有效提供商 API 密钥且有可用配额
  • AI 网关积分耗尽(即使是意外)

……完全无法使用 AI 网关,这与 BYOK 的初衷相悖。

建议修复

当满足以下条件时应跳过积分检查:

  1. 在仪表盘中为所请求的提供商配置了有效 BYOK 凭据
  2. providerOptions.byok 包含所请求提供商的有效凭据

网关仅在使用 Vercel 系统凭据时应要求积分。