Files
map-client-vue/RELEASE_v1.0.2.md
douboer 1a57696110 docs: 添加 v1.0.2 详细发布总结
- 核心功能实现说明
- 技术实现细节
- 代码变更统计
- 测试清单
- 部署状态
- 使用说明和示例
2025-10-14 22:00:59 +08:00

5.6 KiB
Raw Permalink Blame History

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 格式
  • 转换规则:
    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+ 行文档注释

测试清单

功能测试

  • 工具列表获取正常
  • 工具格式转换正确
  • AI 识别工具调用
  • 工具执行成功
  • 工具结果整合到回复
  • 多轮对话正常
  • 错误处理完善
  • 状态提示友好

编译检查

  • TypeScript 编译通过
  • 无运行时错误
  • 类型定义完整

Git 操作

  • 代码提交成功
  • 标签创建成功
  • 推送到远程成功

🚀 部署状态

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