1. 系统架构概述本系统采用前后端分离架构,旨在支持高度自定义的角色扮演体验。 前端 (Vue 3):负责 UI 渲染、插件面板挂载、脚本沙箱执行及动态 HTML 处理。 后端 (Go):处理业务逻辑、Prompt 组装、插件权限校验及静态资源分发。 数据库 (PostgreSQL):存储用户数据、角色卡设定、对话历史及插件配置(JSONB)。 2. 插件分类定义系统支持以下两类插件,并区分 公共 (Public) 与 私人 (Private) 权限: 插件类型实现技术核心功能设定集 (Lorebook)后端注入 + 数据库检索关键词触发知识点注入 Prompt。 功能扩展 (Extension)前端沙箱 (Iframe/JS)增加 UI 面板、导入脚本库、渲染自定义 HTML。 3. 数据库模型设计3.1 插件主表 (plugins) ```SQL CREATE TABLE plugins ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(100) NOT NULL, type VARCHAR(20) NOT NULL, -- 'lorebook' 或 'extension' is_public BOOLEAN DEFAULT false, owner_id UUID REFERENCES users(id), manifest JSONB, -- 存储版本、作者、入口点等元数据 created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); ``` 3.2 设定条目表 (lore_items) ```SQL CREATE TABLE lore_items ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), plugin_id UUID REFERENCES plugins(id) ON DELETE CASCADE, keywords TEXT[], -- 触发词:["魔法", "火球"] content TEXT NOT NULL, -- 注入内容 priority INT DEFAULT 10 -- 插入顺序 ); ``` 3.3 用户配置表 (user_plugin_configs) ```SQL CREATE TABLE user_plugin_configs ( user_id UUID REFERENCES users(id), plugin_id UUID REFERENCES plugins(id), is_enabled BOOLEAN DEFAULT true, settings JSONB, -- 存储插件的个性化设置 PRIMARY KEY (user_id, plugin_id) ); ``` 4. 后端开发:设定集注入逻辑 (Go) 4.1 Prompt 组装流程后端在向 LLM 发送请求前,需执行以下伪逻辑: 分词匹配:提取用户最新输入及其上下文,比对数据库中的 keywords。 内容提取:获取命中条目的 content。 模板拼接: ```Plaintext {{System_Prompt}} [相关设定注入区] {{Injected_Lore_Content}} ---------------- {{Chat_History}} {{User_Input}} ``` 5. 前端开发:扩展功能实现 (Vue 3) 5.1 插件面板挂载参考 src/Panel.vue 的设计,利用动态组件加载插件配置:功能:读取插件的 manifest.settings_schema。交互:通过 Vue 响应式表单实时预览设置效果,并保存至后端 JSONB 字段。 5.2 脚本沙箱与 HTML 渲染参考你提供的 Iframe.vue 逻辑,为“酒馆助手”类插件提供运行环境:A. 沙箱初始化使用不可见的