要点
- 使用 Chat Completion,源为自定义(兼容 OpenAI),接口 https://api.ornith.top/v1,模型 ID 为 uncensored。
- 先用 curl 测试密钥,以便区分是密钥问题还是 SillyTavern 设置问题。
- 将上下文大小设置为与你的聊天匹配;该模型支持最多 100,000 个 token。
- 群聊可能会同时发出多个请求,而试用密钥限制为 2 个。
开始前的准备工作
你需要三样东西:一个正在运行的 SillyTavern 实例、API 密钥以及端点详情。SillyTavern 是一个用于角色和角色扮演对话的自托管聊天前端,它可以与任何遵循 OpenAI 聊天格式的服务进行交互。本网站提供此类服务,适用于合法的成人用途:面向成人的小说、角色扮演和伴侣应用。它不会生成涉及未成年人的性内容,任何设置都无法改变这一点。
收集这些值:
- 基础 URL:
https://api.ornith.top/v1 - 模型 ID:
uncensored - API 密钥: 在通过 Google 或电子邮件和密码登录后,在 API 密钥页面 创建。
新账户可以在该页面一键领取 $0.50 试用额度。无需绑卡,每人限领一次,有效期 7 天。这对于测试角色卡已经足够,因为典型聊天轮次的成本不到一美分(计算见下文)。
先用 curl 测试密钥
在调整 SillyTavern 之前,从终端发送一个请求。如果成功,后续任何失败都是前端设置问题;如果失败,问题出在密钥或网络上。
curl https://api.ornith.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Say hello in one short sentence."}]
}'
你应该获得包含 choices 数组的 JSON。查看响应头:X-Balance-USD 显示你的剩余信用额度,X-Request-Id 是联系支持时引用的内容。你也可以使用 GET /v1/models 列出模型:
curl https://api.ornith.top/v1/models \
-H "Authorization: Bearer $API_KEY"
列表显示了在 SillyTavern 中使用的模型 ID,即 uncensored。
逐步连接 SillyTavern
- 打开 SillyTavern 并点击顶部的插件图标以打开 API 连接。
- 在 API 下拉菜单中选择 Chat Completion。
- 在 Chat Completion Source 下拉菜单中选择 Custom (OpenAI-compatible)。
- 在 Custom Endpoint (Base URL) 中输入
https://api.ornith.top/v1。在/v1处停止。不要添加/chat/completions,因为客户端应用会自动附加该路径。 - 将你的密钥粘贴到 Custom API Key 字段中。
- 在Model ID中输入
uncensored。 - 按Connect。如果显示带有模型名称的绿色状态,则握手成功。
SillyTavern 版本之间的菜单标签略有变化,因此如果你的版本名称不同,请寻找相同的概念:自定义 OpenAI 兼容源、端点字段、密钥字段和模型字段。如果连接失败,请重复 curl 测试。curl 返回身份验证错误意味着密钥错误;curl 成功但 Connect 失败通常意味着 URL 中有拼写错误,例如缺少 /v1 或有尾部路径。
连接后,打开任何角色卡并发送消息。如果你看到回复,说明集成有效。剩下的就是调整。
对角色扮演至关重要的设置
上下文大小
该模型具有 100,000 个 token 的上下文窗口,将提示词和回复一起计入。在 SillyTavern 中,上下文大小滑块控制每轮发送的历史记录、角色卡和 lorebook 文本的量。更大的值意味着角色能记住更多内容,且每轮请求成本更高,因为你每轮都要为输入 token 付费。一个好的起点是中等值,如 16,000 到 32,000 个 token,仅在聊天足够长需要时才提高。回复长度设置映射到 max_tokens,这在 API 中是可选的;如果你想要更短的回复,请设置一个值。
流式传输
在 Chat Completion 设置中开启流式传输。API 支持带有 stream: true 的 SSE,因此文本在生成时出现,你可以提前停止不良回复。使用情况在流结束时报告。
采样
Temperature、top_p、停止序列、seed 以及频率和存在惩罚会传递给模型。对于创意聊天,temperature 约为 0.8 到 1.0,top_p 接近 0.9 是常见的起点。如果回复冗长或重复,稍微降低 temperature 并添加小的频率惩罚。一次更改一个设置,以便看到其效果。
你的系统提示词和角色卡
该模型经过调整,不会拒绝生成内容,因此场景的质量取决于你的提示词和角色卡。清晰的角色、背景、语气和几句对话示例比任何采样调整都更有效。如果你为成人受众写作,请确保背景明确说明年龄:每个角色都应该是成年人。
逐条消息成本计算
定价为每 1M 输入 token $0.15,每 1M 输出 token $0.50,从预付额度扣除,无订阅。因为 SillyTavern 每轮都会重新发送角色卡和历史记录,所以输入占主导。
假设一轮聊天发送 6,000 个 token 的上下文并收到 400 个 token 的回复:
- 输入:6,000 个,每 1M $0.15,即 $0.0009。
- 输出:400 个,每 1M $0.50,即 $0.0002。
- 总计:每轮 $0.0011。
200 轮对话的会话成本为 $0.22。$0.50 的试用额度可覆盖约 450 轮这样的对话。失败或被拒绝的请求不会收费。充值时,$20 至 $500 之间的任意整数金额均可,充值 $50 起额外赠送 5%,充值 $100 起额外赠送 10%,充值 $200 起额外赠送 15%。支持银行卡(Visa、Mastercard、Apple Pay、Google Pay)或加密货币(TRC20 链上的 USDT、Base 链上的 USDC)支付。额度永不过期。定价页面有详细信息。
修复常见错误
| 症状 | 可能原因 | 修复方法 |
|---|---|---|
| 连接立即失败 | 基础 URL 或密钥错误 | 使用 https://api.ornith.top/v1,无尾部路径;重复 curl 测试 |
HTTP 429,代码 rate_limited | 每分钟请求过多 | 请降低频率;试用密钥每分钟允许 60 次请求,完整密钥每分钟 300 次 |
HTTP 429,代码 concurrency | 同时请求过多 | 等待运行中的回复结束;试用密钥允许同时 2 个,完整密钥允许 8 个 |
HTTP 429 且 Retry-After: 5 | 临时过载 | 5 秒后重试 |
| 请求过大 | 正文超过 8 MB | 降低上下文大小或精简 lorebook |
| 上下文太长 | 提示词加回复超过 100,000 个 token | 降低上下文大小或回复长度 |
一个细节在群聊和使用额外后台调用功能时容易让人中招:流式请求会占用其并发限制名额,直到流结束。如果 SillyTavern 同时发出回复、摘要和图像描述请求,拥有 2 个名额的试用密钥将拒绝第三个请求。完整密钥允许 8 个。禁用你不需要的额外功能,或将它们错开时间。
有关所有参数和确切的错误形状,请阅读 API 文档。
