update at 2025-10-14 21:56:45
This commit is contained in:
160
release.md
160
release.md
@@ -155,3 +155,163 @@ npm run dev
|
|||||||
### ⚠️ 已知问题
|
### ⚠️ 已知问题
|
||||||
- TypeScript类型错误47个(不影响功能)
|
- TypeScript类型错误47个(不影响功能)
|
||||||
- 使用 `npm run build:skip-check` 跳过类型检查
|
- 使用 `npm run build:skip-check` 跳过类型检查
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## v1.0.2
|
||||||
|
|
||||||
|
发布时间: 2025-10-14
|
||||||
|
|
||||||
|
### 🎯 重大功能:MCP 工具调用集成
|
||||||
|
|
||||||
|
本版本实现了完整的 MCP 工具调用功能,AI 可以智能调用 MCP 服务器提供的工具并整合结果。
|
||||||
|
|
||||||
|
#### ✨ 核心功能
|
||||||
|
|
||||||
|
**🔧 智能工具调用**
|
||||||
|
- AI 自动识别何时需要调用工具
|
||||||
|
- 支持 OpenAI Function Calling 协议
|
||||||
|
- 兼容多个 AI 服务商(OpenAI、火山引擎、阿里云等)
|
||||||
|
- 完整的多轮对话支持(AI → Tool → AI)
|
||||||
|
|
||||||
|
**🔄 流式工具执行**
|
||||||
|
- 实时显示工具调用进度
|
||||||
|
- 流式体验不中断
|
||||||
|
- 友好的状态提示:
|
||||||
|
- 🔧 正在调用工具: [工具名]...
|
||||||
|
- ✅ 工具执行完成
|
||||||
|
- ❌ 工具执行失败: [错误信息]
|
||||||
|
- 🤖 正在生成回复...
|
||||||
|
|
||||||
|
**📋 工具格式转换**
|
||||||
|
- MCP 工具 → OpenAI Function 格式
|
||||||
|
- 自动提取 inputSchema 作为 parameters
|
||||||
|
- 支持完整的 JSON Schema 定义
|
||||||
|
|
||||||
|
#### 🛠️ 技术实现
|
||||||
|
|
||||||
|
**服务层改进**
|
||||||
|
- `MCPClientService.getTools()` - 获取工具列表
|
||||||
|
- `chatService.convertToolsToOpenAIFormat()` - 格式转换
|
||||||
|
- `chatService.executeToolCalls()` - 工具执行逻辑
|
||||||
|
- `modelServiceManager.sendChatRequestStream()` - 增强工具参数支持
|
||||||
|
|
||||||
|
**流式解析增强**
|
||||||
|
- SSE 流中检测 `tool_calls`
|
||||||
|
- 累积多个流片段中的工具调用数据
|
||||||
|
- 正确拼接 `function.arguments` JSON 字符串
|
||||||
|
- 返回完整的工具调用数组
|
||||||
|
|
||||||
|
**消息格式支持**
|
||||||
|
```typescript
|
||||||
|
// 工具调用消息
|
||||||
|
{
|
||||||
|
role: 'assistant',
|
||||||
|
content: '',
|
||||||
|
tool_calls: [{
|
||||||
|
id: '...',
|
||||||
|
type: 'function',
|
||||||
|
function: { name: '...', arguments: '{}' }
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 工具结果消息
|
||||||
|
{
|
||||||
|
tool_call_id: '...',
|
||||||
|
role: 'tool',
|
||||||
|
name: 'tool_name',
|
||||||
|
content: '{...}'
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 📦 使用方式
|
||||||
|
|
||||||
|
1. **配置 AI 服务** - 在"模型服务"中添加支持函数调用的 AI
|
||||||
|
2. **连接 MCP 服务器** - 在"MCP 设置"中添加工具服务器
|
||||||
|
3. **选择模型和 MCP** - 在对话界面选择
|
||||||
|
4. **开始对话** - AI 会自动调用相关工具
|
||||||
|
|
||||||
|
#### 💡 使用示例
|
||||||
|
|
||||||
|
```
|
||||||
|
用户: "查询今天北京的天气"
|
||||||
|
|
||||||
|
系统: 🔧 正在调用工具: get_weather...
|
||||||
|
✅ 工具执行完成
|
||||||
|
🤖 正在生成回复...
|
||||||
|
|
||||||
|
AI: "根据天气数据,今天北京晴天,温度 15-25°C,
|
||||||
|
空气质量良好,适合户外活动。"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 🐛 Bug 修复
|
||||||
|
|
||||||
|
- ✅ 修复 MCPClientService 类型导入问题
|
||||||
|
- ✅ 修复 types.ts 和 types/index.ts 路径冲突
|
||||||
|
- ✅ 修复 modelServiceManager 返回类型
|
||||||
|
- ✅ 修复未使用变量警告
|
||||||
|
|
||||||
|
#### 🔧 技术细节
|
||||||
|
|
||||||
|
**修改的文件**
|
||||||
|
- `/web/src/services/chatService.ts` - 工具调用主逻辑
|
||||||
|
- `/web/src/services/modelServiceManager.ts` - 工具参数支持
|
||||||
|
- `/web/src/services/MCPClientService.ts` - 工具列表获取
|
||||||
|
|
||||||
|
**新增方法**
|
||||||
|
- `MCPClientService.getTools(serverId)` - 获取服务器工具
|
||||||
|
- `chatService.convertToolsToOpenAIFormat()` - 格式转换
|
||||||
|
- `chatService.executeToolCalls()` - 执行工具调用
|
||||||
|
|
||||||
|
**改进方法**
|
||||||
|
- `modelServiceManager.sendChatRequestStream()` - 支持 tools 参数
|
||||||
|
- `modelServiceManager.makeChatRequestStream()` - 检测和收集 tool_calls
|
||||||
|
|
||||||
|
#### 🎯 设计亮点
|
||||||
|
|
||||||
|
1. **无缝集成** - 不改变现有对话流程
|
||||||
|
2. **错误恢复** - 工具调用失败不影响对话继续
|
||||||
|
3. **类型安全** - 完整的 TypeScript 类型定义
|
||||||
|
4. **性能优化** - 流式处理保持响应速度
|
||||||
|
5. **用户友好** - 清晰的进度提示
|
||||||
|
|
||||||
|
#### ⚙️ 配置要求
|
||||||
|
|
||||||
|
**AI 服务要求**
|
||||||
|
- 支持 OpenAI Function Calling 格式
|
||||||
|
- 推荐:OpenAI GPT-3.5+, GPT-4+
|
||||||
|
- 兼容:火山引擎、阿里云等 OpenAI 兼容服务
|
||||||
|
|
||||||
|
**MCP 服务器要求**
|
||||||
|
- 实现 `tools/list` 接口
|
||||||
|
- 实现 `tools/call` 接口
|
||||||
|
- 提供标准的 inputSchema (JSON Schema)
|
||||||
|
|
||||||
|
### 📚 相关文档
|
||||||
|
|
||||||
|
- [完整文档](./README.md)
|
||||||
|
- [更新日志](./CHANGELOG.md)
|
||||||
|
- [故障排除](./CURRENT_STATUS.md)
|
||||||
|
|
||||||
|
### 🚀 升级指南
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 拉取最新代码
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
# 安装依赖(如有更新)
|
||||||
|
cd web && npm install
|
||||||
|
|
||||||
|
# 启动开发服务器
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🔜 下一步计划
|
||||||
|
|
||||||
|
- 工具调用历史记录
|
||||||
|
- 工具执行超时控制
|
||||||
|
- 批量工具调用优化
|
||||||
|
- 工具调用权限管理
|
||||||
|
- 工具调用性能监控
|
||||||
|
|
||||||
|
**v1.0.2 - AI + MCP 工具调用,让对话更智能!** 🚀🔧
|
||||||
|
|||||||
Reference in New Issue
Block a user