Spaces:
Runtime error
Runtime error
| 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 |