# ST-Prompt-Template **Repository Path**: pubowei/ST-Prompt-Template ## Basic Information - **Project Name**: ST-Prompt-Template - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-20 - **Last Updated**: 2026-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SillyTavern EJS 模板扩展 本扩展极大地增强了 SillyTavern 的宏系统,让您能够在提示词、角色卡和世界知识(World Info)中直接使用功能完整的 JavaScript。它利用 [EJS (Embedded JavaScript templating)](https://ejs.co/) 技术,为您的创作工作流带来动态逻辑、条件判断、循环和高级变量管理能力。 从此告别简单的文本替换,创造真正动态和智能的 AI 互动体验。 ## 核心功能 - **高级脚本能力**:在提示词、角色定义或世界知识条目中的任何地方使用 JavaScript 逻辑 (`<% ... %>`)。 - **动态提示词生成**:在将提示词发送给 LLM *之前* 对其进行处理。这允许您实现条件文本、变量插入 (`<%- variables.好感度 %>`) 以及即时构建复杂的提示词。 - **动态聊天渲染**:在接收到 LLM 的响应*之后*处理其内容。这使您可以运行 AI 输出中的代码来更新变量或改变消息的显示方式。 - **强大的提示词注入**:获得对最终提示词结构的精确控制。 - **内容注入**:在世界知识条目的标题中使用 `[GENERATE:BEFORE]` 等简单标签,即可将其内容注入到上下文的开头或结尾。 - **Prompt 注入**:使用 `@INJECT` 语法进行更精细的控制,允许您在绝对位置、相对位置或基于正则表达式匹配来插入完整的消息 (`{role: 'system', content: '...'}`)。 - **全面的 API**:提供一组丰富的内置函数(如 `getvar`, `setvar`, `getwi`, `getchar`),用于与 SillyTavern 的数据交互、管理状态和动态获取内容。 - **作用域变量**:使用 `global`(全局)、`local`(聊天特定)甚至 `message`(消息特定)的变量来管理状态,这些变量可以跨会话持久化。 - **完全兼容**:可与 SillyTavern 的原生宏语法并存使用,互不影响。 ## 基本用法 只需在任何会发送给 LLM 的文本字段中使用 EJS 标签即可。扩展将在适当的时候处理它们。 **示例 1:简单输出** 在角色提示词中显示变量值。 ```javascript // 在世界知识条目或角色定义中 角色当前好感度:<%- getvar('好感度') %> ``` **示例 2:条件逻辑** 根据变量的值改变提示词内容。 ```javascript <% if (getvar('好感度', { defaults: 0 }) > 50) { %> 你是我信赖的朋友。 <% } else { %> 我仍然对你保持警惕。 <% } %> ``` **示例 3:通过 LLM 的输出来更新变量** 让 LLM 的响应能够修改角色的状态。 ```javascript // 假设 LLM 生成了以下消息 <% setvar('好感度', getvar('好感度') + 10) -%> 你的善意我已收到。我对你的好感度提升了。 新的好感度:<%- getvar('好感度') %> ``` 用户将看到带有更新后好感度值的消息,并且 `好感度` 变量将被保存,以便在未来的互动中使用。 ## 安装 1. 在 SillyTavern 中,导航到 **扩展** 面板(积木图标)。 2. 在 **安装扩展** 部分,将本仓库的 URL 粘贴到文本框中。 3. 点击 **Install for all users**。 4. 安装完成后,从列表中确认已启用 **Prompt Template** 扩展。 ## 文档 要获取所有功能的完整指南和高级用法,请参阅: - **[功能描述 (features_cn.md)](docs/features_cn.md)**:详细介绍所有功能,包括内容注入、Prompt注入和各项设置。 - **[参考手册 (reference_cn.md)](docs/reference_cn.md)**:所有可用函数、变量和内置库(如 `_`, `faker`)的完整 API 参考。 ## 许可证 本项目为开源项目,基于 [AGPL-3.0 许可证](LICENSE) 发布。