# 配置文件

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 >= 20,您还可以将环境变量存储在 .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 启用按需分词器下载 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 false true, false
ssl.keyPath SSL 私钥路径 "./certs/privkey.pem" 有效的文件路径
ssl.certPath SSL 证书路径 "./certs/cert.pem" 有效的文件路径

# 安全配置

设置 描述 默认值 允许值
whitelistMode 启用 IP 白名单过滤 true true, false
enableForwardedWhitelist 检查转发头中的白名单 IP true true, false
whitelist 允许的 IP 地址列表 ["::1", "127.0.0.1"] 有效的 IP 地址数组
whitelistDockerHosts 自动将 Docker 主机 IP 加入白名单 true true, false
enableCorsProxy 启用 CORS 代理中间件 false true, false
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 超时)
autheliaAuth 启用基于 Authelia 的自动登录。参见:SSO false true, false
perUserBasicAuth 使用账户凭据进行基本身份验证 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 数组

# 浏览器启动配置

以前称为"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)

# 缓存清除配置

设置 描述 默认值 允许值
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 空提示的默认消息 "[开始新的聊天]" 任何字符串
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 使用 1 小时 TTL 而不是默认的 5 分钟。请注意,这也会增加请求的成本。 false true, false

# Google AI Studio 配置

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

# DeepL 配置

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