认证和基础 URL
首先替换客户端配置中的基础 URL 和 API 密钥。我们的服务对所有请求使用单一基础 URL,确保与现有 OpenAI SDK 兼容。您无需为不同功能管理多个端点。通过仪表盘使用 Google 或电子邮件生成密钥。请妥善保管此密钥,因为它授予对您预付费信用的直接访问权限。
API 密钥包含在 Authorization header。如果您丢失了密钥,请在仪表板中生成一个新密钥,它将替换旧的活跃密钥。账户恢复无需电话号码,保持我们隐私优先的理念。使用以下基础 URL 发起所有后续请求。
基础 URL: https://api.norestrictedai.com/v1
POST /v1/chat/completions
将提示发送到 POST /v1/chat/completions 用于接收文本响应的端点。这是生成文本所需的唯一端点。模型 ID 为 uncensored. 它是一个开放权重模型,专为在法律允许的成人用途下不进行内容审查而调整。它不是 GPT 或 Claude。您可以流式传输响应,或以 JSON 模式请求响应。系统支持函数调用以及温度 (temperature) 和 top_p 等标准参数。
请求作为文本输入、文本输出进行处理。没有嵌入或图像生成功能。如果您需要这些功能,请另寻他处。我们的重点纯粹是直接的文本生成和透明的 token 定价。错误和拒绝(除了硬性未成年人内容限制外)不会消耗您的信用额度。
Python SDK 集成
使用官方 OpenAI Python 库与我们的 API 交互。在客户端实例中设置 base URL 和 API 密钥。这种方法允许您在保留现有代码结构的同时切换提供商。该库自动处理 JSON 序列化和 HTTP 请求。您可以使用与其他服务相同的模型名称,但请记住我们的模型 ID 是 uncensored.
此方法非常适合后端服务和脚本。该库支持同步和异步操作。你可以调整 temperature 和 top_p 值来控制创造性。响应对象包含生成的文本和 token 使用统计信息。
Node SDK 集成
使用标准 OpenAI SDK 将我们的 API 集成到您的 Node.js 应用中。使用基础 URL 和 API 密钥配置客户端。此设置与 Express 路由或无服务器函数无缝配合。SDK 管理请求生命周期,包括重试和错误处理。您可以将消息作为角色和内容对象的数组传递。
此集成非常适合 Web 应用程序和微服务。响应对象包括生成的内容和使用情况数据。您可以启用流式传输,以便在生成 token 时将其发送到客户端。这降低了最终用户的感知延迟。SDK 支持 API 规范中定义的所有标准参数。
流式响应(SSE)
通过将 stream 参数到 trueAPI 返回服务器发送事件(SSE)流。每个数据块包含部分响应。最后一个数据块包含总令牌使用量。此功能显著减少了首字生成时间。它对于聊天界面和实时应用至关重要。
流式传输将持续到模型完成响应或发生错误为止。您可以随时取消流式传输。当客户端断开连接时,服务器将停止处理请求。这节省了计算资源。使用流式模式以提供流畅的用户体验。最后一个块中的 token 使用情况允许您准确跟踪成本。
速率限制与错误
我们的 API 强制执行严格的速率限制以确保稳定性。每个密钥每分钟允许 300 次请求。您可以同时拥有 8 个并发请求。最大请求体大小为 8 MB。如果超出这些限制,您将收到 429 错误。无效密钥等错误返回 401。余额不足返回 402。这些错误不消耗您的余额。
提示词和补全的上下文窗口总计为 100,000 个 token。每次请求的最大输出为 16,000 个 token。如果您未设置 max_tokens, 限制为 2,048。余额为预付费且永不过期。错误免费。如果重复扣款,请联系支持团队。系统不会记录提示词用于训练。隐私得到维护。使用下面的代码块来实现这些功能。
cURL
curl https://api.norestrictedai.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Set database index to primary key"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.norestrictedai.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.norestrictedai.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);流式传输
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)