返回首页
一周热榜
Otaku 是一个旨在构建 SillyTavern (ST) 替代品的终端工具,重点关注以下几点:
- 透明地展示发送给 LLM 的内容(使用 `/context` 命令),
- 自动增量摘要,替换聊天中的中间部分以节省上下文空间(使用 `/lore` 命令浏览和编辑这些摘要),
- 从聊天中自动提取角色(使用 `/cast` 命令),
- 最小化或不进行后台提示注入。
<p>安装</p>
Otaku 是免费的开源软件(MIT 许可证)。您可以通过 uv 安装 — `uv tool install otaku` — 或使用 Homebrew 安装:`brew install enclavum/tap/otaku`。
<p>开始使用</p>
首次启动时,您需要选择一个提供者和一个模型:Otaku 会自动检测本地安装的 Ollama、oMLX、LM Studio、llama.cpp 和 KoboldCpp,并让您从它们的模型中进行选择。云服务提供商(OpenRouter、NanoGPT)也会在选择器中列出 — 输入 API 密钥后,它们的目录将会出现。选择后,您将进入提示界面。如果没有任何程序在运行,Otaku 仍然会打开 — 您可以稍后使用 `/model` 选择模型。
<p>为了让您了解功能和玩法,首次启动时会导入一个示例故事,您将直接进入其中。您可以使用 `/lore`、`/cast` 和 `/context` 命令进行探索。</p>
从那里,您可以使用 `/new` 命令开始自己的故事,或使用 `/import` 导入 ST 聊天。导入需要一些时间,因为它不仅导入消息,还会从中提取角色和场景(更多内容见下文)。您也可以以相同的方式导入纯文本文件;它将被拆分为消息。系统会根据文件检测格式,且扩展名必须匹配:ST 聊天为 `.jsonl`,纯文本为 `.txt`,Otaku 导出为 `.md`。
<p>功能</p>
1. 游戏、故事和分支
您可以像往常一样发送消息,作为您的角色;LLM 会根据对话推断出要扮演的角色。有三个辅助命令 — `/you`、`/me` 和 `/ooc` — 这些命令仅以最小的注入形式框定您的提示,例如“您扮演……”。(您可以在 `~/.otaku/configs/prompts.toml` 中配置这些模板。)
在游戏过程中,您可以使用 `/undo` 和 `/regen` 撤销或重新生成最后一条消息。您可以使用 `/fork` 分支出故事的新版本,或使用 `/new` 开始一个新故事。`/stories` 命令列出您的故事及其消息;您可以从那里切换到之前玩的故事,并从任何消息处恢复。如果您不喜欢之前的消息,也可以在 `/stories` 视图中编辑它。
2. 摘要和角色提取
在您发送大约 50 条消息后,系统会在您闲置 5 分钟后自动在后台启动摘要处理,以免打扰您的角色扮演。您也可以通过 `/extract` 按需运行它。您将在状态栏中看到通知和进度,同时可以继续游戏 — 在处理期间回复的速度会稍慢。一旦完成,您可以使用 `/lore` 和 `/cast` 命令浏览和编辑提取的摘要和角色。摘要是可编辑的,您可以随意修改。
3. 上下文的构建方式
摘要仅在聊天中有超过 200 条消息时才会生效。前 20 条和最后约 150 条消息(均可配置)始终按原样发送,以保留最大细节和您的文风;中间的内容则用场景摘要替换。因此,即使摘要可能存在到最新消息,实际上只有较旧的摘要会被使用。
4. 其他功能:
- 从 ST 导入聊天,并提取场景和角色,
- 导入纯文本文件,解析为回合,并提取场景和角色,
- 直接从应用程序加载和卸载 Ollama、oMLX 和 LM Studio 的模型,
- 以及更多功能。
我在“Ask HN”板块只看到7条帖子。前几天只有10条。这是因为对提问提交数量的限制,还是其他原因?