@@ -21,7 +21,7 @@
|
||||
| 预设管理 | ✅ 已完成 | 100% | - | 前后端已打通,支持导入导出 |
|
||||
| 对话系统 | ✅ 已完成 | 95% | - | 预设切换、消息重新生成已完成 |
|
||||
| AI 集成 | ✅ 已完成 | 100% | - | AI 配置管理、API 调用已完成 |
|
||||
| 世界书系统 | ✅ 已完成 | 100% | - | 前后端已打通,支持导入导出 |
|
||||
| 世界书系统 | ✅ 已完成 | 100% | - | 前后端已打通,触发引擎已集成到对话系统 |
|
||||
| 正则脚本 | ✅ 已完成 | 95% | - | 完全兼容 ST,已集成到对话流程 |
|
||||
|
||||
**图例**:
|
||||
@@ -456,8 +456,8 @@ web-app/src/
|
||||
- ✅ 世界书搜索和筛选
|
||||
- ✅ 用户权限控制(只能编辑自己的世界书)
|
||||
- ✅ 条目计数自动更新
|
||||
- 📋 关键词触发算法(待与对话系统集成)
|
||||
- 📋 与对话系统集成(待实现)
|
||||
- ✅ 关键词触发引擎(WorldbookEngine)
|
||||
- ✅ 与对话系统完全集成(非流式 + 流式)
|
||||
|
||||
**文件清单**:
|
||||
```
|
||||
@@ -467,6 +467,7 @@ server/
|
||||
├── model/app/request/worldbook.go # 请求结构
|
||||
├── model/app/response/worldbook.go # 响应结构
|
||||
├── service/app/worldbook.go # 业务逻辑
|
||||
├── service/app/worldbook_engine.go # 关键词触发引擎
|
||||
└── router/app/worldbook.go # 路由配置
|
||||
```
|
||||
|
||||
@@ -511,15 +512,33 @@ web-app/src/
|
||||
- ✅ 错误处理和用户提示
|
||||
- ✅ 登录状态检查
|
||||
|
||||
### 6.4 待完善功能
|
||||
### 6.4 对话系统集成(已完成 - 2026-02-27)
|
||||
|
||||
- 📋 与对话系统集成(在对话中激活世界书)
|
||||
- 📋 关键词触发引擎实现
|
||||
- 📋 选择性触发逻辑(AND/NOT)
|
||||
- 📋 深度控制和位置注入
|
||||
- 📋 概率触发机制
|
||||
**触发引擎**(`service/app/worldbook_engine.go`):
|
||||
- ✅ `WorldbookEngine.ScanAndTrigger` - 扫描消息历史并触发匹配条目
|
||||
- ✅ `WorldbookEngine.shouldTrigger` - 逐条检查触发条件(constant/keys/scanDepth)
|
||||
- ✅ `WorldbookEngine.matchKeys` - 关键词匹配(useRegex/caseSensitive/matchWholeWords)
|
||||
- ✅ `WorldbookEngine.BuildPromptWithWorldbook` - 将触发条目注入到系统提示词
|
||||
|
||||
**集成点**:
|
||||
- ✅ `conversation.go:callAIService` - 非流式消息世界书注入
|
||||
- ✅ `conversation.go:SendMessageStream` - 流式消息世界书注入
|
||||
|
||||
**执行流程**:
|
||||
```
|
||||
用户消息 → 扫描最近 N 条消息 → 匹配关键词 → 触发条目排序 → 注入系统提示词 → AI 处理
|
||||
```
|
||||
|
||||
**设置面板**(`components/SettingsPanel.tsx`):
|
||||
- ✅ 世界书开关(启用/禁用)
|
||||
- ✅ 世界书选择器(下拉列表,显示条目数量)
|
||||
- ✅ 保存到 `conversation.worldbookId` 和 `conversation.worldbookEnabled`
|
||||
|
||||
### 6.5 待完善功能
|
||||
|
||||
- 📋 概率触发机制(probability 字段已存储,引擎待实现)
|
||||
- 📋 递归扫描
|
||||
- 📋 角色绑定世界书
|
||||
- 📋 角色绑定世界书(Character Book)
|
||||
- 📋 全局世界书
|
||||
|
||||
---
|
||||
@@ -640,12 +659,64 @@ web-app/src/
|
||||
- ✅ `MessageContent.tsx:246-290` - iframe 渲染逻辑
|
||||
- ✅ `MessageContent.tsx:348-372` - 渲染模式切换
|
||||
|
||||
### 7.5 待完善功能
|
||||
### 7.5 全局正则脚本管理(已完成 - 2026-03-02)
|
||||
|
||||
**功能特性**:
|
||||
- ✅ 独立的全局正则脚本管理页面 `/regex-scripts`
|
||||
- ✅ 创建、编辑、删除全局正则脚本
|
||||
- ✅ 导入导出 JSON 格式脚本(兼容 SillyTavern)
|
||||
- ✅ 只管理 scope=0 的全局脚本
|
||||
- ✅ 支持批量导出所有脚本
|
||||
|
||||
**文件位置**:
|
||||
- ✅ `web-app/src/pages/RegexScriptManagePage.tsx` - 全局正则脚本管理页面
|
||||
- ✅ `web-app/src/App.tsx` - 添加路由配置
|
||||
|
||||
### 7.6 变量系统扩展(已完成 - 2026-03-02)
|
||||
|
||||
**后端新增变量** (`server/service/app/regex_script.go`):
|
||||
- ✅ `{{time_12h}}` - 12小时制时间
|
||||
- ✅ `{{date_short}}` - 短日期格式 (MM/DD/YY)
|
||||
- ✅ `{{weekday}}` - 星期几
|
||||
- ✅ `{{month}}` - 月份名称
|
||||
- ✅ `{{year}}` - 年份
|
||||
- ✅ `{{pick:option1|option2|option3}}` - 随机选择一个选项
|
||||
- ✅ `{{tab}}` - 制表符
|
||||
- ✅ `{{space}}` - 空格
|
||||
- ✅ `{{empty}}` - 空字符串
|
||||
|
||||
**前端变量系统** (`web-app/src/store/index.ts`):
|
||||
- ✅ 同步支持所有后端变量
|
||||
- ✅ `substituteVariables()` 函数可在前端替换变量
|
||||
- ✅ `extractVariables()` 函数可提取文本中的变量
|
||||
|
||||
### 7.7 MVU 状态管理架构(已完成 - 2026-03-02)
|
||||
|
||||
**核心实现** (`web-app/src/store/index.ts`):
|
||||
- ✅ 基于 Zustand 实现完整的 MVU 架构
|
||||
- ✅ Model: 用户、角色、对话、消息、UI、变量状态
|
||||
- ✅ Update: 完整的状态更新操作
|
||||
- ✅ View: 状态选择器(Selectors)
|
||||
- ✅ 持久化存储(localStorage)
|
||||
- ✅ DevTools 支持
|
||||
|
||||
**页面集成**:
|
||||
- ✅ `ChatPage.tsx` - 集成 MVU store 管理对话状态
|
||||
- ✅ `CharacterManagePage.tsx` - 导入 MVU store
|
||||
- ✅ 角色切换时自动更新变量系统
|
||||
|
||||
**工具函数**:
|
||||
- ✅ `substituteVariables()` - 替换文本中的变量
|
||||
- ✅ `extractVariables()` - 提取文本中的变量
|
||||
|
||||
### 7.8 待完善功能
|
||||
|
||||
- 📋 世界书阶段(Placement 2)脚本执行
|
||||
- 📋 正则脚本测试界面
|
||||
- 📋 正则脚本导入导出(独立功能)
|
||||
- 📋 正则脚本模板库
|
||||
- 🧪 全局正则脚本功能测试
|
||||
- 🧪 扩展变量系统测试
|
||||
- 🧪 MVU store 集成测试
|
||||
|
||||
---
|
||||
|
||||
@@ -754,6 +825,17 @@ web-app/src/pages/
|
||||
- ✅ **编写 SillyTavern 完全兼容优化方案**
|
||||
- ✅ **更新开发进度文档**
|
||||
|
||||
### 2026-02-27(续)
|
||||
- ✅ **完成世界书与对话系统集成**
|
||||
- 实现 WorldbookEngine 关键词触发引擎
|
||||
- 集成到非流式(callAIService)和流式(SendMessageStream)消息路径
|
||||
- 实现选择性触发逻辑(constant/keys/useRegex/caseSensitive/matchWholeWords)
|
||||
- 实现 SettingsPanel 世界书选择器(启用开关 + 世界书下拉)
|
||||
- ✅ **修复前端消息渲染 Bug**
|
||||
- 修复通用代码块正则误判导致消息内容消失的问题(恢复仅识别 \`\`\`html 标识符)
|
||||
- 修复 iframe 宽度坍缩为 300px 问题(助手消息列从 max-w-[70%] 改为 w-[70%])
|
||||
- 保留 HTML 代码块渲染中的 ``` → `<pre><code>` 转换逻辑
|
||||
|
||||
### 2026-03-02
|
||||
- ✅ **完成正则脚本系统后端 API**
|
||||
- 实现正则脚本 CRUD 操作
|
||||
@@ -785,12 +867,52 @@ web-app/src/pages/
|
||||
- 修复 HTML 渲染宽度问题
|
||||
- 修复 markdown 符号残留问题
|
||||
|
||||
### 下一阶段规划
|
||||
### 2026-03-02(今天完成)
|
||||
- ✅ **完成正则脚本前端 HTML 渲染优化**
|
||||
- 修复 HTML 代码块渲染问题
|
||||
- 移除 markdown ``` 符号残留
|
||||
- 自动启用脚本渲染
|
||||
- 统一 iframe 和直接 HTML 渲染的容器样式
|
||||
- 修复宽度适配问题
|
||||
- ✅ **完成全局正则脚本管理功能**
|
||||
- 创建独立的全局正则脚本管理页面 `/regex-scripts`
|
||||
- 支持创建、编辑、删除、导入、导出全局脚本
|
||||
- 完全兼容 SillyTavern 格式
|
||||
- ✅ **扩展变量系统**
|
||||
- 后端新增 10+ 个变量类型
|
||||
- 支持时间格式化、随机选择、特殊字符等
|
||||
- 前端同步支持所有变量
|
||||
- ✅ **实现 MVU 状态管理架构**
|
||||
- 基于 Zustand 实现完整的 MVU 模式
|
||||
- 集成到 ChatPage 和 CharacterManagePage
|
||||
- 支持持久化存储和 DevTools
|
||||
- 内置变量替换工具函数
|
||||
- ✅ **修复关键 Bug**
|
||||
- 修复开场白消息未应用正则脚本问题
|
||||
- 修复 API 导出名称不匹配导致页面空白问题
|
||||
|
||||
### 待测试功能(下次工作)
|
||||
- 🧪 **全局正则脚本功能测试**
|
||||
- 测试全局脚本在所有对话中的应用
|
||||
- 测试导入导出功能
|
||||
- 测试脚本执行顺序
|
||||
- 🧪 **扩展变量系统测试**
|
||||
- 测试所有新增变量类型
|
||||
- 测试 `{{pick:}}` 随机选择功能
|
||||
- 测试时间格式化变量
|
||||
- 🧪 **MVU Store 集成测试**
|
||||
- 测试状态持久化
|
||||
- 测试变量系统自动更新
|
||||
- 测试跨页面状态同步
|
||||
- 🧪 **HTML 渲染优化测试**
|
||||
- 测试 markdown 代码块中的 HTML 渲染
|
||||
- 测试 iframe 宽度自适应
|
||||
- 测试脚本自动启用功能
|
||||
- ✅ 实现实际 AI API 调用(OpenAI/Anthropic)
|
||||
- 📋 实现世界书系统(完全兼容 SillyTavern)
|
||||
- 📋 实现正则脚本系统(完全兼容 SillyTavern)
|
||||
- 📋 实现 Prompt Pipeline(世界书触发、正则处理、提示词构建)
|
||||
- 📋 完善对话系统高级功能(消息重新生成、编辑)
|
||||
- ✅ 实现世界书系统(完全兼容 SillyTavern,包含触发引擎和对话集成)
|
||||
- ✅ 实现正则脚本系统(完全兼容 SillyTavern)
|
||||
- ✅ 实现 Prompt Pipeline(世界书触发注入、正则处理、提示词构建)
|
||||
- 📋 完善对话系统高级功能(消息编辑)
|
||||
- 📋 性能优化与测试
|
||||
- 📋 部署上线
|
||||
|
||||
@@ -806,21 +928,22 @@ web-app/src/pages/
|
||||
5. ✅ 完善对话系统高级功能(消息重新生成)
|
||||
|
||||
### 中期目标(本月)
|
||||
1. 📋 实现世界书系统(完全兼容 SillyTavern)
|
||||
- 数据模型设计
|
||||
- 关键词触发算法
|
||||
- 选择性触发逻辑
|
||||
- 与对话系统集成
|
||||
2. 📋 实现正则脚本系统(完全兼容 SillyTavern)
|
||||
- 数据模型设计
|
||||
- 多阶段脚本执行
|
||||
- 正则表达式引擎
|
||||
- 宏替换系统
|
||||
3. 📋 实现 Prompt Pipeline
|
||||
- 世界书扫描与注入
|
||||
- 正则脚本处理
|
||||
- 提示词构建优化
|
||||
1. ✅ 实现世界书系统(完全兼容 SillyTavern)
|
||||
- ✅ 数据模型设计
|
||||
- ✅ 关键词触发算法(WorldbookEngine)
|
||||
- ✅ 选择性触发逻辑
|
||||
- ✅ 与对话系统集成
|
||||
2. ✅ 实现正则脚本系统(完全兼容 SillyTavern)
|
||||
- ✅ 数据模型设计
|
||||
- ✅ 多阶段脚本执行
|
||||
- ✅ 正则表达式引擎
|
||||
- ✅ 宏替换系统
|
||||
3. ✅ 实现 Prompt Pipeline
|
||||
- ✅ 世界书扫描与注入
|
||||
- ✅ 正则脚本处理
|
||||
- ✅ 提示词构建优化
|
||||
4. 📋 基础功能测试与优化
|
||||
5. 📋 消息编辑功能
|
||||
|
||||
### 长期目标(下月)
|
||||
1. 📋 插件系统设计与实现
|
||||
|
||||
Reference in New Issue
Block a user