# 配置文件

config.yaml 是 SillyTavern 服务器的主配置文件,您可以在完成安装后在存储库根目录中找到它。它是一个 YAML 文件,包含各种设置,例如网络、安全和后端特定选项。对此文件所做的更改将在重新启动服务器后生效。

更新存储库后运行 npm install(具体来说是 post-install.js 脚本)时,上游添加的新设置会自动填充默认值。然后您可以根据需要修改这些设置。

对于嵌套设置,使用点表示法来指示层次结构。例如,protocol.ipv6: false 指的是 protocol 部分下的 ipv6 设置,值为 false

protocol:
  ipv6: false

# 命令行参数

启动 SillyTavern 服务器时,您可以传递命令行参数来覆盖 config.yaml 中的某些设置。

# 示例

node server.js --port 8000 --listen false
# 或
npm run start -- --port 8000 --listen false
# 或(仅限 Windows)
Start.bat --port 8000 --listen false

# 支持的参数

选项 描述 类型
--version 显示版本号 boolean
--global 强制使用系统范围的应用程序数据路径 boolean
--configPath 覆盖 config.yaml 文件的路径(仅限独立模式) string
--dataRoot 设置数据存储的根目录(仅限独立模式) string
--port 设置 SillyTavern 运行的端口 number
--listen 使 SillyTavern 在所有网络接口上侦听 boolean
--whitelist 启用白名单模式 boolean
--basicAuthMode 启用基本身份验证 boolean
--enableIPv4 启用 IPv4 协议 boolean
--enableIPv6 启用 IPv6 协议 boolean
--listenAddressIPv4 指定要侦听的 IPv4 地址 string
--listenAddressIPv6 指定要侦听的 IPv6 地址 string
--dnsPreferIPv6 DNS 首选 IPv6 boolean
--ssl 启用 SSL boolean
--certPath 设置证书文件的路径 string
--keyPath 设置私钥文件的路径 string
--browserLaunchEnabled 在浏览器中自动启动 SillyTavern boolean
--browserLaunchHostname 设置浏览器启动主机名 string
--browserLaunchPort 覆盖浏览器启动的端口 string
--browserLaunchAvoidLocalhost 在自动模式下避免使用 'localhost' 进行浏览器启动 boolean
--corsProxy 启用 CORS 代理 boolean
--requestProxyEnabled 为传出请求启用代理 boolean
--requestProxyUrl 设置请求代理 URL(HTTP 或 SOCKS 协议) string
--requestProxyBypass 设置请求代理绕过列表(空格分隔的主机列表) array
--disableCsrf 禁用 CSRF 保护(不推荐) boolean

# 环境变量

配置也可以通过环境变量设置,这将覆盖 config.yaml 文件中的值。

环境变量应以 SILLYTAVERN_ 为前缀,并对设置名称使用大写字母。例如,dataRoot 设置可以使用 SILLYTAVERN_DATAROOT 环境变量覆盖。

嵌套设置应使用下划线分隔。例如,protocol.ipv6 可以使用 SILLYTAVERN_PROTOCOL_IPV6 环境变量覆盖。

如果您使用的是 Node.js v20 或更高版本,您还可以在 .env 文件中存储环境变量,并使用 --env-file 标志将其传递给服务器。例如,要使用位于存储库根目录中的 .env 文件,您可以使用以下命令启动服务器:

node --env-file=.env server.js

或者,直接通过命令行传递环境变量:

SILLYTAVERN_LISTEN=true SILLYTAVERN_PORT=8000 node server.js

有关使用环境变量的更多信息,请参见 Node.js 文档

# 数据配置

设置 描述 默认值 允许的值
dataRoot 用户数据存储的根目录(仅限独立模式) ./data 任何有效的目录路径
skipContentCheck 跳过新默认内容的检查 false true, false
enableDownloadableTokenizers 启用按需下载 tokenizer true true, false

# 日志配置

设置 描述 默认值 允许的值
logging.minLogLevel 在终端中显示的最小日志级别 0 (DEBUG) (DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3)
logging.enableAccessLog 将服务器访问日志写入文件和控制台 true true, false

# 网络配置

