From 9412a26bfcc6278e3af7a8b97fdcd411d1334f09 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Thu, 26 Jun 2025 09:28:29 +0800 Subject: [PATCH] =?UTF-8?q?update:=E4=BC=98=E5=8C=96=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/core/connection.py | 4 ++-- main/xiaozhi-server/core/handle/helloHandle.py | 2 +- main/xiaozhi-server/core/handle/intentHandler.py | 8 +++++--- main/xiaozhi-server/core/handle/textHandle.py | 4 ++-- .../xiaozhi-server/core/{ => providers}/tools/__init__.py | 0 .../core/{ => providers}/tools/base/__init__.py | 0 .../core/{ => providers}/tools/base/tool_executor.py | 0 .../core/{ => providers}/tools/base/tool_types.py | 0 .../core/{ => providers}/tools/device_iot/__init__.py | 0 .../{ => providers}/tools/device_iot/iot_descriptor.py | 0 .../core/{ => providers}/tools/device_iot/iot_executor.py | 8 ++++---- .../core/{ => providers}/tools/device_iot/iot_handler.py | 0 .../core/{ => providers}/tools/device_mcp/__init__.py | 0 .../core/{ => providers}/tools/device_mcp/mcp_client.py | 0 .../core/{ => providers}/tools/device_mcp/mcp_executor.py | 0 .../core/{ => providers}/tools/device_mcp/mcp_handler.py | 0 .../core/{ => providers}/tools/server_mcp/__init__.py | 0 .../core/{ => providers}/tools/server_mcp/mcp_executor.py | 0 .../core/{ => providers}/tools/server_mcp/mcp_manager.py | 0 .../core/{ => providers}/tools/server_plugins/__init__.py | 0 .../tools/server_plugins/plugin_executor.py | 0 .../core/{ => providers}/tools/unified_tool_handler.py | 0 .../core/{ => providers}/tools/unified_tool_manager.py | 0 23 files changed, 14 insertions(+), 12 deletions(-) rename main/xiaozhi-server/core/{ => providers}/tools/__init__.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/base/__init__.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/base/tool_executor.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/base/tool_types.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/device_iot/__init__.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/device_iot/iot_descriptor.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/device_iot/iot_executor.py (97%) rename main/xiaozhi-server/core/{ => providers}/tools/device_iot/iot_handler.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/device_mcp/__init__.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/device_mcp/mcp_client.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/device_mcp/mcp_executor.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/device_mcp/mcp_handler.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/server_mcp/__init__.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/server_mcp/mcp_executor.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/server_mcp/mcp_manager.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/server_plugins/__init__.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/server_plugins/plugin_executor.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/unified_tool_handler.py (100%) rename main/xiaozhi-server/core/{ => providers}/tools/unified_tool_manager.py (100%) diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index 88e115d9..eaae4e19 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -17,7 +17,7 @@ from core.utils.util import ( filter_sensitive_info, ) from typing import Dict, Any -from core.tools.base import ToolAction +from core.providers.tools.base import ToolAction from core.utils.modules_initialize import ( initialize_modules, initialize_tts, @@ -29,7 +29,7 @@ from concurrent.futures import ThreadPoolExecutor from core.utils.dialogue import Message, Dialogue from core.providers.asr.dto.dto import InterfaceType from core.handle.textHandle import handleTextMessage -from core.tools.unified_tool_handler import UnifiedToolHandler +from core.providers.tools.unified_tool_handler import UnifiedToolHandler from plugins_func.loadplugins import auto_import_modules from plugins_func.register import Action, ActionResponse from core.auth import AuthMiddleware, AuthenticationError diff --git a/main/xiaozhi-server/core/handle/helloHandle.py b/main/xiaozhi-server/core/handle/helloHandle.py index cb025bc1..e4e836b4 100644 --- a/main/xiaozhi-server/core/handle/helloHandle.py +++ b/main/xiaozhi-server/core/handle/helloHandle.py @@ -7,7 +7,7 @@ from core.utils.util import audio_to_data from core.handle.sendAudioHandle import sendAudioMessage, send_stt_message from core.utils.util import remove_punctuation_and_length, opus_datas_to_wav_bytes from core.providers.tts.dto.dto import ContentType, SentenceType -from core.tools.device_mcp import ( +from core.providers.tools.device_mcp import ( MCPClient, send_mcp_initialize_message, send_mcp_tools_list_request, diff --git a/main/xiaozhi-server/core/handle/intentHandler.py b/main/xiaozhi-server/core/handle/intentHandler.py index 4a298e6e..b80c43fe 100644 --- a/main/xiaozhi-server/core/handle/intentHandler.py +++ b/main/xiaozhi-server/core/handle/intentHandler.py @@ -6,7 +6,7 @@ from core.handle.helloHandle import checkWakeupWords from core.utils.util import remove_punctuation_and_length from core.providers.tts.dto.dto import ContentType from core.utils.dialogue import Message -from core.tools.device_mcp import call_mcp_tool +from core.providers.tools.device_mcp import call_mcp_tool from plugins_func.register import Action, ActionResponse from loguru import logger @@ -109,10 +109,12 @@ async def process_intent_result(conn, intent_result, original_text): # 使用统一工具处理器处理所有工具调用 try: tool_result = asyncio.run_coroutine_threadsafe( - conn.func_handler.handle_llm_function_call(conn, function_call_data), + conn.func_handler.handle_llm_function_call( + conn, function_call_data + ), conn.loop, ).result() - + # 转换ToolResult为ActionResponse result = conn._convert_tool_result_to_action_response(tool_result) except Exception as e: diff --git a/main/xiaozhi-server/core/handle/textHandle.py b/main/xiaozhi-server/core/handle/textHandle.py index 3b3526d7..9bce2ca4 100644 --- a/main/xiaozhi-server/core/handle/textHandle.py +++ b/main/xiaozhi-server/core/handle/textHandle.py @@ -1,11 +1,11 @@ import json from core.handle.abortHandle import handleAbortMessage from core.handle.helloHandle import handleHelloMessage -from core.tools.device_mcp import handle_mcp_message +from core.providers.tools.device_mcp import handle_mcp_message from core.utils.util import remove_punctuation_and_length, filter_sensitive_info from core.handle.receiveAudioHandle import startToChat, handleAudioMessage from core.handle.sendAudioHandle import send_stt_message, send_tts_message -from core.tools.device_iot import handleIotDescriptors, handleIotStatus +from core.providers.tools.device_iot import handleIotDescriptors, handleIotStatus from core.handle.reportHandle import enqueue_asr_report import asyncio diff --git a/main/xiaozhi-server/core/tools/__init__.py b/main/xiaozhi-server/core/providers/tools/__init__.py similarity index 100% rename from main/xiaozhi-server/core/tools/__init__.py rename to main/xiaozhi-server/core/providers/tools/__init__.py diff --git a/main/xiaozhi-server/core/tools/base/__init__.py b/main/xiaozhi-server/core/providers/tools/base/__init__.py similarity index 100% rename from main/xiaozhi-server/core/tools/base/__init__.py rename to main/xiaozhi-server/core/providers/tools/base/__init__.py diff --git a/main/xiaozhi-server/core/tools/base/tool_executor.py b/main/xiaozhi-server/core/providers/tools/base/tool_executor.py similarity index 100% rename from main/xiaozhi-server/core/tools/base/tool_executor.py rename to main/xiaozhi-server/core/providers/tools/base/tool_executor.py diff --git a/main/xiaozhi-server/core/tools/base/tool_types.py b/main/xiaozhi-server/core/providers/tools/base/tool_types.py similarity index 100% rename from main/xiaozhi-server/core/tools/base/tool_types.py rename to main/xiaozhi-server/core/providers/tools/base/tool_types.py diff --git a/main/xiaozhi-server/core/tools/device_iot/__init__.py b/main/xiaozhi-server/core/providers/tools/device_iot/__init__.py similarity index 100% rename from main/xiaozhi-server/core/tools/device_iot/__init__.py rename to main/xiaozhi-server/core/providers/tools/device_iot/__init__.py diff --git a/main/xiaozhi-server/core/tools/device_iot/iot_descriptor.py b/main/xiaozhi-server/core/providers/tools/device_iot/iot_descriptor.py similarity index 100% rename from main/xiaozhi-server/core/tools/device_iot/iot_descriptor.py rename to main/xiaozhi-server/core/providers/tools/device_iot/iot_descriptor.py diff --git a/main/xiaozhi-server/core/tools/device_iot/iot_executor.py b/main/xiaozhi-server/core/providers/tools/device_iot/iot_executor.py similarity index 97% rename from main/xiaozhi-server/core/tools/device_iot/iot_executor.py rename to main/xiaozhi-server/core/providers/tools/device_iot/iot_executor.py index e2801127..abf3d937 100644 --- a/main/xiaozhi-server/core/tools/device_iot/iot_executor.py +++ b/main/xiaozhi-server/core/providers/tools/device_iot/iot_executor.py @@ -118,12 +118,12 @@ class DeviceIoTExecutor(ToolExecutor): ): """发送IoT控制命令""" for key, value in self.conn.iot_descriptors.items(): - if key == device_name: + if key.lower() == device_name.lower(): for method in value.methods: - if method["name"] == method_name: + if method["name"].lower() == method_name.lower(): command = { - "name": device_name, - "method": method_name, + "name": key, + "method": method["name"], } if parameters: diff --git a/main/xiaozhi-server/core/tools/device_iot/iot_handler.py b/main/xiaozhi-server/core/providers/tools/device_iot/iot_handler.py similarity index 100% rename from main/xiaozhi-server/core/tools/device_iot/iot_handler.py rename to main/xiaozhi-server/core/providers/tools/device_iot/iot_handler.py diff --git a/main/xiaozhi-server/core/tools/device_mcp/__init__.py b/main/xiaozhi-server/core/providers/tools/device_mcp/__init__.py similarity index 100% rename from main/xiaozhi-server/core/tools/device_mcp/__init__.py rename to main/xiaozhi-server/core/providers/tools/device_mcp/__init__.py diff --git a/main/xiaozhi-server/core/tools/device_mcp/mcp_client.py b/main/xiaozhi-server/core/providers/tools/device_mcp/mcp_client.py similarity index 100% rename from main/xiaozhi-server/core/tools/device_mcp/mcp_client.py rename to main/xiaozhi-server/core/providers/tools/device_mcp/mcp_client.py diff --git a/main/xiaozhi-server/core/tools/device_mcp/mcp_executor.py b/main/xiaozhi-server/core/providers/tools/device_mcp/mcp_executor.py similarity index 100% rename from main/xiaozhi-server/core/tools/device_mcp/mcp_executor.py rename to main/xiaozhi-server/core/providers/tools/device_mcp/mcp_executor.py diff --git a/main/xiaozhi-server/core/tools/device_mcp/mcp_handler.py b/main/xiaozhi-server/core/providers/tools/device_mcp/mcp_handler.py similarity index 100% rename from main/xiaozhi-server/core/tools/device_mcp/mcp_handler.py rename to main/xiaozhi-server/core/providers/tools/device_mcp/mcp_handler.py diff --git a/main/xiaozhi-server/core/tools/server_mcp/__init__.py b/main/xiaozhi-server/core/providers/tools/server_mcp/__init__.py similarity index 100% rename from main/xiaozhi-server/core/tools/server_mcp/__init__.py rename to main/xiaozhi-server/core/providers/tools/server_mcp/__init__.py diff --git a/main/xiaozhi-server/core/tools/server_mcp/mcp_executor.py b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_executor.py similarity index 100% rename from main/xiaozhi-server/core/tools/server_mcp/mcp_executor.py rename to main/xiaozhi-server/core/providers/tools/server_mcp/mcp_executor.py diff --git a/main/xiaozhi-server/core/tools/server_mcp/mcp_manager.py b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_manager.py similarity index 100% rename from main/xiaozhi-server/core/tools/server_mcp/mcp_manager.py rename to main/xiaozhi-server/core/providers/tools/server_mcp/mcp_manager.py diff --git a/main/xiaozhi-server/core/tools/server_plugins/__init__.py b/main/xiaozhi-server/core/providers/tools/server_plugins/__init__.py similarity index 100% rename from main/xiaozhi-server/core/tools/server_plugins/__init__.py rename to main/xiaozhi-server/core/providers/tools/server_plugins/__init__.py diff --git a/main/xiaozhi-server/core/tools/server_plugins/plugin_executor.py b/main/xiaozhi-server/core/providers/tools/server_plugins/plugin_executor.py similarity index 100% rename from main/xiaozhi-server/core/tools/server_plugins/plugin_executor.py rename to main/xiaozhi-server/core/providers/tools/server_plugins/plugin_executor.py diff --git a/main/xiaozhi-server/core/tools/unified_tool_handler.py b/main/xiaozhi-server/core/providers/tools/unified_tool_handler.py similarity index 100% rename from main/xiaozhi-server/core/tools/unified_tool_handler.py rename to main/xiaozhi-server/core/providers/tools/unified_tool_handler.py diff --git a/main/xiaozhi-server/core/tools/unified_tool_manager.py b/main/xiaozhi-server/core/providers/tools/unified_tool_manager.py similarity index 100% rename from main/xiaozhi-server/core/tools/unified_tool_manager.py rename to main/xiaozhi-server/core/providers/tools/unified_tool_manager.py