基础 URL 和身份验证
Unrestricted AI API 托管在 https://api.unrestrictedai.top/v1。它遵循 OpenAI 聊天补全结构,这意味着您只需更新 base_url 并提供 API 密钥即可使用现有的 OpenAI SDK。每个账户只需一个活跃密钥,即可立即访问无审查模型。身份验证通过 Authorization 标头使用 Bearer 方案处理。请确保密钥安全,因为它控制您的预付额度使用。与订阅服务不同,您只为处理的 token 付费,错误和拒绝不收取费用。
您的第一个请求
发送标准聊天补全请求以测试连通性。模型 ID 始终为 uncensored。该接口接受文本输入并返回文本输出,上下文窗口支持多达 100,000 个 token。如果你未指定 max_tokens,API 默认输出 2,048 个 token。此简单的 POST 请求演示了核心功能:发送提示词并接收生成的响应,且没有针对合法成人或争议话题的内容过滤。
Python SDK 集成
使用官方 OpenAI Python 库是集成最快的方式。将客户端指向我们的基础 URL 并传递您的密钥。下面的代码展示了基本的同步请求。此方法自动处理 JSON 解析,允许您直接在 Python 变量中访问响应内容。它非常适合后端服务或批处理,在这些场景中代码简洁性比流式延迟更重要。
Node.js SDK 集成
对于 JavaScript 环境,配置 OpenAI Node.js 客户端以指向我们的接口。Node.js 的异步特性与 API 的响应时间非常契合。正确设置基础 URL,SDK 将处理请求格式。请记住,此 API 不支持图像、音频或嵌入接口,因此请坚持使用基于文本的补全。此方法适用于需要在动态内容中注入无审查 LLM 响应的 Web 服务器或边缘函数。
流式响应
通过在请求中设置 stream: true 启用流式输出。API 通过服务器发送事件 (SSE) 返回数据,允许你实时接收 token。Token 使用量和计费指标包含在流的最后一个块中。这降低了终端用户的感知延迟,特别是对于长输出。对于即时文本渲染能改善用户体验的聊天界面,推荐流式输出。监控最后一个块中的总 token 数以准确跟踪你的预付额度。
限制、错误和上下文
每个 API 密钥限制每分钟 300 次请求和 8 个并发请求。请求体不得超过 8 MB。常见错误包括:无效密钥的 401,预付额度耗尽时的 402,以及速率限制的 429。上下文窗口总共支持 100,000 个 token,包括提示词和补全。如果超出这些限制,请实施指数退避。额度永不失效,如出现重复扣款等错误,可通过支持页面处理,确保你无限期保留预付价值。
cURL
curl https://api.unrestrictedai.top/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.unrestrictedai.top/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.unrestrictedai.top/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)