设置 描述 默认值 允许的值
listen 启用侦听传入连接 false true, false
port 服务器侦听端口 8000 任何有效的端口号 (1-65535)
protocol.ipv4 在 IPv4 协议上启用侦听 true true, false, auto
protocol.ipv6 在 IPv6 协议上启用侦听 false true, false, auto
listenAddress.ipv4 侦听特定的 IPv4 地址 0.0.0.0 有效的 IPv4 地址
listenAddress.ipv6 侦听特定的 IPv6 地址 '[::]' 有效的 IPv6 地址
dnsPreferIPv6 DNS 解析首选 IPv6 false true, false

# SSL 配置

设置 描述 默认值 允许的值
ssl.enabled 启用 SSL/TLS 加密和 HTTPS 协议 false true, false
ssl.keyPath SSL 私钥的路径(相对于服务器目录) "./certs/privkey.pem" 有效的文件路径
ssl.certPath SSL 证书的路径(相对于服务器目录) "./certs/cert.pem" 有效的文件路径
ssl.keyPassphrase SSL 私钥的密码短语。如果不需要则留空 "" 任何字符串

# 安全配置

# IP 白名单

设置 描述 默认值 允许的值
whitelistMode 启用 IP 白名单过滤 true true, false
enableForwardedWhitelist 检查转发的头以获取白名单 IP true true, false
whitelist 允许的 IP 地址列表 ["::1", "127.0.0.1"] 有效 IP 地址的数组
whitelistDockerHosts 自动将 Docker 主机 IP 加入白名单 true true, false

# 主机白名单

设置 描述 默认值 允许的值
hostWhitelist.enabled 启用主机白名单 false true, false
hostWhitelist.scan 记录来自不受信任主机的传入请求 true true, false
hostWhitelist.hosts 受信任主机名列表 [] 有效主机名的数组

# 安全覆盖

设置 描述 默认值 允许的值
allowKeysExposure 允许在 UI 中暴露未遮蔽的 API 密钥 false true, false
disableCsrfProtection 禁用 CSRF 保护(不推荐) false true, false
securityOverride 禁用启动安全检查(不推荐) false true, false

# 用户身份验证

设置 描述 默认值 允许的值
basicAuthMode 启用基本身份验证 false true, false
basicAuthUser.username 基本身份验证用户名 "user" 任何字符串
basicAuthUser.password 基本身份验证密码 "password" 任何字符串
enableUserAccounts 启用多用户模式 false true, false
enableDiscreetLogin 在登录屏幕上隐藏用户列表 false true, false
sessionTimeout 用户会话超时(秒) -1 (禁用) 任何数字(-1 禁用,0 为浏览器关闭,>0 为超时)
perUserBasicAuth 使用账户凭据进行基本身份验证 false true, false

# SSO 自动登录

设置 描述 默认值 允许的值
sso.autheliaAuth 启用基于 Authelia 的自动登录。参见:SSO false true, false
sso.authentikAuth 启用基于 Authentik 的自动登录。参见:SSO false true, false

# 速率限制配置

设置 描述 默认值 允许的值
rateLimiting.preferRealIpHeader 使用 X-Real-IP 头而不是套接字 IP 进行速率限制 false true, false

# 请求代理配置

