SillyTavern脚本编写:自定义自动化流程

SillyTavern脚本编写:自定义自动化流程

【免费下载链接】SillyTavern LLM Frontend for Power Users. 【免费下载链接】SillyTavern 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern

还在手动重复执行相同的聊天操作?SillyTavern的脚本系统让你告别繁琐操作,实现真正的AI对话自动化。本文将深入解析SillyTavern的脚本编写能力,从基础宏替换到高级STscript命令,助你打造个性化的AI交互工作流。

核心脚本系统架构

SillyTavern的脚本系统采用分层设计,包含三个主要组件:

mermaid

宏系统(Macros)详解

宏是SillyTavern中最基础的文本替换机制,使用双花括号语法{{macro_name}}。系统内置了丰富的宏变量:

宏类别示例宏功能描述返回值示例
时间相关{{time}}当前时间"2:30 PM"
{{date}}当前日期"September 4, 2025"
{{isotime}}ISO格式时间"14:30"
{{isodate}}ISO格式日期"2025-09-04"
聊天相关{{lastMessage}}最后一条消息"Hello there!"
{{lastUserMessage}}最后用户消息"How are you?"
{{lastCharMessage}}最后角色消息"I'm fine, thank you."
系统状态{{maxPrompt}}最大上下文长度"4096"
{{isMobile}}移动设备检测"false"

自定义宏注册示例:

// 注册一个简单的问候宏
MacrosParser.registerMacro('greeting', () => {
    const hour = new Date().getHours();
    if (hour < 12) return 'Good morning';
    if (hour < 18) return 'Good afternoon';
    return 'Good evening';
}, '返回基于时间的问候语');

// 使用自定义宏
const message = "{{greeting}}, how can I help you?";
// 输出: "Good afternoon, how can I help you?"

STscript命令系统

STscript是SillyTavern的强大脚本语言,通过斜杠命令(/command)执行各种操作:

基础命令示例
// 切换API连接
/api openai
/api textgenerationwebui

// 管理聊天会话
/renamechat "重要对话记录"
/delchat  // 删除当前聊天
/tempchat // 创建临时聊天

// 角色控制
/dupe     // 复制当前角色
/char-find "助手" tag=helpful
管道操作和条件执行

STscript支持Unix风格的管道操作和条件逻辑:

// 管道传递结果
/getchatname | /renamechat "备份_{{pipe}}"

// 条件执行示例
/extension-state Summarize | if {{pipe}} == "true" { /extension-disable Summarize } else { /extension-enable Summarize }

// 复杂条件判断
/char-find "AI助手" | if {{pipe}} != "" { /say 找到助手角色: {{pipe}} } else { /say 未找到指定角色 }

扩展系统集成

SillyTavern的扩展系统可以通过脚本完全控制:

// 扩展管理命令
/extension-enable Summarize reload=true
/extension-disable SillyTavern-LALib
/extension-toggle Backgrounds

// 检查扩展状态
/extension-state Summarize
/extension-exists Character-Expressions

// 批量扩展操作
/extension-enable Summarize | /extension-enable Backgrounds | /extension-enable World-Info

实战:自动化对话工作流

下面是一个完整的自动化对话示例,展示如何组合使用各种脚本功能:

// 自动化对话启动脚本
/api openai quiet=true
/instruct creative
/context balanced
/bg "office.jpg"

// 设置初始提示
/say {{greeting}}! I'm ready to assist you with any questions you may have.

// 自动启用相关扩展
/extension-enable Summarize
/extension-enable Prompt-Manager

// 记录启动日志
/append-note "Session started at {{isotime}} with OpenAI API"

高级脚本模式

循环和批量处理
// 批量角色处理
/char-find --all | foreach { /loadchar {{pipe}} | /say Hello {{char}}, welcome to the group! }

// 定时任务模拟
/set-interval 300 { /check-messages | if {{pipe}} > 0 { /notify "新消息到达" } }
错误处理和重试机制
// 带错误处理的API连接
/try {
    /api openai
    /say API连接成功!
} catch {
    /api textgenerationwebui
    /say 备用API已启用
    /append-note "Primary API failed at {{isotime}}"
}

性能优化最佳实践

  1. 宏缓存策略:对重复使用的宏结果进行缓存
  2. 批量操作:使用管道减少界面刷新次数
  3. 异步执行:对耗时操作使用异步避免阻塞
  4. 资源清理:及时清理不再需要的监听器和定时器
// 优化后的脚本示例
/quiet {
    /api openai
    /instruct creative
    /context balanced
    /extension-enable Summarize,Backgrounds,World-Info
}
/say 系统初始化完成,所有功能就绪!

调试和故障排除

STscript提供了丰富的调试工具:

// 调试模式启用
/debug on

// 变量检查
/var-list
/var-get "lastResponse"

// 执行跟踪
/trace /api openai | /instruct creative

// 性能分析
/profile {
    /generate-long-response "请详细说明..."
}

总结

SillyTavern的脚本系统为高级用户提供了强大的自动化能力。通过宏系统、STscript命令和扩展控制的有机结合,你可以:

  • ✅ 创建复杂的对话工作流
  • ✅ 实现多角色协同交互
  • ✅ 构建自定义的AI助手功能
  • ✅ 自动化重复性聊天任务
  • ✅ 集成外部服务和API

掌握这些脚本技巧后,你将能够充分发挥SillyTavern的潜力,打造真正智能和高效的AI对话体验。开始探索吧,让你的AI交互达到新的高度!

【免费下载链接】SillyTavern LLM Frontend for Power Users. 【免费下载链接】SillyTavern 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值