基本完成,舒适性修补

This commit is contained in:
2026-05-10 00:09:29 +08:00
parent 9faccc2c03
commit d6745b45a5
78 changed files with 3133 additions and 8850 deletions
+23 -6
View File
@@ -224,13 +224,30 @@ class RegexService:
result = text
for rule in rules:
# ✅ 检查 promptOnly:如果规则只应用于LLM,但当前不是LLM场景,则跳过
if rule.promptOnly and not is_for_llm:
continue
# ✅ SillyTavern 逻辑:根据 markdownOnly 和 promptOnly 决定是否应用
# - 双 false:应用到所有场景(包括保存数据、发送LLM、显示)
# - markdownOnly=true:只应用于 Markdown 渲染(前端显示)
# - promptOnly=true:只应用于发送给 LLM
# - 双 true:应用到所有场景(但不修改存储,由调用方决定)
# ✅ 检查 markdownOnly:如果规则只应用于Markdown渲染,但当前不是渲染后,则跳过
if rule.markdownOnly and not is_markdown_rendered:
continue
# 如果是保存数据的场景(is_for_llm=False 且 is_markdown_rendered=False)
# 只应用双 false 的规则
if not is_for_llm and not is_markdown_rendered:
# 保存数据:只应用双 false 的规则
if rule.markdownOnly or rule.promptOnly:
continue
# 如果是发送给 LLM 的场景
elif is_for_llm and not is_markdown_rendered:
# 不应用 markdownOnly=true 且 promptOnly=false 的规则
if rule.markdownOnly and not rule.promptOnly:
continue
# 如果是 Markdown 渲染的场景(前端显示)
elif is_markdown_rendered and not is_for_llm:
# 不应用 promptOnly=true 且 markdownOnly=false 的规则
if rule.promptOnly and not rule.markdownOnly:
continue
# 检查此规则是否适用于当前 placement
if placement not in [p.value for p in rule.placement]: