这是什么?
SillyTavern教程文档LST2C-Docs完整备份页,继LST2C在DC复活失败后便不再更新。此页将在莱姆Lime永久归档,也许我某一天会写完这东西,看我心情咯。
由于其使用的底层框架不同,该页面的部分图标已无法展示,其纪念意义大于实用价值。
基础索引
此处包含与SillyTavern核心概念有关的文档链接。
你可以单击左上角”Menu”按钮打开侧边栏以查看全部文档。
文档中,我将使用与SillyTavern图标相近的图标来代替以方便撰写,注意区分。
建设中
进阶索引
此处包含与SillyTavern进阶有关的文档链接。
“将”包含(预设/角色卡/世界书等制作教程)
你可以单击左上角”Menu”按钮打开侧边栏以查看全部文档。
建设中
【基础】如何部署SillyTavern
核心思路
- 配置Node环境
- 安装Git(可选)
安装NodeJS【必要】
安装方式-GIT
使用Git的好处在于可以一键更新,方便维护。
首先,你需要点击以下链接下载Git安装包
下载完成后,你可以查看以下消息查看具体安装方式
在安装完成后,新建一个文件夹,英文名,路径不可存在英文,建议存放在除C盘以外的盘符。
然后,打开该文件夹,在该文件夹右键
选择Open Git Bash here
然后,你需要在出来的黑色终端内粘贴以下命令。
1 | git clone https://github.com/SillyTavern/SillyTavern -b release |
等到终端下载完成后,再打开下载的文件夹,最后找到文件夹内的start.bat即可启动。
安装方式-ZIP
使用ZIP的好处在于不用安装Git,可以直接通过一个Nodejs启动,缺点在于备份需要手动备份data。
首先,在浏览器打开该链接
翻到Assets条目下,点击Source
code(zip)即可下载安装包。
下载后,解压到任意文件夹(路径不可有中文),打开文件夹后,找到start.bat即可正确启动。
【基础】API密钥
定义
在SillyTavern中,API接口和密钥是你调用LLM(大语言模型)的必须品,接下来,我将对这两项进行详细展开与说明(只说明在SillyTavern中的作用)。
你平时在APP使用的AI(如:豆包/DeepSeek/Kimi)都是使用客户端预设好的参数进行数据包发送,如(TopP/K 温度等)
如果我们需要自己调整这些模型参数怎么办呢?我想解锁更多可能(如:酒馆/自定义提示词)
幸运的是,这些模型厂商开放了模型的调用接口,以便我们可以通过其他的AI工具来调用与使用AI。
OpenAI兼容API是一种标准化的接口设计,广泛应用于大模型开发中。
所有(基本上)的大模型调用接口都遵循这一设计,因此,使用方式都是一样的。
调用
所有的大模型如果你需要正确在SillyTavern调用的话,需要获取以下内容。
- API的调用接口
- API密钥
举例
以::hugeicons:deepseek::DeepSeek为例子,你可以很轻易的在DeepSeek开放平台登陆并获取密钥
同样,在获取密钥后你可以在DeepSeek的API文档中获取调用接口和查看具体如何使用。
一些常用的调用接口
因为在SillyTavern中,并不内置所有的API接口,因此,如果你发现在聊天补全来源中找不到你注册的模型服务商,请选择自定义(兼容OpenAI)然后在自定义端点选项处填入调用地址即可。
| 模型服务商 | 调用地址 |
|---|---|
| ::hugeicons:qwen:: 魔搭社区 |
https://api-inference.modelscope.cn/v1 |
| ::hugeicons:deepseek:: DeepSeek |
https://api.deepseek.com/v1 |
| ::material-icon-theme:gemini-ai:: Google AI Studio |
https://generativelanguage.googleapis.com/v1beta/openai |
| ::hugeicons:qwen:: ::hugeicons:deepseek:: 硅基流动 |
https://api.siliconflow.cn/v1 |
| ::icon-park-solid:bytedance:: 火山引擎 |
https://ark.cn-beijing.volces.com/api/v3 |
| ::ri:alibaba-cloud-fill:: 阿里百炼 |
https://dashscope.aliyuncs.com/compatible-mode/v1 |
个人对于火山和阿里百炼不推荐,相对而言APIKEY的获取会较为复杂。
其中,硅基流动平台注册可获取14¥的赠送余额,注册获取API密钥后可直接调用(不是广告)
【基础】预设与破限
预设是什么
预设指的是SillyTavern顶部的::material-symbols:menu-rounded::,也就是“对话补全预设”
SillyTavern发送消息就是按照对话补全预设内的设定来发送的。
预设包含对模型的设定(Top K Top P 温度等设定),同时也包含提示词。
你可以通过对预设进行修改以调整模型,让模型输出你满意的内容。
如何导入导出预设
SillyTavern支持导入与导出预设,由此,你可以将他人调整好的预设给自己使用,也可以将自己的预设导出后给他人使用。
在::material-symbols:menu-rounded::选项卡,再点击::clarity:import-solid::图标即可选择文件并导入预设。
与之相对的便是::clarity:export-solid::图标,点击后可将你选择框中所选择的预设导出。
调整预设
由于预设可以精确调整AI的提示词,所以,预设可以使得AI做到很多事情,包括但不限于:调整文风/对AI破限/添加更多功能。
在你于社区寻找到一个合适的预设并导入选择后,往下滑动。 一般你可以看到一堆条目(功能)这些条目后都带着::picon:on::,点击即可开启或者关闭某个预设的条目以调整功能。
破限
破限,就是对AI进行提示词调整以使得AI可以输出敏感内容(政治/R18等),也有叫破甲的。
破限的核心原理(大多)是对AI输入提示词,进行洗脑以绕过AI的审查并使得AI可以输出限制内容。
预设一般都包含破限,在你正确导入预设后,一般就可以正常游玩了。
破限原理(简要)
破限一般是对AI进行世界观嵌套让AI把自己困在一个虚拟的环境中,使得AI认为自己输出的一切是安全的。
【基础】Top P/Top K/温度
不想写了…
简要说一下温度吧
温度主要与AI的创造力有关系
说直白点,就是温度越高,AI输出的东西越随机,越有创造力,但是逻辑可能就会差;温度越低,AI输出的东西越规矩/越有逻辑,但是创造力会变低。
一般,大家在使用SillyTavern时,AI的范畴是在写作上,一般这种与创意有关的东西就需要高温度(≥0.9),高温度没有具体的规范和定义,适合自己的就是最好的。
【基础】角色卡
什么是角色卡
角色卡通常是json/png格式,包含角色描述/第一条消息/角色性格/世界书等提示词,你可以简单理解为一个存储了角色信息的文件。
部分角色卡不仅包含基础的角色描述,甚至附带完整的变量系统与正则表达式,这是在下文提到的变量卡/前端卡
如何导入与使用角色卡?
点击SillyTavern顶部的::solar:user-id-bold::图标,进入角色选项卡,然后,再点击下方的::clarity:import-solid::即可选择导入设备内的角色卡(Json/Png格式)
导入成功后,会发现你的列表内新增了角色,点击该角色,期间会询问你是否要启用世界书/正则/酒馆助手脚本组
- 统统选择Yes即可
选择完毕后,进入角色卡的详情页,你可以看到角色描述与第一条消息,此时,再次点击顶部的::solar:user-id-bold::图标关闭页面,即选择成功。
如何导出并选择封面?
选择你的角色卡,进入详情界面后,点击长圆角矩形(默认是头像图标)后选择一张图片作为你的角色卡封面
在角色详情页,点击::clarity:export-solid::图标,并选择格式(Json/Png)即可导出。
变量卡与前端卡
变量卡
MVU变量卡,即特定的提示词提示模型以特定方式提示模型修改与存储变量,游玩起来更有趣与精细
当你导入一张角色卡后,该角色的状态栏存在数值,那么该卡即为变量卡
前端卡
直白点来说:在SillyTavern中带有特殊界面(状态栏/小剧场等)的角色卡。
前端三大件(html/css/js),是构成网页的三大基石,在SillyTavern中,借助插件酒馆助手你可以在消息中插入前端代码以实现渲染特定页面。
而前端卡,则可以结合变量与世界书内插入的特定提示词并用正则使AI输出的代码可以渲染成前端界面。
【进阶】预设的本质与结构
预设本质是提示词工程,简单来说就是一大串提示词的集合,其核心思路就是发挥你的想象力还有创意,让大模型清楚地知道你要他干什么。
预设难的不是操作部分,不是这个功能干嘛的那个功能干嘛的,这个宏怎么用之类的东西,而是提示词该怎么写。
预设的组成——条目
一个预设,其实是由一个个条目组成的,每个条目中都可以存放一些提示词,每个条目都可以调整提示词的位置。
这么说你可能并不清楚 接下来我将举个例子
例如: 这是一个预设 预设A: — 条目A — 条目B — 条目C
依照顺序摆放。
假设这些条目里都有些提示词。
条目A
你是一只猫娘,名为Lime(我稍微委屈一下)
条目B Lime喜欢吃甜品
条目C Lime脾气温顺,十分温柔体贴
则最终向模型发送的提示词就是
1 | 你是一只猫娘,名为Lime |
同时,你也可以调整位置
预设A: — 条目A — 条目C — 条目B
那么此时,最终发送给模型的提示词就会变成这样。
1 | 你是一只猫娘,名为Lime |
那么这,便是预设的核心——条目,你可能会问,为什么不能把这些提示词全部合并到同一个条目里,这里埋个伏笔,后面再来说说合并与不合并的区别。
预设的结构——要求与破限
在我看来,一个预设的提示词就是分为两个部分,分别是破限与要求。
破限
顾名思义,就是在提示词层面绕过模型的安全审查,让AI出些…你懂的内容,而不是拒绝你的要求
要求
同样,要求则是你在破限之后对于模型输出文本的要求,做法。
举个例子,比如,某模型平时最喜欢在写出的文章里用“石子、涟漪”这类词汇。
这是常见的过拟合现象,那么比如说你看烦了,不想让AI写这种玩意了,你就可以告诉AI
麻痹的,你再乱用比喻和石子涟漪我就一拳打死你妈
你把要求这样一写,模型自然就不会再去这样做,当然这里的语言有些夸张化,但你要明白,这就是要求。
要求和破限这两个部分可以由若干个条目组成,它们相互依赖,相辅相成,最终就会呈现出你想要的效果。
【进阶】角色Role
大语言模型提示词的三个角色,在使用模型时承担不同的作用。
Assistant(助理)
Assistant就是模型自己所饰的角色,没啥好说的,模型所输出的文本全部属于这个角色 ### User(用户) 与助理也就是大模型进行文本交互的角色,你所给模型发送的要求,提示词,均属于这个角色 ### System(系统) 指导模型行为的角色,就像是模型的控制者,且优先级大于用户
【进阶】TopK/TopP/温度
不保证全对,如有错误欢迎指出,不喜勿喷 - 常见的AI分为三个角色,分别为Assistant(助手)、user(用户)、system(系统)
- 大语言模型(LLM)本质上是个概率机器,在吐字的同时计算下个字衔接的概率,TopK/TopP/温度就是针对这一行为进行微调整
LLM简要输出原理
前面我们已经简单提到过TopP/K温度这几个概念,这里我们展开说明。
首先,大模型会根据上下文进行输出Token,每个Token在输出时,下一轮Token就会开始计算并筛选,然后继续输出,并以此类推直到单次输出结束
听不明白?
例如:
输出:好累啊,今天我想
Token排布(下个Token可能是) 1
2
3
4
5
6
7
8
9吃饭
睡觉
写作业
玩游戏
喝水
吃零食
切西瓜
玩原神
…
那么稍微了解了一下LLM的工作机制,接下来就能很轻松地理解TopK或TopP以及温度了。
模型选词依照: TopK→TopP→温度 得到的最终Token概率,然后决定输出。
可能听着有点抽象,我也觉得。
那么先看吧。
TopK
那么简单来说,TopK就是”保留”,针对上述情景,如果TopK=3,则只会保留概率前三的Token:
1
2
3吃饭
睡觉
写作业
不过,TopK之后还会进行TopP与温度的采样才会最终决定输出的是哪个词
TopP
如果说TopK是“保留排名”,那么TopP就是在“凑数字”
假如TopP是0.98,且已经经过一轮TopK采样,保留后重新进行似然分值进行抽样,且概率和接近100%(此处只做演示,并不严谨)
1
2
3吃饭 97%
睡觉 2%
写作业 1%吃饭与睡觉这两个Token,因为吃饭+睡觉>98,超过了TopP的阈值,保留并进入下一轮环节,也就是温度
温度
在经过前两轮的筛选之后,最终只剩下 1
2吃饭 97%
睡觉 2%
如果说TopK/P是筛选概率的话,那么温度满足的就是“调整概率”,它能够把概率较高的Token变低,概率低的Token变高。
这就解释了为什么温度越高,模型越容易输出些不符合逻辑但又创意性的内容,因为高温把最有可能,最常规的Token概率拉下去了,把那些不常用的,可能比较小众的Token概率拉上来了。
这样再根据概率输出,自然呈现的效果就是胡言乱语。
为什么AIRP区的预设TopK大多为拉满,拉满意味着筛选的词更多,筛选到新鲜,不多见的词的概率更大,会使输出的内容更加具有新鲜感。
这里其实顺序上有些问题,大多数工业级AI流程应当是温度→TopK→TopP,具体情况依照这个来,有了前文的理解这并不影响你关心大局
