中文 ▾
获取 API 密钥

GetAiApiKey生产环境 AI API 检查清单

AI API 密钥测试器:30 秒检查密钥

你不需要一个网站充当 ai api 密钥测试器。一次 curl 调用或六行 Python 代码即可告诉你密钥是否有效、模型是否响应以及剩余多少余额。

更新于

插入带有三个绿色指示灯的控制台的密钥,代表 API 密钥检查

要点

  1. 首先调用 GET /v1/models:它证明密钥和 base URL 有效,且不会在补全请求中消耗 token。
  2. 一次单 token 聊天调用证明模型有效,X-Balance-USD 显示你的余额。
  3. 不要将正在使用的密钥粘贴到未知的在线检测器中;请在本地进行测试。
  4. 常见故障源于错误的 base URL、缺少 Bearer 前缀或限制。

为什么要在本地而不是网页上测试

搜索 AI API 密钥测试器会显示许多页面,你只需在其中粘贴密钥并点击按钮。请避免使用它们。密钥是一种会消耗你资金的密码,而你无法知道这样的页面会如何处理该密钥。下面的测试只需半分钟,在本地机器上运行,并且仅将密钥发送到你想要使用的 API。

你需要三样东西:密钥、base URL https://api.getaiapikey.com/v1 和模型 ID uncensored。将密钥放入环境变量中,以免它出现在你的 shell 历史或你可能提交的文件中。

export API_KEY="paste-your-key-here"

密钥来自API 密钥页面。如果你还没有密钥,新用户注册后只需点击一次即可领取 $0.50 的试用额度,这足以让本文中的每一项测试都重复执行多次。

检查 1:使用 curl 列出模型

最便宜的测试是模型列表。它需要有效的密钥和正确的 base URL,且不会生成任何文本。

curl -i https://api.getaiapikey.com/v1/models \
  -H "Authorization: Bearer $API_KEY"

-i 标志会打印响应头。健康的响应以 HTTP/2 200 开头,且 JSON 正文包含模型 ID uncensored。如果看到认证错误(通常是 401 状态码),则密钥错误、复制时带有尾随空格,或者请求头缺少 Bearer 关键字。404 表示 URL 错误,最常见的原因是缺少 /v1 或重复了该路径。

检查 2:运行一次真实的补全

密钥有效也可能在真实请求中失败,例如余额为空。因此发送一个简短的对话请求,并将输出限制在上限,使成本接近零:

curl -i https://api.getaiapikey.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","max_tokens":5,"messages":[{"role":"user","content":"Say ok."}]}'

在读取正文之前先查看响应头。X-Request-Id 用于标识该请求,这也是技术支持人员要求提供的信息。X-Balance-USD 显示剩余额度。X-RateLimit-Limit-Requests 和 X-RateLimit-Limit-Concurrency 揭示了密钥的限制:完整密钥为 300 和 8,试用密钥为 60 和 2。因此,仅这一项调用即可检查认证、模型、余额和密钥类型。

测试的成本可忽略不计。约 10 个 token 的提示词和 5 个 token 的回复成本为 10 x $0.15 / 1M + 5 x $0.50 / 1M,即约 $0.000004。失败或被拒绝的请求根本不收费。

检查 3:Python 中的相同测试

如果你的实际代码使用 Python,请按照代码运行方式来测试。此脚本使用了官方的 openai 包,因此如果此处测试通过,说明你的应用程序配置也能正常工作:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.getaiapikey.com/v1",
    api_key=os.environ["API_KEY"],
)

raw = client.chat.completions.with_raw_response.create(
    model="uncensored",
    max_tokens=5,
    messages=[{"role": "user", "content": "Say ok."}],
)
print("status:", raw.status_code)
print("balance:", raw.headers.get("X-Balance-USD"))
print("req/min limit:", raw.headers.get("X-RateLimit-Limit-Requests"))
print("concurrency limit:", raw.headers.get("X-RateLimit-Limit-Concurrency"))
print("reply:", raw.parse().choices[0].message.content)

with_raw_response 包装器允许访问响应头,而 parse() 返回通常的响应对象。如果导入失败,Python 环境配置请参考 如何在 Python 中安装 LLM 客户端。

在不进行补全的情况下检查余额

