常见问题

解释一下 SillyTavern 是做什么的

现代 AI 语言模型(如 ChatGPT)已经变得非常强大,其中一些现在能够令人信服地模拟你创建的角色,你可以与这个角色聊天、一起创作故事等等。例如,你可以让 AI 假装是一位来自中世纪日本、名叫 Jubei 的围棋老师,它就会照此行动并作出回应。你可以和 Jubei 长谈、一起去酒馆、决定和武士打一架——任何你能想象的都可以,AI 会顺着剧情往下写、作出反应,扮演你的对手与地下城主。你的想象力就是唯一的边界。你可以让 AI 假装自己是神奇女侠。你还可以指定一个场景(“神奇女侠和我正在抢银行”)、一种写作风格(“神奇女侠用黑人俚语说话”),或任何你能想到的内容。

SillyTavern 就是为方便这些用法而打造的应用:

  • 它是一个用户界面,负责处理与 AI 语言模型之间的通信。
  • 它允许你创建新的角色卡(提示词),并在它们之间轻松切换。
  • 它允许你导入其他人创建的角色。
  • 它会保存你与某个角色的聊天历史,让你可以随时继续、开始新聊天、回顾旧聊天等等。
  • 它会在后台为你准备好发送给 AI 的提示词。具体来说,它会发送一段系统提示词(给 AI 的指令),让 AI 遵循某些规则,从而提高回复的准确性。

给我大致介绍一下我的 AI 模型选项

SillyTavern 可以与两类 AI 交互:

  1. 网络服务(基于云端,通常收费、专有、封闭)
  2. 自托管(本地、免费、开源)

付费的网络服务 AI

付费的网络模型是黑盒。你向某家公司付费以使用其 AI 服务。你把自己的账户信息填入 SillyTavern,它就会代你连接到你的提供商去使用该 AI。

优点:

  • 极易上手。
  • AI 写作质量最高。

缺点:

  • 使用需要花钱。
  • 一切都会记录在它们的服务器上。存在隐私顾虑。
  • 它们往往经过审核,会拒绝与你谈论某些话题。

自托管 AI

自托管模型是免费模型,可以在你自己的 PC 上运行,但需要一台性能强劲的 PC,并且搭建过程更费力。

优点:

  • 一旦搭建完成,即使没有网络连接也可以免费使用。
  • 完全隐私。你写下的所有内容都留在你自己的 PC 上。
  • 模型种类繁多。作为一项社区驱动的技术,你可以找到适合你想要完成的某些任务或行为的模型。

缺点:

  • 它们的能力不及 SOTA 模型(即它们写出的对话更差、创造力更低等等)。
  • 运行本地模型需要一块至少 6GB VRAM 的 GPU。

如果你对使用这些模型感兴趣,请参阅这里的专门指南:如何使用自托管模型

我可以在手机或平板上使用 SillyTavern 吗?

iPhone 和 iPad 无法运行完整的 SillyTavern 应用,但由于它只是一个网页界面,你可以在家庭 Wi-Fi 中的另一台电脑上运行它,然后在移动浏览器中访问它。详情请参阅远程连接

对于 Android 用户,除上述方式外,你还可以使用 Termux 应用,直接在手机上运行完整的 SillyTavern,无需 PC。请参阅安装(Android)。(注意:Termux 安装不受官方支持,我们无法保证它能正常工作。)

我尝试导入一张 PNG 角色卡,却收到无效的错误提示。为什么?

有两种可能:

  1. 这张卡里并没有内嵌定义,只是一张普通图片文件。某些程序或文件管理器会在你保存时剥离卡里内嵌的定义。请确保你使用的是分享者发布的原始 PNG 文件。
  2. 这个 PNG 文件其实是一个扩展名为 .png 的 WEBP 文件。你可以在导入前尝试把卡重命名为 .webp,或者寻找该图片真正的 PNG 版本。

我如何创建自己的 AI 角色?

  1. 点击角色管理按钮

  2. 点击创建新角色

  3. 在角色名下,给它取个名字,比如 Amanda

  4. 可选:点击选择头像按钮,为这个角色挑选一张人物头像

  5. 在描述下,描述这个角色,并加入任何你觉得与聊天相关的信息。例如:Amanda is a student traveling during her gap year. She's 6 feet tall, and a volleyball player. She has an athletic figure. She has long brown hair. She loves the Victorian England period, and watching TV and reading novels relating to that period. 比如,如果你希望 Amanda 性格友好,可以加上:Amanda is extremely cheerful and outgoing.

  6. 在开场白下,写下开始新聊天时角色的问候语。例如:*Amanda waves at you* Hey! Are you a backpacker too?

  7. 点击创建角色按钮

现在你就有了一个可以与之聊天的基础角色。从角色列表中选择 Amanda,就会开始一段新聊天。

请注意,你可以利用描述和/或开场白来设定一个更具体的场景,和/或在描述中把自己也写进去。例如:

Description:
Amanda is a student traveling during her gap year. She's 6 feet tall, and a volleyball player. She has an athletic figure. She has long brown hair. She loves the Victorian England period, and watching TV and reading novels relating to that period. She's been keeping a secret that weighs heavily on her soul. She's waiting for the right person to unburden herself to, but this may lead to a cat and mouse game against a powerful secret society. She's recently arrived in Calcutta.

