import importlib def load_tools_from_array(arr:list): ret = {} for item in arr: # 构建正确的模块路径,使用 __name__ 动态获取当前模块的父路径(此处正好为团队名称),并加上 .tools 子目录和工具名称 # parent_module_path = '.'.join(__name__.split('.')[:-1]) # module_path = f'{parent_module_path}.tools.{item}' module_path = f'teams.get_weather.tools.{item}' try: module = importlib.import_module(module_path) # 函数名预期与工具名称相同 func = getattr(module, item) ret[item] = func print(f"成功从模块 '{module_path}' 导入函数 '{item}'") except ImportError as e: print(f"导入模块 {module_path} 时出错: {e}") except AttributeError as e: print(f"在模块 {module_path} 中找不到函数 '{item}': {e}") return ret # def load_tools_from_db(): # tool_arr = ["get_weather", "get_current_time"] # return load_tools_from_array(tool_arr) def load_tools(tools_dict:dict): print("\n\n\n######## load_tools\ntools_dict: ", tools_dict) # load_tools_from_array(tools_dict) return load_tools_from_array(tools_dict) return tools_dict