OpenRouter NSFW 用户快速入门
通过更新 Base URL 和 API 密钥,将我们的无审查 LLM API 集成到现有代码库中。本指南涵盖标准的 OpenAI 兼容接口、流式输出以及直接供开发者使用的约束处理。
基础 URL 和身份验证
将当前提供商的 Base URL 替换为 https://api.openrouternsfw.com/v1。认证使用标准的 Authorization: Bearer <key> 头。你通过 Google 或电子邮件在 获取 API 密钥 页面登录后即可立即获得密钥。无需电话号码,且密钥仅显示一次,因此在离开页面之前请复制它。
我们的服务是独立 API,而非其他供应商模型的转售商。您在请求中发送的模型标识符为 uncensored,它在我们的自有服务器上运行。它针对合法成人用途进行了优化,可提供无内容拒绝的回答,但它不是 GPT、Claude 或任何其他命名供应商的模型。
确保您的客户端库配置为使用此新的 Base URL。所有请求必须在头中包含有效的 API 密钥。如果密钥缺失或无效,服务器将返回 401 错误。如果您没有预付额度,将收到 402 错误。这些是标准的 HTTP 状态码,表示认证或支付问题,而非服务器错误。
聊天补全接口
核心功能通过 POST /v1/chat/completions 接口提供。该接口接受包含模型名称、messages 数组和可选参数的 JSON 主体。它返回一个包含生成文本、token 使用统计和完成原因的 JSON 对象。此结构与官方 OpenAI SDK 和大多数 OpenAI 兼容客户端库兼容。
如果您倾向于使用 SDK,则无需编写自定义 HTTP 客户端。但是,您必须更新配置以指向我们的 Base URL。以下示例演示了使用 cURL 的标准补全请求。此请求向无审查模型发送提示词,并期望获得文本响应。
curl https://api.openrouternsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'请记住,此 API 仅提供文本。没有嵌入、图像、音频或视频生成接口。如果您的应用需要多模态输入或输出,您需要单独处理这些内容。我们的服务专注于使用无审查模型提供高质量的文本生成。
Python SDK 集成
使用 Python SDK 可简化集成过程。使用正确的 Base URL 和 API 密钥初始化客户端。该库为您处理 HTTP 请求和 JSON 解析。您可以将模型 ID 指定为 uncensored,以确保使用我们特定的模型。
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouternsfw.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)此代码片段展示了如何发送消息并检索响应。客户端自动处理连接和错误报告。如果服务器返回错误,SDK 将引发异常。您应在应用程序逻辑中处理这些异常,以提供更好的用户体验。
Python SDK 只是选项之一。您可以使用支持 HTTP 请求的任何语言。无论选择何种客户端,接口结构保持不变。这种灵活性允许您将无审查模型集成到任何现有工作流程中,而无需进行大量代码更改。
Node SDK 用法
Node SDK 的工作方式与 Python 版本类似。使用 Base URL 和 API 密钥配置客户端,然后调用 chat completions 方法。这种方法非常适合需要异步生成文本的服务器端应用程序或后端服务。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouternsfw.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Node.js 开发人员可以轻松地将此 API 集成到现有项目中。SDK 处理 JSON 数据的序列化和反序列化。您还可以指定 temperature 或 top_p 等额外参数来控制输出的随机性。
确保正确处理请求的异步性质。使用 async/await 或 Promise 链来管理响应数据。这确保您的应用在等待模型生成文本时保持响应能力。Node SDK 是构建可扩展文本生成服务的可靠选择。
流式响应
通过将请求中的 stream 参数设置为 true 来启用流式输出。服务器将发送一系列服务器发送事件 (SSE),而不是单个 JSON 响应。每个事件包含生成文本的部分块。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)流式输出对于希望实时显示生成输出的应用程序非常有用。流的最后一个块包含请求的总 token 使用情况。这使您能够准确跟踪成本,而无需等待整个响应完成。
仔细处理流事件以确保文本正确组装。按接收顺序连接这些块。服务器保证按顺序发送这些块。如果连接中断,您可能需要重试请求。流式输出是一项强大的功能,可增强文本生成任务的用户体验。
速率限制和上下文窗口
每个 API 密钥限制为每分钟 300 次请求和 8 个并发请求。请求主体大小限制为 8 MB。如果您超过这些限制,服务器将返回 429 状态码。这是一个标准的 HTTP 状态码,表示您在给定时间窗口内发送了过多请求。您应在客户端实现指数退避,以优雅地处理这些错误。
上下文窗口支持最多 100,000 个 token 的合并提示词和补全。没有单独的输出上限。如果您未指定 max_tokens 参数,响应可以持续到窗口末尾。您可以通过将 max_tokens 设置为较低值来限制输出长度。
监控您的 token 使用情况以有效管理预付额度。错误和拒绝不消耗 token,因此您无需为失败的请求付费。这确保您只为成功的文本生成付费。密切关注速率限制,以避免服务中断。
技术规格
购买额度前,请先确认接口是否满足你的需求——以下是全部真实参数。
| 项目 | 说明 |
|---|---|
| 接口格式 | 兼容 OpenAI:任何 OpenAI SDK 或客户端只需更换 base URL 和密钥 |
| 认证 | Authorization: Bearer YOUR_KEY |
| 接口 | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.openrouternsfw.com/v1 |
| 模型 ID | uncensored |
| JSON 模式 | response_format: {"type": "json_object"} |
| 最大输出 | 不单独限制输出;提示+回复共 100,000 个 token 窗口内,max_tokens 可选 |
| 上下文窗口 | 100,000 tokens(输入与输出合计) |
| 采样参数 | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| 函数调用 | 支持 tools、tool_choice;回复包含 tool_calls(流式同样支持),结果以 role: tool 消息返回 |
| 流式输出 | 支持 SSE,最后一块包含 token 用量 |
| 响应头 | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| 请求大小 | 每次请求不超过 8 MB |
| 并发 | 每个密钥同时最多 8 个请求 |
| 速率限制 | 每个密钥每分钟 300 次请求 |
| 充值 | USDT(TRC20)或 USDC(Base),$20–$500 任意整数金额 |
| 额度有效期 | 付费额度永不过期,无订阅 |
| 计费 | 预付额度,按实际 token 用量扣费;错误和拒绝不收费 |
| 免费试用 | $0.50,有效期 7 天,无需银行卡 · 试用密钥:2 个并发请求,每分钟 60 次;首次充值后恢复完整限额(8 和 300) |
| 赠送额度 | 满 $50 送 5%,满 $100 送 10%,满 $200 送 15% |
| 价格 | 输入 $0.15 / 百万 tokens · 输出 $0.50 / 百万 tokens |
| 内容政策 | 允许成人内容;涉及未成年人的性内容一律拒绝 |
| 登录 | Google 或邮箱 + 密码 |
| 密钥 | 每个账户一个有效密钥;生成新密钥后旧密钥失效 |
错误代码
错误以 JSON 返回,type 字段固定;失败或被拒绝的请求不计费。
| 状态码 | 类型 | 含义 |
|---|---|---|
400 | bad_request | JSON 无效、消息为空、参数错误或超出上下文窗口 |
401 | missing_key · invalid_key · key_revoked | 缺少密钥、密钥错误或已被新密钥替换 |
402 | no_credit | 余额不足——充值后立即恢复 |
403 | content_blocked | 涉及未成年人的性内容——拒绝且不计费 |
404 | not_found | 未知接口 |
413 | request_too_large | 请求体超过 8 MB |
429 | rate_limited · concurrency | 超过每分钟 300 次或 8 个并发——稍后重试 |
503 | upstream_busy | 模型繁忙——几秒后重试 |
问答
无审查模型与其他供应商有何不同?
我们的模型是运行在自有服务器上的开放权重模型,针对合法成人用途进行了优化,可提供无内容拒绝的回答。它不是 GPT、Claude、Gemini、Grok、DeepSeek、Qwen、Llama 或其他任何供应商的模型。我们不在供应商之间路由流量;我们提供单一的无审查接口。
如果我超出速率限制会发生什么?
如果您每分钟请求超过 300 次或每个密钥的并发请求超过 8 个,服务器将返回 429 状态码。这是一个标准的 HTTP 状态码,表示您在给定时间窗口内发送了过多请求。您应在客户端实现退避逻辑以处理这些错误。
API 支持函数调用和 JSON 模式吗?
是的,API 支持函数调用(tools, tool_choice)和 JSON 模式(response_format json_object)。您还可以指定 temperature、top_p、stop、seed、presence_penalty 和 frequency_penalty 等参数来控制输出。
只差一张表单,即可获得密钥
创建账户,复制密钥,更改基础 URL。这就是全部设置。
获取 API 密钥