Files
map-client-vue/TOOLS_DATA_IMPLEMENTATION.md
2025-10-14 21:52:11 +08:00

339 lines
7.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 工具管理与数据管理模块实现文档
## 📅 实现日期
2025年10月14日
## 📋 实现内容
### 1⃣ 工具管理模块 (ToolsManager.vue)
#### ✅ 已实现功能
##### 核心功能
- **工具列表展示**
- 卡片式网格布局
- 显示工具名称、描述、端点、参数数量
- 实时状态显示(已启用/已禁用)
- **工具 CRUD 操作**
- ✅ 添加工具:弹窗表单,支持配置名称、端点、参数
- ✅ 编辑工具:修改现有工具配置
- ✅ 删除工具:删除不需要的工具
- ✅ 启用/禁用工具:开关控制
- **工具测试**
- 发送 HTTP POST 请求测试工具端点
- 支持自定义测试参数JSON 格式)
- 显示测试结果和响应数据
- **数据持久化**
- LocalStorage 存储key: `mcp-tools`
- 自动保存和加载
- **其他功能**
- 复制工具配置到剪贴板
- 参数配置 JSON 编辑器
- 表单验证
#### 🎨 UI 特性
- 响应式网格布局(每行最多 3 个卡片)
- 空状态提示
- 加载动画
- 成功/失败状态反馈
- Naive UI 组件集成
#### 📊 数据结构
```typescript
interface Tool {
id: string // 唯一标识
name: string // 工具名称(如: web_search
displayName?: string // 显示名称(如: 网页搜索)
description: string // 工具描述
endpoint: string // API 端点地址
parameters: Record<string, any> // 参数配置JSON 对象)
enabled: boolean // 启用状态
createdAt?: Date // 创建时间
updatedAt?: Date // 更新时间
}
```
---
### 2⃣ 数据管理模块 (DataManager.vue)
#### ✅ 已实现功能
##### 统计仪表板
- **4 个统计卡片**
- 对话数量
- 消息总数
- 存储使用量(自动计算)
- 最后活动时间
##### 对话历史管理
- **对话列表**
- 显示所有对话历史
- 显示消息数量和更新时间
- 对话预览(最后一条消息)
- 相对时间显示刚刚、5分钟前、今天等
- **搜索功能**
- 搜索对话标题
- 搜索消息内容
- 实时过滤
- **对话操作**
- ✅ 查看详情:弹窗显示完整对话内容
- ✅ 导出对话:单个对话导出为 JSON
- ✅ 删除对话:删除不需要的对话
##### 数据导出
- **全量导出**
- 导出所有对话历史
- 导出工具配置
- 导出模型服务配置
- 导出系统设置
- 包含导出时间戳
##### 数据清理
- **选择性清理**
- 对话历史
- 工具配置
- 模型服务
- 系统设置
- 清理前警告提示
#### 🎨 UI 特性
- 现代化卡片布局
- 统计数据可视化
- 消息气泡样式(用户/助手区分)
- 空状态提示
- 搜索框集成
- 确认对话框
#### 📊 数据结构
```typescript
interface Message {
role: 'user' | 'assistant' | 'system'
content: string
timestamp: Date
}
interface Conversation {
id: string
title: string
messages: Message[]
createdAt: Date
updatedAt: Date
}
```
---
## 🔧 技术栈
### 前端框架
- **Vue 3**: Composition API
- **TypeScript**: 类型安全
- **Naive UI**: UI 组件库
### 状态管理
- **LocalStorage**: 本地持久化
- `mcp-tools`: 工具配置
- `mcp-conversations`: 对话历史
- `model-services`: 模型服务
- `mcp-settings`: 系统设置
### 图标库
- **@vicons/tabler**: 图标组件
---
## 📁 文件结构
```
web/src/components/
├── ToolsManager.vue # 工具管理组件540 行)
├── DataManager.vue # 数据管理组件580 行)
└── SimpleApp.vue # 主应用(已更新引用)
```
---
## 🚀 使用方法
### 工具管理
#### 添加工具
1. 点击「添加工具」按钮
2. 填写工具信息:
- **工具名称**: 英文标识符(如 `web_search`
- **显示名称**: 中文名称(如 `网页搜索`
- **描述**: 工具功能说明
- **端点地址**: API URL`http://localhost:8080/api/search`
- **参数配置**: JSON 格式
```json
{
"query": {
"type": "string",
"description": "搜索关键词"
},
"max_results": {
"type": "number",
"description": "最大结果数",
"default": 10
}
}
```
3. 点击「保存」
#### 测试工具
1. 点击工具卡片上的「测试工具」按钮
2. 输入测试参数:
```json
{
"query": "Vue 3 教程",
"max_results": 5
}
```
3. 点击「运行测试」
4. 查看响应结果
### 数据管理
#### 查看对话
1. 在对话列表中找到目标对话
2. 点击眼睛图标查看详情
3. 可以看到完整的消息历史
#### 导出数据
- **单个对话**: 点击下载图标导出 JSON
- **全部数据**: 点击顶部「导出数据」按钮
#### 清理数据
1. 点击「清理数据」按钮
2. 选择要清理的数据类型
3. 确认清理(⚠️ 不可恢复)
---
## 🎯 功能亮点
### 工具管理
- ✅ 完整的 CRUD 操作
- ✅ 实时测试功能
- ✅ JSON 参数配置
- ✅ 启用/禁用开关
- ✅ 配置导出复制
### 数据管理
- ✅ 统计仪表板
- ✅ 搜索过滤
- ✅ 对话详情查看
- ✅ 数据导出(单个/全量)
- ✅ 选择性清理
- ✅ 自动计算存储使用
---
## 📝 数据示例
### 示例工具配置
```json
{
"id": "tool_1697123456789_abc123",
"name": "web_search",
"displayName": "网页搜索",
"description": "搜索网页内容并返回结果",
"endpoint": "http://localhost:8080/api/search",
"parameters": {
"query": {
"type": "string",
"description": "搜索关键词"
}
},
"enabled": true,
"createdAt": "2025-10-14T10:00:00.000Z",
"updatedAt": "2025-10-14T10:00:00.000Z"
}
```
### 示例对话数据
```json
{
"id": "conv_1697123456789_xyz789",
"title": "Vue 3 学习讨论",
"messages": [
{
"role": "user",
"content": "Vue 3 的 Composition API 有什么优势?",
"timestamp": "2025-10-14T10:00:00.000Z"
},
{
"role": "assistant",
"content": "Vue 3 的 Composition API 主要有以下优势...",
"timestamp": "2025-10-14T10:00:05.000Z"
}
],
"createdAt": "2025-10-14T10:00:00.000Z",
"updatedAt": "2025-10-14T10:00:05.000Z"
}
```
---
## 🔮 后续优化建议
### 工具管理
- [ ] 工具版本管理
- [ ] 工具依赖关系
- [ ] 工具市场/商店
- [ ] 批量导入工具
- [ ] 工具使用统计
- [ ] 工具权限管理
- [ ] WebSocket 测试支持
### 数据管理
- [ ] 向量数据库集成
- [ ] RAG 数据源配置
- [ ] 数据分析图表
- [ ] 自动备份功能
- [ ] 数据同步(云端)
- [ ] 高级搜索(正则、标签)
- [ ] 导入数据功能
- [ ] 对话标签分类
---
## 🐛 已知限制
1. **LocalStorage 容量限制**
- 浏览器限制约 5-10MB
- 建议定期导出备份
2. **工具测试**
- 仅支持 POST 请求
- 需要处理 CORS 问题
- 10 秒超时限制
3. **数据导出**
- 仅支持 JSON 格式
- 未包含二进制数据
---
## 📞 技术支持
如需帮助或报告问题,请:
1. 检查浏览器控制台错误
2. 查看 LocalStorage 数据
3. 导出数据备份后重试
---
*最后更新: 2025-10-14*