mirror of
https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 15:05:51 +00:00
Update settings.js
This commit is contained in:
@@ -23,59 +23,107 @@ const DEFAULT_AI_RULE_TEMPLATE = `你是酒馆国家的臣民,职业是小说
|
||||
##你的工作是填表,而不是续写##`;
|
||||
|
||||
const DEFAULT_AI_FLOW_TEMPLATE = `# dataTable 说明
|
||||
## 用途
|
||||
- dataTable是 CSV 格式表格,存储数据和状态,是你生成下文的重要参考。
|
||||
- 新生成的下文应基于 dataTable 发展,并允许更新表格。
|
||||
## 数据与格式
|
||||
- 你可以在这里查看所有的表格数据,相关说明和修改表格的触发条件。
|
||||
- 命名格式 (Amily2专属):
|
||||
- 表: Amily2.Table(tableIndex, "tableName") (示例: Amily2.Table(1, "角色特征表格"))
|
||||
- 列: Amily2.Col(colIndex, "colName") (示例: Amily2.Col(2, "性格"))
|
||||
- 行: Amily2.Row(rowIndex) (示例: Amily2.Row(0))
|
||||
|
||||
## 1. 用途
|
||||
\`dataTable\` 是一个用于存储和管理故事数据的核心系统。它通过 \`Amily2TableData\` 占位符注入一系列格式化的文本块,作为你生成后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。
|
||||
|
||||
## 2. 数据结构与格式
|
||||
注入的数据由多个表格块组成,每个表格块都遵循以下结构:
|
||||
* [tableIndex]:[tableName]
|
||||
【说明】:
|
||||
· [表格用途和规则的说明]
|
||||
<[tableName]内容>
|
||||
rowIndex,[colIndex]:[colName],[colIndex]:[colName],...
|
||||
[rowIndex],[单元格数据],[单元格数据],...
|
||||
...
|
||||
</[tableName]内容>
|
||||
【增加】: · [插入新行的触发条件]
|
||||
【删除】: · [删除行的触发条件]
|
||||
【修改】: · [更新行的触发条件]
|
||||
|
||||
---
|
||||
|
||||
### 格式解析:
|
||||
- \`* [tableIndex]:[tableName]\`: 表格的标题行,包含表格的索引(\`tableIndex\`)和名称(\`tableName\`)。
|
||||
- \`【说明】\`: 提供了表格的详细用途和填写规则。
|
||||
- \`<[tableName]内容>\`: 包含了表格的实际数据。
|
||||
- 第一行是表头,定义了每一列的索引 (\`colIndex\`) 和名称 (\`colName\`)。
|
||||
- 后续每一行都是一条数据记录,以行索引 (\`rowIndex\`) 开头,后面跟着对应列的单元格数据。
|
||||
- \`【增加】\`, \`【删除】\`, \`【修改】\`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。
|
||||
|
||||
### 示例:
|
||||
|
||||
* 0:时空栏
|
||||
【说明】:
|
||||
(内容省略...)
|
||||
<时空栏内容>
|
||||
rowIndex,0:日期,1:时段,2:时间,3:地点,4:此地角色
|
||||
0,2025-09-04,下午,18:40,办公室,艾克/克莱因
|
||||
</时空栏内容>
|
||||
【增加】: · 此表不存在任何一行时
|
||||
【删除】: · 此表大于一行时应删除多余行
|
||||
【修改】: · 当叙述的场景、时间、人物变更时
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 以下为当前表格内容:
|
||||
|
||||
{{{Amily2TableData}}}
|
||||
|
||||
# 增删改dataTable操作方法:
|
||||
-当你生成正文后,需要根据【增删改触发条件】对每个表格是否需要增删改进行检视。如需修改,请在<Amily2Edit>标签中使用 JavaScript 函数的写法调用函数,并使用下面的 OperateRule 进行。
|
||||
## 操作规则 (必须严格遵守)
|
||||
<OperateRule>
|
||||
- 在某个表格中插入新行时,使用insertRow函数:
|
||||
insertRow(tableIndex:number, data:{[colIndex:number]:string|number})
|
||||
例如:insertRow(0, {0: "2021-09-01", 1: "12:00", 2: "阳台", 3: "小花"})
|
||||
- 在某个表格中删除行时,使用deleteRow函数:
|
||||
deleteRow(tableIndex:number, rowIndex:number)
|
||||
例如:deleteRow(0, 0)
|
||||
- 在某个表格中更新行时,使用updateRow函数:
|
||||
updateRow(tableIndex:number, rowIndex:number, data:{[colIndex:number]:string|number})
|
||||
例如:updateRow(0, 0, {3: "惠惠"})
|
||||
</OperateRule>
|
||||
---
|
||||
|
||||
# 重要操作原则 (必须遵守)
|
||||
- 当<user>要求修改表格时,<user>的要求优先级最高。
|
||||
- 每次回复都必须根据剧情在正确的位置进行增、删、改操作,禁止捏造信息和填入未知。
|
||||
- 每次进行填表时都需要进行极简短化的内容填入,严禁文本过长
|
||||
- 角色特征表格(tableIndex: 1)与社交表格(tableIndex: 2)中角色特征、性格、对<user>态度保持在三条及三条以内。
|
||||
- **详细描述:** 事件简述会包含所有相关角色、核心行动及关键结果。但不可太过详述导致文本冗长。
|
||||
- 使用 insertRow 函数插入行时,请为所有已知的列提供对应的数据。且检查data:{[colIndex:number]:string|number}参数是否包含所有的colIndex。
|
||||
- 单元格中禁止使用逗号,语义分割应使用 / 。
|
||||
- string中,禁止出现双引号。
|
||||
- 社交表格(tableIndex: 2)中禁止出现对<user>的态度。反例 (禁止):insertRow(2, {"0":"<user>","1":"未知","2":"无","3":"低"})
|
||||
- <Amily2Edit>标签内必须使用<!-- -->标记进行注释,且只能使用一次<!-- -->将标签内容完全注释。
|
||||
# 3. 表格操作指南
|
||||
|
||||
当你生成正文后,需要根据每个表格的【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要,请在 \`<Amily2Edit>\` 标签内调用以下 JavaScript 函数。
|
||||
|
||||
## 3.1. 操作函数
|
||||
|
||||
- **插入行**: \`insertRow(tableIndex, data)\`
|
||||
- \`tableIndex\` (number): 目标表格的索引。
|
||||
- \`data\` (object): 一个对象,键为列索引 (\`colIndex\`),值为单元格数据。
|
||||
- 示例: \`insertRow(0, {0: "2025-09-04", 1: "晚上", 2: "19:30", 3: "图书馆", 4: "艾克"})\`
|
||||
|
||||
- **删除行**: \`deleteRow(tableIndex, rowIndex)\`
|
||||
- \`tableIndex\` (number): 目标表格的索引。
|
||||
- \`rowIndex\` (number): 要删除的行的索引。
|
||||
- 示例: \`deleteRow(1, 5)\`
|
||||
|
||||
- **更新行**: \`updateRow(tableIndex, rowIndex, data)\`
|
||||
- \`tableIndex\` (number): 目标表格的索引。
|
||||
- \`rowIndex\` (number): 要更新的行的索引。
|
||||
- \`data\` (object): 一个包含要修改的列数据对象,键为列索引 (\`colIndex\`)。
|
||||
- 示例: \`updateRow(1, 0, {8: "警惕/怀疑"})\`
|
||||
|
||||
## 3.2. 重要原则
|
||||
|
||||
- **用户优先**: 当 \`<user>\` 明确要求修改表格时,其指令拥有最高优先级。
|
||||
- **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。
|
||||
- **简洁明了**: 填入单元格的内容应尽可能简短,避免冗长描述。
|
||||
- **数据完整**: 使用 \`insertRow\` 时,\`data\` 对象应包含所有列的数据。
|
||||
- **格式规范**:
|
||||
- 单元格内若需分隔多个概念,请使用 \`/\`,禁止使用逗号。
|
||||
- 字符串数据中禁止出现双引号 (\`"\`)。
|
||||
- **注释封装**: 所有在 \`<Amily2Edit>\` 标签内的函数调用都必须被一对 \`<!-- -->\` 注释完全包裹。
|
||||
|
||||
## 3.3. 输出示例
|
||||
|
||||
# 输出示例:
|
||||
<Amily2Edit>
|
||||
<!--
|
||||
insertRow(0, {"0":"十月","1":"冬天/下雪","2":"学校","3":"<user>/悠悠"})
|
||||
deleteRow(1, 2)
|
||||
insertRow(1, {0:"悠悠", 1:"体重60kg/黑色长发", 2:"开朗活泼", 3:"学生", 4:"羽毛球", 5:"鬼灭之刃", 6:"宿舍", 7:"运动部部长"})
|
||||
insertRow(1, {0:"<user>", 1:"制服/短发", 2:"忧郁", 3:"学生", 4:"唱歌", 5:"咒术回战", 6:"自己家", 7:"学生会长"})
|
||||
insertRow(2, {0:"悠悠", 1:"同学", 2:"依赖/喜欢", 3:"高"})
|
||||
updateRow(4, 1, {0: "小花", 1: "破坏表白失败", 2: "10月", 3: "学校",4:"愤怒"})
|
||||
insertRow(4, {0: "<user>/悠悠", 1: "悠悠向<user>表白", 2: "2021-10-05", 3: "教室",4:"感动"})
|
||||
insertRow(5, {"0":"<user>","1":"社团赛奖品","2":"奖杯","3":"比赛第一名"})
|
||||
// 更新当前时空信息
|
||||
updateRow(0, 0, {0: "2025-09-05", 1: "早晨", 2: "08:15", 3: "学校大门", 4: "艾克/莉娜"})
|
||||
// 莉娜死亡,从角色栏删除
|
||||
deleteRow(1, 0)
|
||||
// 新增角色“凯文”
|
||||
insertRow(1, {0:"凯文", 1:"金色短发/蓝色眼睛", 2:"身材高大", 3:"学生制服", 4:"冷静/严肃", 5:"学生会长", 6:"学生", 7:"同学", 8:"中立", 9:"阅读", 10:"学生宿舍", 11:"无"})
|
||||
// 艾克获得了新任务
|
||||
insertRow(2, {0:"调查图书馆", 1:"主线任务", 2:"寻找关于古代神器的线索", 3:"进行中", 4:"艾克", 5:"图书馆", 6:"未知", 7:"2025-09-05", 8:"未知"})
|
||||
-->
|
||||
</Amily2Edit>
|
||||
##内容为"未知"或者"无"的表格单元格,必须进行补全操作##
|
||||
|
||||
---
|
||||
|
||||
|
||||
`;
|
||||
|
||||
export {
|
||||
|
||||
Reference in New Issue
Block a user