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