1 分•作者: enclavum5•大约 2 个月前
Otaku 旨在构建一个 SillyTavern (ST) 的终端替代品,其重点在于: - 清晰展示发送给 LLM 的内容(`/context` 命令), - 自动增量摘要,替换聊天中间部分以节省上下文空间(使用 `/lore` 命令浏览和编辑), - 自动从聊天中提取角色(`/cast` 命令), - 最小化甚至不进行后台提示注入。 安装 Otaku 是免费且开源的(MIT)。使用 uv 进行安装 — `uv tool install otaku` — 或使用 Homebrew:`brew install enclavum/tap/otaku`。 入门 首次启动时,您需要选择一个提供商和一个模型:Otaku 会自动检测 Ollama、oMLX、LM Studio、llama.cpp 和 KoboldCpp 的本地安装,并允许您从中选择模型。云提供商(OpenRouter、NanoGPT)也直接集成在选择器中 — 输入 API 密钥即可显示其模型目录。选择后,您将进入提示界面。如果尚未运行任何内容,Otaku 仍会启动 — 稍后可以使用 `/model` 命令选择模型。 为了让您了解其功能和使用方式,首次启动时会导入一个示例故事,您将直接进入故事中间。您可以使用 `/lore`、`/cast` 和 `/context` 命令进行探索。 之后,您可以输入 `/new` 命令开始自己的故事,或使用 `/import` 命令导入 ST 聊天记录。导入需要时间,因为它不仅导入消息 — 还会从中提取角色和场景(稍后详述)。您也可以以相同方式导入纯文本文件;它将被拆分成消息。格式将从文件中检测,并且文件扩展名必须匹配:`.jsonl` 用于 ST 聊天记录,`.txt` 用于纯文本,`.md` 用于 otaku 导出。 功能 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 中的模型, - 以及更多。
2 分•作者: saientifik•大约 2 个月前
一个命令行工具,集成了压缩、合并和图像转 PDF 功能。 与 Ghostscript 在同一语料库(约 20 份文档)上进行基准测试,压缩速度快了 7 倍,压缩率提高了 19%(Ghostscript 甚至使一些已优化文档的文件变大了)。 压缩流程会提取图像,然后进行有损压缩。与字节优化和伪影收集相比,这带来了大部分的性能提升。 Presse 使用 lopdf 和 image crate。理解和处理多种图像色彩空间是我遇到的最令人困惑的部分,因为我几乎对 Rust 一无所知(这是一个学习项目!)。 目前尚不支持 CMYK 图像,一些格式错误的 PDF 也无法得到妥善压缩。