Janitor AI API 密钥无法使用:逐步修复
如果你的 Janitor AI API 密钥无法使用,问题几乎总是出在五个字段之一或密钥背后的账户中。按顺序执行以下步骤,无需猜测即可找到问题。
更新于


步骤 1:确认密钥有效
将 Janitor AI 排除在外。在终端中运行此命令,替换 YOUR_KEY:
curl -i https://api.nofilterapi.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}]}'
200 状态码和 choices 数组表示密钥、URL 和模型名称均正确。X-Balance-USD 标头显示你的剩余额度。如果此测试成功,请跳转到第 3 步,因为问题出在 Janitor AI 的配置上。如果失败,状态码会告诉你需要修复什么,第 2 步中的表格将代码与原因对应起来。
没有终端?任何可以发送带标头的 POST 请求的 API 测试工具都能完成同样的工作。
步骤 2:读取状态码
| 状态或消息 | 含义 | 修复方法 |
|---|---|---|
| 401 | 密钥未被接受 | 从密钥页面重新复制密钥;删除空格;检查标头是否为 Bearer 后跟密钥 |
| 404 | URL 路径不存在 | 精确使用 https://api.nofilterapi.com/v1/chat/completions,不要添加额外路径段 |
| 模型错误 | 名称无法识别 | 将模型设置为 uncensored |
| 余额或支付错误 | 没有剩余额度,或试用已结束 | 从 $20起充值,或者如果你还没有,请领取试用额度 |
429 rate_limited | 超过每分钟限制 | 等待一分钟;试用密钥每分钟 60 次,全功能密钥 300 次 |
429 concurrency | 同时请求过多 | 关闭额外的标签页和聊天;试用密钥 2 个,全功能密钥 8 个 |
429 且 Retry-After: 5 | 临时过载 | 等待五秒钟,然后按重新生成 |
失败或被拒绝的请求不会收费,因此测试不花钱。在测试之间一次只更改一项。如果你同时更改 URL、密钥和模型名称,并且它开始工作,你就不知道哪一个是错误的,下次你会犯同样的错误。
步骤 3:在 Janitor AI 中输入设置
在聊天中,打开 API 设置并选择代理选项,这是 Janitor AI 连接到你自己的 OpenAI 兼容接口的方式。菜单名称在不同版本中会有所移动,因此请按用途匹配。你需要三个值。
- 模型名称:
uncensored - 代理 URL:
https://api.nofilterapi.com/v1/chat/completions。Janitor AI 的代理字段通常期望完整的接口地址,而不仅仅是基础 URL。如果你的工具要求输入基础 URL,请使用https://api.nofilterapi.com/v1。 - API 密钥: 你的密钥,粘贴时前后不要包含空格。
保存设置,然后重新加载页面。"仍然失败"的一个常见原因是新值从未保存,或者聊天仍在使用之前的连接。重新加载后开始一条新消息,而不是在旧的失败消息上重新生成。
常见错误,按频率排序
- 需要完整接口的基础 URL。 缺少
/chat/completions时,请求会命中不存在的路径并返回 404。 - 路径重复。 在已包含
/v1结尾的 URL 后粘贴/v1/chat/completions会导致出现/v1/v1/...。 - 其他服务的模型名称。 此处不存在 gpt-4 等名称。唯一的 ID 是
uncensored。 - 来源错误的密钥。 其他服务的密钥无法使用。请为此服务使用 API 密钥页面 中的密钥。
- 隐藏字符。 从聊天应用或文档复制可能会添加尾部空格或换行符。请先粘贴到纯文本字段中,然后检查。
- 多余引号。 不要将密钥或 URL 用引号包裹。
当它工作一次然后失败时
间歇性错误通常指向限制或余额,而不是密钥。
并发请求。 试用密钥允许同时发起两个请求,每分钟 60 个。完整密钥允许同时发起八个请求,每分钟 300 个。如果在前一个请求仍在流式输出时重新生成回复,或在两个标签页中打开了角色,可能会触发 concurrency 限制。流式请求会占用其槽位,直到流式输出完成。
上下文大小。 上下文窗口为 100,000 个 token,包含提示词和补全。Janitor AI 有自己独立的上下文设置,与大型角色卡进行的长对话可能会填满它。如果回复被截断或仅在长对话中出现请求错误,请降低上下文设置或总结历史记录。
余额。 免费试用额度为 $0.50,有效期为 7 天。当额度用完或过期时,请求将失败,直到你充值。一次典型的角色扮演回合包含 6,000 个输入 token 和 400 个输出 token,成本为 6,000 / 1,000,000 x $0.15 + 400 / 1,000,000 x $0.50,即 $0.0009 加上 $0.0002,总计 $0.0011。如果没有其他干扰,该试用额度大约可以支持 450 次回合。
连接后需要调整的设置
收到第一条回复后,一些设置可以改善结果并避免新的错误。
- 最大新 token 数。 设置一个符合聊天风格的回复上限,例如 300 到 600 个 token。API 端此参数为可选,但设置上限可以防止回复过长,并将输出成本控制在每 1M token $0.50。
- 温度。 0.7 到 1.0 左右的值适合角色扮演。如果回复变得难以理解,请降低该值。API 会透传 temperature、top_p、stop、seed 和重复惩罚参数。
- 上下文大小。 根据您的需要进行匹配。上下文窗口最多支持 100,000 个 token,但如果发送远超故事需求的 token,只会增加每次回合的成本。
- 流式输出。 如果你的回复一次性全部显示或流式输出卡住,请尝试切换流式输出设置。API 支持服务器发送事件 (SSE)。
如果角色仍然拒绝某个场景,原因通常是角色卡或为更严格的模型编写的系统提示词,而不是密钥。查看角色卡告诉模型做什么。模型本身经过调整,可以在合法成人使用中无内容拒绝地回答,但有一个固定限制:禁止任何涉及未成年人的内容。
充值并获取新密钥
打开定价页面进行充值:充值金额从 $20 到 $500 不等,其中 $50 起享 +5% 赠送,$100 起享 +10% 赠送,$200 起享 +15% 赠送。支持使用银行卡(Visa、Mastercard、Apple Pay、Google Pay)或加密货币(TRC20 链上的 USDT、Base 链上的 USDC)支付。额度永不失效。
还没有账户?使用 Google 账号或邮箱加密码注册,然后在 API 密钥页面领取免费试用额度。每人限领一次,无需绑定银行卡。如果你怀疑密钥已泄露(例如你发布了截图),请创建新密钥,而不是调试旧密钥。
仍然遇到问题:用脚本测试
此脚本会打印真实错误信息,比 Web 界面中的通用提示更具参考价值:
from openai import OpenAI, APIStatusError
client = OpenAI(base_url="https://api.nofilterapi.com/v1", api_key="YOUR_KEY")
try:
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Say hello as a pirate captain."}],
)
print(r.choices[0].message.content)
except APIStatusError as e:
print(e.status_code, e.response.text)
print("request id:", e.response.headers.get("X-Request-Id"))
如果此步骤成功,说明账户状态正常,问题仅出在 Janitor AI 的字段配置上。如果失败,状态码对应上述表格。在联系支持团队时,请保留请求 ID。文档列出了所有支持的参数。如果你好奇 Janitor AI 本身是如何进行过滤的,请阅读Janitor AI 是否有过滤器。要了解此密钥背后的模型类型,请参阅无过滤器 AI 聊天机器人页面。该 API 仅输出文本,且绝不允许包含未成年人的性内容。
更多指南
问答
我在 Janitor AI 中应该使用哪个代理 URL?
如果字段要求完整的接口,请使用 https://api.nofilterapi.com/v1/chat/completions。如果工具要求提供 Base URL,则使用 https://api.nofilterapi.com/v1。
我应该输入哪个模型名称?
输入小写的 uncensored。这是唯一可用的模型 ID。
为什么我会收到 429 错误?
你触发了限制。rate_limited 表示每分钟请求过多,concurrency 表示同时请求过多,Retry-After 为 5 表示短暂过载。
失败的请求会消耗我的额度吗?
不会。失败或被拒绝的请求不收费。