设置 描述 默认值 允许的值
requestProxy.enabled 为传出请求启用代理 false true, false
requestProxy.url 代理服务器 URL null 有效的代理 URL(例如 "socks5://username:password@example.com:1080"
requestProxy.bypass 绕过代理的主机 ["localhost", "127.0.0.1"] 主机名/IP 数组

# CORS 代理配置

设置 描述 默认值 允许的值
enableCorsProxy 启用 CORS 代理中间件 false true, false

# 浏览器启动配置

以前称为 "Autorun" 设置。

设置 描述 默认值 允许的值
browserLaunch.enabled 在服务器启动时自动打开浏览器 true true, false
browserLaunch.browser 用于打开 URL 的浏览器 "default" "default", "chrome", "firefox", "edge", "brave"
browserLaunch.hostname 覆盖浏览器启动的主机名 "auto" "auto",任何有效的主机名(例如 "localhost", "st.example.com"
browserLaunch.port 覆盖浏览器启动的端口 -1 -1(使用服务器端口),任何有效的端口号
browserLaunch.avoidLocalhost 在启动 URL 中避免使用 'localhost' false true, false

# 性能配置

设置 描述 默认值 允许的值
performance.lazyLoadCharacters 延迟加载角色数据 true true, false
performance.useDiskCache 为角色卡启用磁盘缓存 true true, false
performance.memoryCacheCapacity 最大内存缓存容量 100mb 人类可读的大小(例如 100mb, 1gb

# Cache Buster 配置

设置 描述 默认值 允许的值
cacheBuster.enabled 在首次加载或上传图像文件后清除浏览器缓存 false true, false
cacheBuster.userAgentPattern 仅为与指定正则表达式模式匹配的用户代理清除缓存。例如:'firefox'(不区分大小写)。 '' 任何有效的正则表达式字符串

# 缩略图配置

设置 描述 默认值 允许的值
thumbnails.enabled 启用缩略图生成 true true, false
thumbnails.quality JPEG 缩略图质量 95 0-100
thumbnails.format 缩略图的图像格式 jpg jpg, png
thumbnails.dimensions.bg 背景缩略图大小 [160, 90] 两个数字的数组(宽度,高度)
thumbnails.dimensions.avatar 头像缩略图大小 [96, 144] 两个数字的数组(宽度,高度)
thumbnails.dimensions.persona 人格缩略图大小 [96, 144] 两个数字的数组(宽度,高度)

# 备份配置

设置 描述 默认值 允许的值
backups.chat.enabled 启用自动聊天备份 true true, false
backups.chat.checkIntegrity 在保存前验证聊天文件的完整性 true true, false
backups.common.numberOfBackups 要保留的备份数量 50 任何正整数
backups.chat.throttleInterval 备份限制间隔(毫秒) 10000 任何正整数
backups.chat.maxTotalBackups 要保留的最大聊天备份总数 -1 任何正整数或 -1

# 扩展配置

设置 描述 默认值 允许的值
extensions.enabled 启用 UI 扩展 true true, false
extensions.autoUpdate 自动更新扩展(如果扩展清单启用) true true, false
extensions.models.autoDownload 启用自动下载模型 true true, false
extensions.models.classification 用于分类的 HuggingFace 模型 ID "Cohee/distilbert-base-uncased-go-emotions-onnx" 有效的模型 ID
extensions.models.captioning 用于图像字幕的 HuggingFace 模型 ID "Xenova/vit-gpt2-image-captioning" 有效的模型 ID
extensions.models.embedding 用于嵌入的 HuggingFace 模型 ID "Cohee/jina-embeddings-v2-base-en" 有效的模型 ID
extensions.models.speechToText 用于语音转文本的 HuggingFace 模型 ID "Xenova/whisper-small" 有效的模型 ID
extensions.models.textToSpeech 用于文本转语音的 HuggingFace 模型 ID "Xenova/speecht5_tts" 有效的模型 ID

# 服务器插件

设置 描述 默认值 允许的值
enableServerPlugins 启用服务器端插件 false true, false
enableServerPluginsAutoUpdate 在启动时尝试自动更新服务器插件 true true, false

# API 集成设置

# OpenAI 配置

设置 描述 默认值 允许的值
promptPlaceholder 空提示的默认消息 "[Start a new chat]" 任何字符串
openai.randomizeUserId 为 API 调用随机化用户 ID false true, false
openai.captionSystemPrompt 字幕完成的系统消息 "" 任何字符串

# MistralAI 配置

设置 描述 默认值 允许的值
mistral.enablePrefix 启用回复预填充。前缀将在响应中回显 false true, false

# Ollama 配置

设置 描述 默认值 允许的值
ollama.keepAlive 模型保持活动持续时间(秒) -1 -1(无限期),0(立即卸载),正整数
ollama.batchSize 控制生成请求的 "num_batch"(批量大小)参数 -1 -1(模型默认值),正整数

# Claude 配置

设置 描述 默认值 允许的值
claude.enableSystemPromptCache 启用系统提示缓存 false true, false
claude.cachingAtDepth 启用消息历史缓存 -1 -1(禁用),0 或正整数
claude.extendedTTL 使用 1h TTL 而不是默认的 5m。请注意,这也会增加请求的成本。 false true, false

# Google AI Studio 配置

设置 描述 默认值 允许的值
gemini.apiVersion API 端点版本 v1beta v1beta, v1alpha

# DeepL 配置

设置 描述 默认值 允许的值
deepl.formality 翻译正式程度 "default" "default", "more", "less", "prefer_more", "prefer_less"