GetAiApiKey/生产环境 AI API 检查清单
AI API 密钥测试器:30 秒检查密钥
你不需要一个网站充当 ai api 密钥测试器。一次 curl 调用或六行 Python 代码即可告诉你密钥是否有效、模型是否响应以及剩余多少余额。
更新于

要点
- 首先调用 GET /v1/models:它证明密钥和 base URL 有效,且不会在补全请求中消耗 token。
- 一次单 token 聊天调用证明模型有效,X-Balance-USD 显示你的余额。
- 不要将正在使用的密钥粘贴到未知的在线检测器中;请在本地进行测试。
- 常见故障源于错误的 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、密钥末尾有空格以及使用了旧的环境变量。