File size: 1,269 Bytes
36d7815
 
 
 
 
 
57e6e1c
 
 
36d7815
 
 
 
 
 
 
 
 
 
 
 
57e6e1c
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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