# 思维导图 - 思维导图生成插件

思维导图是一个强大的 OpenWebUI 动作插件，能够智能分析长篇文本内容，自动生成交互式思维导图，帮助用户结构化和可视化知识。

**作者:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **版本:** 0.9.1 | **项目:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **许可证:** MIT

## v0.9.1 更新亮点

**新功能：图片输出模式**

- **静态图片支持**：新增 `OUTPUT_MODE` 配置参数。
  - `html`（默认）：交互式 HTML 思维导图。
  - `image`：静态 SVG 图片直接嵌入 Markdown（**不输出 HTML 代码**，聊天记录更简洁）。
- **高效存储**：图片模式将 SVG 上传至 `/api/v1/files`，避免聊天记录中出现超长 Base64 字符串。
- **智能特性**：生成的图片支持自动响应式宽度和自动主题检测（亮色/暗色）。

## 核心特性 🔑

- ✅ **智能文本分析**：自动识别文本的核心主题、关键概念和层次结构。
- ✅ **交互式可视化**：基于 Markmap.js 生成美观的交互式思维导图。
- ✅ **高分辨率 PNG 导出**：导出高质量的 PNG 图片（9 倍分辨率）。
- ✅ **完整控制面板**：缩放控制、展开层级选择、全屏模式。
- ✅ **主题切换**：手动主题切换按钮与自动主题检测。
- ✅ **图片输出模式**：生成静态 SVG 图片直接嵌入 Markdown，聊天记录更简洁。

## 使用方法 🛠️

1. **安装**: 在 OpenWebUI 管理员设置 -> 插件 -> 动作中上传 `smart_mind_map_cn.py`。
2. **配置**: 确保配置了 LLM 模型（如 `gemini-2.5-flash`）。
3. **触发**: 在聊天设置中启用“思维导图”动作，并发送文本（至少 100 字符）。
4. **结果**: 思维导图将在聊天界面中直接渲染显示。

## 配置参数 (Valves) ⚙️

| 参数 | 默认值 | 描述 |
| :--- | :--- | :--- |
| `show_status` | `true` | 是否在聊天界面显示操作状态更新。 |
| `LLM_MODEL_ID` | `gemini-2.5-flash` | 用于文本分析的 LLM 模型 ID。 |
| `MIN_TEXT_LENGTH` | `100` | 进行思维导图分析所需的最小文本长度。 |
| `CLEAR_PREVIOUS_HTML` | `false` | 在生成新的思维导图时，是否清除之前的 HTML 内容。 |
| `MESSAGE_COUNT` | `1` | 用于生成思维导图的最近消息数量（1-5）。 |
| `OUTPUT_MODE` | `html` | 输出模式：`html`（交互式）或 `image`（静态图片）。 |

## 故障排除 (Troubleshooting) ❓

- **插件无法启动**：检查 OpenWebUI 日志，确认插件已正确上传并启用。
- **文本内容过短**：确保输入的文本至少包含 100 个字符。
- **渲染失败**：检查浏览器控制台，确认 Markmap.js 和 D3.js 库是否正确加载。
- **提交 Issue**: 如果遇到任何问题，请在 GitHub 上提交 Issue：[Awesome OpenWebUI Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)

---

## 技术架构

- **Markmap.js**：开源的思维导图渲染引擎。
- **PNG 导出技术**：9 倍缩放因子，输出打印级质量。
- **主题检测机制**：4 级优先级检测（手动 > Meta > Class > 系统）。
- **安全性增强**：XSS 防护与输入验证。

## 最佳实践

1. **文本准备**：提供结构清晰、层次分明的文本内容。
2. **模型选择**：日常使用推荐 `gemini-2.5-flash` 等快速模型。
3. **导出质量**：PNG 适合演示分享，SVG 适合进一步矢量编辑。
