常见问题

SillyTavern 是做什么的?

ChatGPT 等现代 AI 语言模型已经变得非常强大,其中一些能够令人信服地模拟你创造的角色,你可以与之聊天、一起写小说等。例如,你可以让 AI 扮演一位来自中世纪日本、名叫 Jubei 的围棋教练,它会相应地行动和回应。你可以与 Jubei 进行长篇对话,一起去酒馆,决定与武士展开决斗,诸如此类,只要你能想到,AI 就会配合你推进剧情,充当你的陪衬和地下城主。你的想象力就是极限。你可以让 AI 扮演神奇女侠,也可以设定一个具体场景("神奇女侠和我正在抢劫银行")、写作风格("神奇女侠用黑人英语说话"),或任何你能想到的内容。

SillyTavern 是一款为上述用途而设计的应用:

  • 它是一个处理与 AI 语言模型通信的用户界面。
  • 它让你可以创建新的角色卡(提示词),并在不同角色之间轻松切换。
  • 它允许你导入其他人创建的角色。
  • 它会保存你与角色的聊天记录,让你可以随时恢复对话、开始新聊天、查看历史记录等。
  • 在后台,它会自动处理 AI 提示词的准备工作——具体来说,它会发送一个系统提示词(给 AI 的指令),使 AI 遵循特定规则以提高回复质量。

AI 模型有哪些选项?

SillyTavern 可以与两类 AI 交互:

  1. 网络服务(基于云端,通常需要付费,专有且封闭)
  2. 自托管(本地运行,免费,开源)

付费网络服务 AI

付费网络模型是黑盒服务。你向公司付费使用其 AI 服务,在 SillyTavern 中填入账户信息,由其代为连接服务商的 AI。

优点:

  • 上手非常简单。
  • AI 写作质量最高。

缺点:

  • 使用需要付费。
  • 所有内容都记录在服务商服务器上,存在隐私问题。
  • 通常存在审查,会拒绝讨论某些话题。

自托管 AI

自托管模型是可以在你自己电脑上运行的免费模型,但需要高性能电脑,且配置相对复杂。

优点:

  • 配置好后,即使没有网络也可以免费使用。
  • 完全私密,所有内容都保留在你自己的电脑上。
  • 模型种类丰富。作为社区驱动的技术,你可以找到适合特定任务或行为的模型。

缺点:

  • 能力不如SOTA模型(即对话写作较差、创意较少等)。
  • 运行本地模型需要至少 6GB 显存的 GPU。

如有兴趣,请参阅专项指南:如何使用自托管模型

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

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

对于 Android 用户,除上述方式外,还可以通过 Termux 应用直接在手机上运行完整的 SillyTavern,无需电脑。请参阅安装(Android)。(注意:Termux 安装方式不受官方支持,我们无法保证其可用性。)

我尝试导入 PNG 角色卡时报错提示无效,这是为什么?

有两种可能原因:

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

如何创建自己的 AI 角色?

  1. 点击角色管理按钮

  2. 点击"创建新角色"

  3. 在"角色名称"下输入一个名字,例如 Amanda

  4. 可选:点击"选择头像"按钮为角色选择一张头像

  5. 在"描述"中描述角色,并添加你认为与聊天相关的任何信息。例如:Amanda 是一名利用间隔年旅行的学生。她身高 1.8 米,是一名排球运动员。她身材运动健美,有一头长长的棕发。她热爱维多利亚时代的英格兰,喜欢看与那个时期相关的电视剧和小说。 如果希望 Amanda 性格友善,可以添加:Amanda 极其开朗活泼。

  6. 在"第一条消息"中写下开始新聊天时角色的问候语。例如:*Amanda 向你挥手* 嘿!你也是背包客吗?

  7. 点击"创建角色"按钮

现在你有了一个可以聊天的基础角色。从角色列表中选择 Amanda,新的聊天将自动开始。

请注意,你可以使用"描述"和/或"第一条消息"来创建更具体的场景,也可以在描述中加入你自己。例如:

描述:
Amanda 是一名利用间隔年旅行的学生。她身高 1.8 米,是一名排球运动员。她身材运动健美,有一头长长的棕发。她热爱维多利亚时代的英格兰,喜欢看与那个时期相关的电视剧和小说。她一直藏着一个让她内心沉重的秘密,等待着合适的人来倾诉,但这可能引发一场与强大秘密组织的猫鼠游戏。她最近刚抵达加尔各答。

你是 Rajesh Nahasmapetilon,世界著名的印度排球巨星。你正在加尔各答散步。Amanda 看到你后激动地尖叫起来。

第一条消息:
*Amanda 跑向你,满脸笑容。* Rajesh!我不敢相信!我是你的超级粉丝,我卧室里有你的海报。

你填写的任何相关信息都可以被 AI 利用。利用效果取决于 AI 模型的能力水平。

注意:角色创建后,除名称外,其他所有信息均可回头编辑。

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

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

默认情况下,保存并刷新页面后,界面不会显示 API 密钥。

若要启用密钥查看功能:

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

性能提示

为什么界面这么卡/抖动?

  • 尝试在用户设置面板中启用"无模糊效果(快速 UI)"模式。
  • 在 UI 主题设置中启用"减少动效"以移除装饰性动画。
  • 确保浏览器启用了硬件加速。
  • 如果使用响应流式传输,请将流式 FPS 设置为较低值(建议 10-15 FPS)。

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

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

  • iCloud 密码管理器
  • DeepL 翻译
  • 基于 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 设备可用内存有限,内存缓存在 Android 设备上默认禁用。

如何让 AI 写得更多?

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

如果你只是希望机器人从最近一条回复的末尾继续写,可以在输入栏不输入任何内容,直接点击发送。这将迫使机器人继续展开故事。

解决策略:

  • 增大响应长度设置的值
  • 为角色设计一条好的"第一条消息",展示其喜欢长篇大论的说话风格。AI 在获得写作风格引导后会大幅改善。
  • 在角色描述框中添加"喜欢多说话"或"非常啰嗦"等描述
  • 作者注释历史后指令提示词中做同样的操作
  • 作为最后手段,可以尝试开启自动续写(在用户设置面板中),但这会使回复变慢,因为 AI 会连续生成多个短回复后再合并成一条长回复,且可能与某些 API 选项不兼容。

如何让 AI 写得更少?

这主要是 ChatGPT 或 Claude 等模型的问题。可以采用相同策略但反向操作:

  • 减小响应长度设置的值
  • 在角色描述中加入"话不多"或"沉默寡言"等描述。
  • 为角色设置一条简短的第一条消息,以确定聊天的基调和期望。
  • 确保自动续写已关闭。

如何阻止 AI 替我的角色写动作,自行推动剧情?

这应该在作者注释中通过以下短语的组合来处理:

  • {{char}} 的回复只能是对 {{user}} 行为的被动反应。
  • 你的下一条回复只能从 {{char}} 的视角出发。
  • 你绝对不能为 {{user}} 代写动作或对话。