2026年物业门控五金耗材推荐榜:中企创联工业品,小区/写字楼/物业多场景门控配件全覆盖
2026/3/2 14:07:46
{"tools":[{"type":"function","function":{"name":"getWeatherForecastByLocation","description":"获取指定位置的天气预报信息","parameters":{"type":"object","properties":{"location":{"type":"string","description":"城市或地区名称"}},"required":["location"]}}}]}传统架构: AI应用1 → 内置Tools AI应用2 → 内置Tools (重复开发) AI应用3 → 内置Tools (重复开发) MCP架构: AI应用1 → MCP Client → MCP Server (通用Tools服务) AI应用2 → MCP Client → MCP Server AI应用3 → MCP Client → MCP Server应用层:AI应用 ↔ MCP Client ↔ MCP Server 模型层:大模型 ↔ 传统Tools方式 (保持不变)/** * MCP工具集成测试类 * 演示如何通过MCP协议集成外部工具服务 */publicclassMcpIntegrationExample{/** * 测试百度地图MCP服务集成 * 演示完整的MCP客户端构建和工具调用流程 */@TestpublicvoidtestBaiduMapMcpIntegration()throwsException{// 1. 构建大语言模型实例ChatLanguageModelmodel=createQwenModel();// 2. 配置MCP传输层 (支持SSE和Stdio两种方式)McpTransporttransport=createStdioMcpTransport();// 3. 构建MCP客户端McpClientmcpClient=createMcpClient(transport);// 4. 创建工具提供者,支持多个MCP服务聚合ToolProvidertoolProvider=createAggregatedToolProvider(mcpClient);// 5. 构建AI服务代理Botbot=createAIServiceBot(model,toolProvider);try{// 6. 执行工具增强的对话Stringresponse=bot.chat("规划从长沙到武汉的骑行路线,需要避开高速公路");System.out.println("AI响应: "+response);// 测试其他功能StringweatherResponse=bot.chat("查询北京市今天的天气情况");System.out.println("天气查询结果: "+weatherResponse);}finally{// 7. 资源清理mcpClient.close();}}// === 工具方法分解 ===/** * 创建千问模型实例 */privateChatLanguageModelcreateQwenModel(){returnQwenChatModel.builder().apiKey(System.getenv("ALI_AI_KEY")).modelName("qwen-max").temperature(0.7).maxTokens(2000).build();}/** * 创建标准IO传输的MCP服务 */privateMcpTransportcreateStdioMcpTransport(){returnnewStdioMcpTransport.Builder().command(Arrays.asList("cmd","/c","npx","-y","@baidumap/mcp-server-baidu-map","mcp/github")).environment(Map.of("BAIDU_MAP_API_KEY",System.getenv("BAIDU_MAP_API_KEY"))).logEvents(true)// 开启日志便于调试.build();}/** * 创建MCP客户端 */privateMcpClientcreateMcpClient(McpTransporttransport){returnnewDefaultMcpClient.Builder().transport(transport).requestTimeout(Duration.ofMinutes(2)).build();}/** * 创建聚合工具提供者,支持多个MCP服务 */privateToolProvidercreateAggregatedToolProvider(McpClient...clients){returnMcpToolProvider.builder().mcpClients(Arrays.asList(clients)).build();}/** * 创建AI服务代理 */privateBotcreateAIServiceBot(ChatLanguageModelmodel,ToolProvidertoolProvider){returnAiServices.builder(Bot.class).chatLanguageModel(model).toolProvider(toolProvider).build();}/** * AI服务接口定义 */interfaceBot{Stringchat(StringuserMessage);}}# 必需的环境变量 export ALI_AI_KEY="你的阿里云AI密钥" export BAIDU_MAP_API_KEY="你的百度地图API密钥" # 可选:其他MCP服务配置 export WEATHER_API_KEY="天气服务密钥" export DATABASE_URL="数据库连接"模型初始化 → 传输层配置 → 客户端构建 → 工具聚合 → 服务代理 → 业务调用