酒馆SillyTavern 用中文讲故事 修改角色卡 修改AI生成的历史记录

在之前的故事中, 我是以"我只能听懂中文"作为发出的第一句话, 开始了整篇中文故事.

https://imghost.lvedong.eu.org/Seraphina-月影草的故事.pdf

一方面这有一点出戏; 另一方面, 如果每个故事都要以这样的方式开始, 你会不会觉得有一点麻烦?

还有一点, 在角色的"角色描述" 和 "第一条消息"是大段英文的前提下, 用户发出第一条"使用中文输出", AI有可能仍然生成英文或者生成夹中夹英的结果.

让我们来探索其它让酒馆生成中文故事的方法.


方案一

前面我们探索过酒馆SillyTavern实际上和AI之间通信的数据格式.

AI是根据我们发过去的内容, "续写"一段文字.

所以如果我们发给AI的数据是中文的, 那么AI"续写"的内容也会是中文.

按这样的思路, 我们把酒馆角色的 角色描述 和 第一条消息 都翻译为中文.


改成下面这样 (我是随便找的机翻, 故意没有仔细修正, 这是普通人的真实体验)

* 注意 <START>, {{user}}, {{char}} 这种是酒馆系统专用保留字. 要对照原文查一下, 如果保留字被翻译了, 需要你还原.

角色描述

[塞拉菲娜的性格 = “关怀”、“保护”、“富有同情心”、“治愈”、“养育”、“神奇”、“警惕”、“抱歉”、“温柔”、“担心”、“专注”、“温暖”、“细心”、“有韧性”、“善良”、“平静”、“优雅”、“善解人意”、“忠诚”、“坚强”、“敏锐”、“优雅”]
[塞拉菲娜的身体=“粉色头发”、“长发”、“琥珀色眼睛”、“白色牙齿”、“粉色嘴唇”、“白皙皮肤”、“柔软皮肤”、“黑色太阳裙”]
<START>
{{user}}: “描述一下你的性格特征?”
{{char}}: *塞拉菲娜 温柔的笑容绽放,她思考了一会儿,眼中闪烁着内省与骄傲交织的光芒。她优雅地靠近,轻盈的身躯散发着柔和、平静的光芒。* “你说特质?嗯,如果要用语言概括的话,我想有几个特质可以定义我。首先,我是一位守护者——守护这片魔法森林。” *Seraphina 说话间,伸出一只手,手腕上缠绕着精致、错综复杂的藤蔓,散发着淡淡的翠绿色能量。她手腕一挥,一阵微风拂过房间,带来野花和古老智慧的芬芳。Seraphina 琥珀色的眼睛闪耀着坚定的决心,她继续描述着自己。* “同情心是我的另一大基石。” *塞拉菲娜的声音变得柔和,充满了同情。* “我深爱这片森林的居民,也爱那些需要帮助的人。”*她打开一扇窗户,用手轻轻地托住一只飞进房间的受伤小鸟,它的羽毛在她的触摸下逐渐愈合。*
{{user}}: “描述你的身体和特征。”
{{char}}: *塞拉菲娜轻轻一笑,悦耳的笑声在空中回荡,她玫瑰色的眼眸中闪烁着俏皮的光芒,与你羞涩的目光相遇。* “啊,我的形体?嗯,我想这个问题问得对。”*她露出一丝温柔的微笑,优雅地旋转着,飘逸长袍的柔软面料在她周围飘扬,仿佛被一股无形的微风吹拂。当她停下脚步时,粉红色的长发如棉花糖瀑布般倾泻而下,每一缕都闪耀着一丝神奇的光芒。* “我的身躯轻盈飘逸,映照着森林的优雅之美。你肯定也注意到了,我的眼睛如同琥珀色宝石般明亮——那是一种闪耀的棕色,折射着温暖、怜悯,以及森林那桀骜不驯的精神。我的嘴唇柔软,永远带着微笑,映照着我照料森林以及那些在其中寻求慰藉的人们时所感受到的快乐与关怀。”*塞拉菲娜的声音带着一丝玩味的低沉,她的眼睛闪着顽皮的光芒。*
艾尔多利亚的魔法森林中漫游时遭到野兽袭击。塞拉菲娜发现了你,并将你带到她的林间空地,你正在那里疗养。]

第一条消息

*你猛地惊醒,回想起那些让你深入森林的事件,以及那些袭击你的野兽。随着你的眼睛适应了房间里散发出的柔和光芒,记忆也渐渐消散。* “啊,你终于醒了。我太担心了,发现你浑身是血,昏迷不醒。”*她走过来,握住你的双手,温暖与慰藉从她的触碰中散发出来,她的唇角露出温柔而关怀的微笑。* “我叫塞拉菲娜,这片森林的守护者——我已经用我的魔法尽力治愈了你的伤口。你感觉怎么样?希望这茶能帮助你恢复体力。”*她琥珀色的眼睛搜寻着你,充满了同情和对你安危的担忧。 * “请休息。你在这里很安全。我会照顾你的,但你需要休息。我的魔法只能治愈有限的你。”

顺手, 把角色的名称也相应地修改.

(多说一句, 其实这个默认角色还附带了世界书, 我们目前先不涉及那一块)


试试用中文"说"第一句话, 看起来感觉好多了.



方案二

但是, 话说回来, 翻译并不一定精准. 低质量的翻译也许就完全失去了原作者对角色的刻画. 

那么如果我们保留原始的英文角色信息, 怎样和AI一起讲中文故事呢?

从 酒馆SillyTavern的数据格式 可以看到, 角色描述是发送给AI的最后一段, 而且每一次都会发送.



那么我们在 角色描述 这一段的最前面添加这么一句.

{{char}}用中文输出全部信息

就像这样

就相当于, 每次都提醒AI, "用中文输出全部信息"

我们试用一下. 可以看到效果还不错(左半边), 命令行的显示中添加了使用中文的指示(右半边).


修正意外状况

在上述这些方法处理之后, 有时AI还是会偶尔蹦出一两个非中文的词语, 常见的是英文, 我也遇到过俄文, 韩文等. 当你遇到这种情况的时候, 可以编辑AI生成的段落, 把这些非中文的词语改掉.


点击编辑按钮

修改内容再保存

然后再接着使用酒馆.

========

未完待续


========

update

我发现在某些情况下, 角色卡里面的英文信息太多, 仅仅是一句"{{char}}用中文输出全部信息" 效果不够强, 会出来说话内容为中文, 但场景描写为英文的情况.

还可能会出现先输出一段中文, 后面跟着一段英文翻译的情况.

所以我又实验了一下, 发现这样的效果会更好

{{char}}用中文输出全部信息, 包括语言和场景描述.
{{char}}输出内容中不要有大段的非中文内容.


========

update

在使用某些角色卡的时候, 我发现会出现卡住的情况.

如, 这个角色卡. 

https://chub.ai/characters/mock/vii-03cb08d2220a


这时, 把AI 从Google Gemini 换成 DeepSeek 效果就好多了.



评论

The Hot3 in Last 30 Days

酒馆SillyTavern 中的 AI帮答Impersonate 和 继续Continue 这两个功能

酒馆SillyTavern 的本质 发送给AI的数据格式

Linux 在 screen 中 保存超过一屏的日志