diff --git a/README.md b/README.md index cc23db9..1bec981 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,71 @@ metona-ollama-vectors (IndexedDB) --- +## 🤖 Agent 预设系统 + +用户可以创建、保存多个"角色预设",每个预设包含系统提示词、温度、上下文长度、Think 开关等参数。**一键切换预设 = 切换人格/工作模式**,无需每次手动修改设置。 + +### 工作流程 + +``` +选择预设 → applyPresetToState() → 同步到全局 state + 设置面板 UI + ├── systemPrompt (系统提示词) + ├── temperature (温度 0~2) + ├── numCtx (上下文长度) + └── think (Think 推理开关) + ↓ + 用户直接发消息 → 使用新预设配置调用 /api/chat +``` + +### 内置预设 + +| 预设 | 图标 | 温度 | 上下文 | Think | 说明 | +|------|------|------|--------|-------|------| +| 默认 | 💬 | 0.7 | 24576 | ❌ | 通用对话,无系统提示词 | +| 翻译官 | 🌐 | 0.3 | 16384 | ❌ | 专业翻译,自动识别语言,保持格式语气 | +| 代码审查 | 🔍 | 0.2 | 32768 | ✅ | Bug/安全/性能/可读性五维审查,按严重程度排列 | +| 写作助手 | ✍️ | 0.9 | 24576 | ❌ | 多文体创作、润色、风格调整,温度较高鼓励创意 | +| 数据分析师 | 📊 | 0.4 | 32768 | ✅ | 统计分析、可视化建议、可执行洞察 | +| 学习导师 | 🎓 | 0.6 | 24576 | ✅ | 苏格拉底式引导教学,由浅入深 | + +### 使用方式 + +1. 模型选择栏下方显示 **预设栏**,点击胶囊按钮即可切换 +2. 点击右侧 **+** 按钮打开管理面板 +3. 创建自定义预设:填写名称、图标、系统提示词、温度、上下文长度、Think 开关 +4. 右键自定义预设胶囊可编辑/删除 + +### 数据存储 + +预设存储在 IndexedDB `settings` Store 中: + +``` +metona-ollama (IndexedDB) +├── sessions # 聊天会话 +└── settings + ├── agentPresets # 用户自定义预设数组 + ├── activePresetId # 当前激活预设 ID + ├── systemPrompt # 当前系统提示词 + ├── systemPromptEnabled # 系统提示词开关 + ├── numCtx # 上下文长度 + └── temperature # 温度参数 +``` + +### 核心模块 + +| 模块 | 文件 | 职责 | +|------|------|------| +| 预设管理 | `js/preset-manager.js` | 预设 CRUD、内置预设定义、切换时应用配置 | +| 预设栏 | `js/components/preset-bar.js` | 预设胶囊按钮 UI、管理模态框(新建/编辑/删除) | + +### 与设置面板的关系 + +- 预设系统和设置面板 **双向同步**:切换预设自动更新设置面板;设置面板修改也会反映在当前预设状态 +- 预设是设置的 **快捷方式**,本质操作的是同一组参数(systemPrompt / numCtx / temperature / think) +- 内置预设不可修改/删除,自定义预设完全可编辑 + +--- + ## 🔌 Ollama API 调用清单 Metona 通过 `js/ollama-api.js` 封装了 Ollama REST API,以下是所有调用的接口: