Ollama NSFW 用户快速入门
通过将任何 OpenAI 兼容 SDK 指向我们的托管接口,几分钟内即可获得首次响应。本快速入门涵盖认证、基本聊天、流式输出以及使用我们的无审查模型进行函数调用。
前提条件与认证
你需要 API 密钥和 Base URL 才能开始。在 获取 API 密钥 页面使用 Google 或电子邮件注册。你的密钥会立即显示;试用无需信用卡。Base URL 为 https://api.ollamansfw.com/v1。将其设置在你的环境或 SDK 配置中。模型标识符为 uncensored。这是一个运行在我们服务器上的开放权重模型,与 GPT 或其他厂商模型不同。
首次请求
发送标准的聊天补全请求。API 期望包含 role 和 content 的 messages 数组。使用 curl 测试连通性。将 YOUR_API_KEY 替换为你的实际密钥。响应将在 choices[0].message.content 中返回生成的文本。如果收到 401,请检查你的密钥。402 表示你需要充值。
Python SDK 集成
使用官方的 openai Python 包。通过 pip 安装它。使用自定义 Base URL 和 API 密钥配置客户端。这确保了与我们的接口兼容。下面的代码演示了简单的文本生成。它处理请求并打印结果。错误处理应捕获 HTTP 异常。这种方法适用于任何 OpenAI 兼容客户端。
Node.js SDK 集成
安装 openai Node.js 包。在客户端初始化中设置 Base URL 和 API 密钥。结构镜像 Python 示例。传递模型 ID uncensored。响应包含补全数据。使用 async/await 编写简洁代码。这种方法非常适合需要直接 API 访问的服务器端应用程序或 CLI 工具。
流式响应
通过设置 stream: true 启用流式输出。API 返回服务器发送事件 (SSE) 流。每个块包含部分文本。最后一个块包含 token 使用统计。这降低了长响应的感知延迟。优雅地处理流错误。SDK 提供内置的流迭代器。处理每个块以实时更新 UI。
限制、错误和上下文
上下文窗口总计 100,000 个 token。输出可以一直延伸到窗口的末尾。速率限制为每分钟 300 次请求。每个密钥的并发请求限制为 8 个。请求体必须小于 8 MB。常见错误:401(密钥无效),402(额度不足),429(速率限制)。错误不消耗额度。针对非法内容的拒绝免费。额度永不过期。
cURL
curl https://api.ollamansfw.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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.ollamansfw.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.ollamansfw.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)接口能力与限制
所有限制、功能与价格一览。
| 项目 | 说明 |
|---|---|
| 接口格式 | 兼容 OpenAI:任何 OpenAI SDK 或客户端只需更换 base URL 和密钥 |
| 接口 | POST /v1/chat/completions · GET /v1/models |
| 认证 | Authorization: Bearer YOUR_KEY |
| 模型 ID | uncensored |
| Base URL | https://api.ollamansfw.com/v1 |
| 最大输出 | 不单独限制输出;提示+回复共 100,000 个 token 窗口内,max_tokens 可选 |
| 上下文窗口 | 100,000 tokens(输入与输出合计) |
| 采样参数 | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| JSON 模式 | response_format: {"type": "json_object"} |
| 函数调用 | 支持 tools、tool_choice;回复包含 tool_calls(流式同样支持),结果以 role: tool 消息返回 |
| 流式输出 | 支持 SSE,最后一块包含 token 用量 |
| 响应头 | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| 速率限制 | 每个密钥每分钟 300 次请求 |
| 请求大小 | 每次请求不超过 8 MB |
| 并发 | 每个密钥同时最多 8 个请求 |
| 充值 | USDT(TRC20)或 USDC(Base),$20–$500 任意整数金额 |
| 计费 | 预付额度,按实际 token 用量扣费;错误和拒绝不收费 |
| 赠送额度 | 满 $50 送 5%,满 $100 送 10%,满 $200 送 15% |
| 额度有效期 | 付费额度永不过期,无订阅 |
| 免费试用 | $0.50,有效期 7 天,无需银行卡 · 试用密钥:2 个并发请求,每分钟 60 次;首次充值后恢复完整限额(8 和 300) |
| 价格 | 输入 $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 | 模型繁忙——几秒后重试 |
问答
这是官方的 Ollama API 吗?
不,这是一个独立托管的 API。我们通过 OpenAI 兼容接口提供自己的无审查模型。它与 Ollama 没有关联,尽管使用了类似的约定。
如何充值额度?
使用 USDT (TRC20) 或 USDC (Base) 充值。最低金额为 $20。大额存款享有奖金。按实际 token 用量计费。错误和拒绝不收费。
上下文窗口大小是多少?
提示词和补全的总上下文窗口为 100,000 token。如果未设置 max_tokens,响应可以持续到窗口末尾。