要在不生成文本的情况下读取余额,调用其中一个余额接口。有一个 OpenAI 风格的接口和一个简短的接口:

curl https://api.getaiapikey.com/v1/balance \
  -H "Authorization: Bearer $API_KEY"

curl https://api.getaiapikey.com/v1/dashboard/billing/credit_grants \
  -H "Authorization: Bearer $API_KEY"

已经期望 OpenAI 信用额度格式的工具可以直接使用第二条路径。将此类调用添加到监控脚本中,你可以在生产环境机器人耗尽额度前收到警告。充值最低金额为 $20,且额度永不过期,因此保留充足的余额没有任何损失。金额和奖励详情见定价页面。

将测试变为健康检查

密钥验证通过后,请保留该测试。一个定期运行的小脚本可以在用户发现之前,告诉你部署出错、密钥过期或余额不足。以下是使用内置 fetch 的 Node.js 版本(Node 18 或更高版本):

const base = "https://api.getaiapikey.com/v1";

async function check() {
  const res = await fetch(`${base}/chat/completions`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "uncensored",
      max_tokens: 5,
      messages: [{ role: "user", content: "Say ok." }],
    }),
  });
  const balance = Number(res.headers.get("X-Balance-USD"));
  console.log(res.status, "balance:", balance);
  if (res.status >= 400 || balance < 5) process.exitCode = 1;
}

check();

当调用失败或余额低于 $5 时,脚本以非零代码退出,因此 cron 作业或 CI 步骤可以向你发出警报。根据你的燃烧率选择阈值:每天 $2,$5 给你略多于两天的警告。

通过的测试不能证明什么

绿色对勾显示在低负载下,身份验证、路由和模型在该时刻有效。它不显示你的应用程序在 20 个用户同时使用时的行为。为此,请记住限制:完整密钥同时运行 8 个请求,流式请求在流结束前保留其槽位。在发布前,使用并行调用上限对代码进行负载测试。

读取故障

你看到的内容最可能的原因该做什么
身份验证错误,通常为 401密钥错误、多余空格、无 Bearer 前缀重新复制密钥,检查标头字符串
404 或 HTML 而非 JSON错误的基础 URL请严格使用 https://api.getaiapikey.com/v1
未找到模型请求中的模型 ID 不同将 model 设置为 uncensored
429 状态码配合 rate_limited 或 concurrency每分钟请求过多或同时请求过多等待,然后延迟重试
429 且带有 Retry-After: 5临时过载等待 5 秒并重试
连接或超时错误网络、代理或防火墙从其他网络测试,检查代理变量

超过 8 MB 的请求会被拒绝,因此如果只有大型调用失败,请检查请求体大小。文档列出了所有错误代码和响应头。

处理密钥的良好习惯

  • 将密钥保存在环境变量或密钥存储中,切勿保存在客户端代码、公共存储库或截图中。
  • 尽可能为每个应用使用一个密钥,以便在泄露时易于追踪和替换。
  • 如果密钥可能已泄漏,请替换它,然后查看余额以查找意外支出。
  • 不要在多个程序之间共享试用密钥:使用 2 个并发请求时,它会很快达到速率限制。

如果你只想在注册前查看是否存在免费选项,关于免费 LLM API 密钥的文章解释了可用内容。否则,上述三项检查已足以完成密钥测试。

问答

有官方的在线密钥测试工具吗?

不需要。通过 GET /v1/models 加上一次小型聊天调用,从你自己的机器上运行,即可验证密钥、模型和余额,而无需将密钥暴露给第三方。

测试密钥需要花钱吗?

设置 max_tokens 为 5 的简短调用成本约为几美元的一百万分之一。失败或被拒绝的请求不会收费。

如何区分试用密钥和完整密钥?

读取 X-RateLimit-Limit-Requests 和 X-RateLimit-Limit-Concurrency 响应头。试用密钥显示 60 和 2,完整密钥显示 300 和 8。

我的密钥在 curl 中有效,但在应用中无效。为什么?

将应用中的 Base URL、模型 ID 和 Authorization 头与 curl 调用进行比较。常见原因包括缺少 /v1、密钥末尾有空格以及使用了旧的环境变量。

只差一张表单,即可获得密钥

创建账户,复制密钥,更改基础 URL。这就是全部设置。