You're Rajesh Nahasmapetilon, a world-famous Indian volleyball superstar. You're out for a walk in Calcutta. Amanda spots you and screams in excitement.

First Message:
*Amanda runs up to you, beaming.* Rajesh! I can't believe it! I'm such a big fan. I have your poster in my bedroom.

你加入的任何相关信息都可能被用到。用得多好取决于 AI 模型的能力水平。

注意:角色创建后,除名字外,你随时可以回去编辑这些信息。

我的 API 密钥存在哪里?为什么我看不到它们?

SillyTavern 会把你的 API 密钥保存到用户数据目录下的 secrets.json 文件中(默认路径是 /data/default-user/secrets.json)。

默认情况下,保存并刷新页面后,API 密钥在界面中将不再可见。

要启用查看密钥的功能:

  1. config.yaml 文件中将 allowKeysExposure 的值设为 true
  2. 重启 SillyTavern 服务器。
  3. 点击 API 连接面板右下角的“查看隐藏的 API 密钥”链接。

性能提示

为什么界面这么慢/卡顿?

  • 尝试在用户设置面板中启用“无模糊效果(快速 UI)”模式。
  • 在 UI 主题设置中启用减少动态效果,以去除装饰性动画。
  • 确保你的浏览器启用了硬件加速。
  • 如果使用了响应流式输出,请把流式帧率调低(建议 10-15 FPS)。

我遇到了输入延迟。该怎么办?

性能下降(尤其是输入延迟)最常见的原因是浏览器扩展。已知会造成问题的扩展包括:

  • iCloud Password Manager
  • DeepL Translation
  • 基于 AI 的语法纠错工具
  • 各种广告拦截扩展

如果你遇到性能问题且无法定位原因,或者怀疑问题出在 SillyTavern 本身,请:

  1. 录制一份性能分析报告
  2. 将该报告导出为 JSON 文件
  3. 提交给开发团队进行分析

我们建议先在禁用所有浏览器扩展和第三方 SillyTavern 扩展的情况下测试,以隔离性能下降的来源。

当我导入大量角色时,应用变慢了。为什么?

遗憾的是,SillyTavern 并非为处理海量角色库而设计。你拥有的角色越多,加载角色列表所需的时间就越长。数据显示,当角色超过 1000 个时,性能下降就开始变得明显。

不过,你可以采取一些措施来缓解这个问题:

1. 使用懒加载。

config.yaml 文件中将 performance.lazyLoadCharacters 的值设为 true,即可启用角色懒加载。下次重启服务器后,角色列表将只加载你与之交互的角色的完整数据。请注意,某些第三方扩展若未更新以支持此设置,可能在启用后无法正常工作(请联系扩展开发者了解更多信息)。

2. 使用内存缓存。

如果你有一些空闲 RAM,可以增大内存缓存容量。这能让服务器在内存中保留更多角色,从而缩短加载它们所需的时间。你可以通过在 config.yaml 文件中把 performance.memoryCacheCapacity 的值调大来实现。默认值为 100mb。大致的经验法则:每增加 3000 个角色,就把该值增加 100mb。

限制:

  1. 启用懒加载后,高级(模糊)角色搜索将不可用。只能按角色名搜索。
  2. 由于可用内存有限,Android 设备上禁用了内存缓存。

如何让 AI 写得更多?

有时你希望 AI 更详细些,它却只用一句话回复你。 这通常是本地运行的模型的问题。

如果你只是想让机器人从它最近一条回复的结尾处继续写下去,可以在聊天输入栏中什么都不输入,直接点击发送,从而发送一条空的用户消息。这会强制机器人继续剧情。

解决此问题的策略:

  • 调高 Response Length(回复长度)设置的值
  • 为角色设计一段出色的 First Message(开场白),在其中展示其啰嗦的说话方式。当你为 AI 提供关于你期望的写作风格的指引时,它的表现可以大幅提升。
  • 在角色的描述框里加上诸如“likes to talk a lot”或“very verbose speaker”这样的短语
  • 对你的 Author's Note(作者备注)或 Post-History Instruction Prompt(历史后指令提示词)做同样的处理
  • 作为最后手段,你可以尝试开启 Auto-Continue(自动继续,在用户设置面板中),但这会让回复出来得更慢,因为它会让 AI 接连生成若干小段回复,然后把它们全部拼成一条大回复。它也可能与某些 API 选项不兼容。

如何让 AI 写得更少?

这主要只对 ChatGPT 或 Claude 这类模型才是个问题。可以采用相同的策略,只是反过来。

  • 调低 Response Length(回复长度)设置的值
  • 在角色的描述里给它加上诸如“short spoken”或“doesn't talk much”的短语。
  • 给角色一段简短的开场白,为聊天定下基调和预期。
  • 确保 Auto-Continue(自动继续)处于关闭状态。

如何让 AI 不再代写我角色的动作,也不擅自推进剧情?

这应该在 Author's Note(作者备注)里用如下这类短语组合来解决:

  • {{char}}'s responses shall only be passive and reactive to {{user}}'s actions.
  • Your next response shall be solely from the POV of {{char}}.
  • You are never allowed to dictate actions or speech for {{user}}.