安装和设置
首先创建账户以获取 API 密钥。使用 Google 账户或电子邮件和密码组合注册。系统会立即在屏幕上显示您的唯一密钥。此步骤无需电话号码验证。您可以随时生成新密钥,但每个账户只能有一个活动密钥。新密钥会立即替换之前的密钥。请妥善保管此密钥,因为它可访问您的预存信用额度。使用这些凭据配合任何标准的 OpenAI 兼容 SDK 开始集成。
基础配置
将您的客户端指向我们用于无审查请求的专用基础 URL。使用标准 BASE_URL 正确路由流量的参数。端点结构镜像 OpenAI 的约定,便于切换。您必须在 Authorization 标题。将模型 ID 设置为 uncensored 在你的配置对象中。这确保请求针对正确的 uncensored 大型语言模型。通过列出可用模型来验证你的连接,通过 /v1/models 端点。这确认在发送大量负载之前,您的身份验证有效。
发送请求
向聊天补全端点发送标准 POST 请求。您的负载必须包含 model field set to uncensored。将您的消息以数组形式放在 messages 密钥。系统接受标准的角色定义,例如 user 和 assistant输入 token 的收费透明,每百万 token $0.15。输出 token 的成本为每百万 token $0.50。错误不会消耗您的预付费额度。此计费模型确保您只为实际生成的文本付费。使用以下 cURL 命令发送您的第一条消息。
流式响应
通过将 stream 在请求中设置为 true。服务器返回服务器发送的事件 (SSE) 流。每个块包含生成文本的一部分。最后一个块包括完整的令牌使用统计信息。这允许您实时向用户显示文本。流式传输在所有支持的 SDK 中工作方式相同。确保您的客户端正确处理部分文本缓冲区。将此方法用于长篇内容生成或交互式聊天界面。以下示例演示了如何在 Python 中处理流。
函数调用
在请求中使用 tools 参数。模型在适当时返回结构化工具调用。您可以指定 tool_choice 以强制特定行为。将工具响应传回模型以进行进一步处理。这支持需要外部 API 交互的复杂工作流。在需要时,模型会自动处理 JSON 格式。确保您的函数定义与预期模式匹配。此功能与标准的 temperature 和 top-p 设置并行工作。使用 Node.js 高效实现工具处理。
JSON 模式与限制
通过设置请求严格的 JSON 输出 response_format 到 {"type": "json_object"}. 该模型保证响应中的 JSON 结构有效。这非常适合在您的应用程序逻辑中解析数据。请注意 100,000 token 的上下文窗口限制。这涵盖了提示词和补全内容的总和。每次请求的最大输出为 16,000 token。如果您未指定 max_tokens, 限制默认为 2,048。每个密钥的请求限制为每分钟 300 次。并发请求上限为同时八个。请求体不得超过 8 MB。如以下流示例所示,优雅地处理错误。
cURL
curl https://api.modelsuncensoredopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list three json keys"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.modelsuncensoredopenrouter.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.modelsuncensoredopenrouter.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)