244 lines
5.6 KiB
Markdown
244 lines
5.6 KiB
Markdown
# v1.0.2 发布总结
|
||
|
||
## 📦 版本信息
|
||
|
||
- **版本号**: v1.0.2
|
||
- **发布日期**: 2025-10-14
|
||
- **Git Tag**: ✅ 已创建并推送
|
||
- **提交哈希**: 50e3bb1
|
||
|
||
---
|
||
|
||
## 🎯 核心功能:MCP 工具调用集成
|
||
|
||
### 实现概述
|
||
|
||
本版本实现了完整的 AI + MCP 工具调用集成,当用户在对话中选择 MCP 服务器后,AI 可以:
|
||
1. 自动识别何时需要调用工具
|
||
2. 调用 MCP 服务器提供的工具
|
||
3. 将工具执行结果整合到回复中
|
||
4. 支持多轮对话(AI → Tool → AI)
|
||
|
||
### 技术实现
|
||
|
||
#### 1. 工具列表获取
|
||
- **文件**: `/web/src/services/MCPClientService.ts`
|
||
- **方法**: `getTools(serverId: string): Tool[]`
|
||
- **功能**: 从已连接的 MCP 服务器获取可用工具列表
|
||
|
||
#### 2. 工具格式转换
|
||
- **文件**: `/web/src/services/chatService.ts`
|
||
- **方法**: `convertToolsToOpenAIFormat(mcpTools: any[]): any[]`
|
||
- **功能**: 将 MCP 工具格式转换为 OpenAI Function Calling 格式
|
||
- **转换规则**:
|
||
```typescript
|
||
MCP Tool {
|
||
name: string
|
||
description: string
|
||
inputSchema: JSONSchema
|
||
}
|
||
|
||
↓ 转换为 ↓
|
||
|
||
OpenAI Function {
|
||
type: 'function'
|
||
function: {
|
||
name: string
|
||
description: string
|
||
parameters: JSONSchema
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 3. 工具调用执行
|
||
- **文件**: `/web/src/services/chatService.ts`
|
||
- **方法**: `executeToolCalls()`
|
||
- **流程**:
|
||
1. 遍历 AI 返回的 tool_calls
|
||
2. 解析工具名称和参数
|
||
3. 调用 `MCPClientService.callTool()`
|
||
4. 收集工具执行结果
|
||
5. 构建包含工具调用和结果的消息历史
|
||
6. 再次调用 AI 获取最终回复
|
||
|
||
#### 4. 流式解析增强
|
||
- **文件**: `/web/src/services/modelServiceManager.ts`
|
||
- **方法**: `makeChatRequestStream()`
|
||
- **改进**:
|
||
- 检测 SSE 流中的 `tool_calls`
|
||
- 使用 Map 累积多个流片段的工具调用数据
|
||
- 正确拼接 `function.arguments` JSON 字符串
|
||
- 返回完整的工具调用数组
|
||
|
||
### 用户体验
|
||
|
||
#### 实时状态提示
|
||
```
|
||
🔧 正在调用工具: get_weather...
|
||
✅ 工具执行完成
|
||
🤖 正在生成回复...
|
||
```
|
||
|
||
#### 错误处理
|
||
```
|
||
❌ 工具执行失败: 连接超时
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 文档更新
|
||
|
||
### 已更新文件
|
||
|
||
1. **release.md** ✅
|
||
- 添加完整的 v1.0.2 发布说明
|
||
- 详细的功能介绍
|
||
- 使用示例和配置要求
|
||
|
||
2. **CHANGELOG.md** ✅
|
||
- 记录 v1.0.2 的所有变更
|
||
- 新增功能列表
|
||
- Bug 修复说明
|
||
|
||
3. **VERSION.md** ✅ (新建)
|
||
- 版本信息汇总
|
||
- 技术栈说明
|
||
- 快速开始指南
|
||
- 升级指南
|
||
|
||
4. **package.json** ✅
|
||
- 版本号: 1.0.0 → 1.0.2
|
||
- 描述更新: 添加"AI 工具调用"
|
||
|
||
5. **web/package.json** ✅
|
||
- 版本号: 1.0.0 → 1.0.2
|
||
|
||
---
|
||
|
||
## 🔧 代码变更统计
|
||
|
||
### 修改的文件
|
||
- `/web/src/services/MCPClientService.ts`
|
||
- 新增 `getTools()` 方法
|
||
- 修复类型导入问题
|
||
|
||
- `/web/src/services/chatService.ts`
|
||
- 新增 `mcpClient` 实例
|
||
- 新增 `convertToolsToOpenAIFormat()` 方法
|
||
- 新增 `executeToolCalls()` 方法
|
||
- 修改 `callModelStream()` 支持工具调用
|
||
|
||
- `/web/src/services/modelServiceManager.ts`
|
||
- `sendChatRequestStream()` 新增 `tools` 参数
|
||
- `makeChatRequestStream()` 增强流式解析
|
||
- 返回类型修改为包含 `toolCalls`
|
||
|
||
### 新增代码行数
|
||
- 约 150+ 行核心逻辑
|
||
- 约 200+ 行文档注释
|
||
|
||
---
|
||
|
||
## ✅ 测试清单
|
||
|
||
### 功能测试
|
||
- [x] 工具列表获取正常
|
||
- [x] 工具格式转换正确
|
||
- [x] AI 识别工具调用
|
||
- [x] 工具执行成功
|
||
- [x] 工具结果整合到回复
|
||
- [x] 多轮对话正常
|
||
- [x] 错误处理完善
|
||
- [x] 状态提示友好
|
||
|
||
### 编译检查
|
||
- [x] TypeScript 编译通过
|
||
- [x] 无运行时错误
|
||
- [x] 类型定义完整
|
||
|
||
### Git 操作
|
||
- [x] 代码提交成功
|
||
- [x] 标签创建成功
|
||
- [x] 推送到远程成功
|
||
|
||
---
|
||
|
||
## 🚀 部署状态
|
||
|
||
### Git 仓库
|
||
- **分支**: main
|
||
- **最新提交**: 50e3bb1 - "docs: 更新 v1.0.2 版本文档"
|
||
- **标签**: v1.0.2 ✅
|
||
- **远程同步**: ✅
|
||
|
||
### Gitea Release
|
||
- **状态**: ⚠️ 创建失败 (HTTP 403)
|
||
- **原因**: 权限问题
|
||
- **影响**: 不影响代码使用,仅影响 Release 页面展示
|
||
|
||
---
|
||
|
||
## 📋 使用说明
|
||
|
||
### 前提条件
|
||
1. AI 服务需支持 OpenAI Function Calling 格式
|
||
- 推荐:OpenAI GPT-3.5+, GPT-4+
|
||
- 兼容:火山引擎、阿里云等
|
||
|
||
2. MCP 服务器需实现以下接口:
|
||
- `tools/list` - 返回工具列表
|
||
- `tools/call` - 执行工具调用
|
||
- 工具定义需包含 `inputSchema` (JSON Schema)
|
||
|
||
### 使用步骤
|
||
1. 在"模型服务"中添加 AI 服务
|
||
2. 在"MCP 设置"中添加工具服务器
|
||
3. 在对话界面选择模型和 MCP 服务器
|
||
4. 发送需要工具辅助的消息
|
||
5. AI 自动调用工具并整合结果
|
||
|
||
### 示例对话
|
||
```
|
||
用户: "查询今天北京的天气"
|
||
|
||
系统: 🔧 正在调用工具: get_weather...
|
||
参数: {"city": "北京", "date": "今天"}
|
||
✅ 工具执行完成
|
||
🤖 正在生成回复...
|
||
|
||
AI: "根据最新的天气数据,今天北京晴天,气温 15-25°C,
|
||
空气质量良好,非常适合户外活动。建议您可以去
|
||
公园散步或进行其他户外运动。"
|
||
```
|
||
|
||
---
|
||
|
||
## 🔜 后续计划
|
||
|
||
### v1.0.3 规划
|
||
- 工具调用历史记录
|
||
- 工具执行超时控制
|
||
- 工具调用权限管理
|
||
- 性能监控面板
|
||
|
||
### 长期规划
|
||
- 工具调用可视化
|
||
- 批量工具调用优化
|
||
- 工具链编排
|
||
- 自定义工具开发
|
||
|
||
---
|
||
|
||
## 📞 联系方式
|
||
|
||
- **Git 仓库**: ssh://biboer.cn:21174/gavin/map-client-vue.git
|
||
- **文档**: 项目根目录的 README.md
|
||
- **问题反馈**: CURRENT_STATUS.md
|
||
|
||
---
|
||
|
||
**v1.0.2 - AI + MCP 工具调用,让对话更智能!** 🚀🔧
|
||
|
||
发布时间: 2025-10-14
|
||
发布人: Gavin
|