tooluniverse.tool_finder_keyword 模块¶
基于关键词的工具查找器 - 一款用于查找相关工具的高级关键词搜索工具。
该工具利用自然语言处理技术提供高级关键词匹配功能,包括分词、停用词去除、词干提取及TF-IDF评分,以提升相关性排序效果。当无法使用人工智能驱动的搜索方法时,该工具作为一种强大的搜索手段。
- class tooluniverse.tool_finder_keyword.ToolFinderKeyword[源代码]¶
基类:
BaseTool基于高级关键词的工具查找器,采用复杂的文本处理和TF-IDF评分技术。
本类实现了用于工具发现的自然语言处理技术,包括: - 分词与规范化 - 停用词去除 - 基础词干提取 - TF-IDF 相关性评分 - 语义短语匹配
搜索通过解析用户查询以提取关键术语,利用自然语言处理(NLP)管道进行处理,并与预先构建的工具元数据索引进行匹配,从而实现高效且相关的工具发现。
- STOP_WORDS = {'a', 'all', 'an', 'and', 'any', 'are', 'as', 'at', 'be', 'boy', 'but', 'by', 'came', 'can', 'day', 'did', 'do', 'down', 'each', 'for', 'from', 'get', 'had', 'has', 'have', 'he', 'how', 'if', 'in', 'is', 'it', 'its', 'long', 'made', 'may', 'new', 'no', 'now', 'number', 'of', 'old', 'on', 'part', 'said', 'see', 'that', 'the', 'their', 'they', 'this', 'time', 'to', 'two', 'up', 'use', 'was', 'way', 'what', 'which', 'who', 'will', 'with', 'your'}¶
- STEMMING_RULES = [('ies', 'y'), ('ied', 'y'), ('ying', 'y'), ('ing', ''), ('ly', ''), ('ed', ''), ('ies', 'y'), ('ier', 'y'), ('iest', 'y'), ('s', ''), ('es', ''), ('er', ''), ('est', ''), ('tion', 't'), ('sion', 's'), ('ness', ''), ('ment', ''), ('able', ''), ('ible', ''), ('ful', ''), ('less', ''), ('ous', ''), ('ive', ''), ('al', ''), ('ic', ''), ('ize', ''), ('ise', ''), ('ate', ''), ('fy', ''), ('ify', '')]¶
- __init__(tool_config, tooluniverse=None)[源代码]¶
初始化高级基于关键词的工具查找器。
- 参数:
tool_config (
dict) – 工具的配置字典tooluniverse – 引用包含所有工具的 ToolUniverse 实例
- find_tools(message=None, picked_tool_names=None, rag_num=5, return_call_result=False, categories=None)[源代码]¶
根据消息或预先选择的工具名称查找相关工具。
该方法与其他工具查找器的接口保持一致,以确保无缝替换。它采用基于关键词的搜索,而非嵌入相似度。
- 参数:
message (
str, optional) – 查询消息以查找工具。若 picked_tool_names 为 None,则为必填项。picked_tool_names (
list, optional) – 预先选择的工具名称以进行处理。如果消息为 None,则为必填项。rag_num (
int, optional) – 过滤后返回的工具数量。默认值为5。return_call_result (
bool, optional) – 如果为 True,则返回提示词和工具名称。默认值为 False。categories (
list, optional) – 按工具类别筛选的列表。
- 退货
- str or tuple:
如果 return_call_result 为 False:工具以格式化字符串形式提示
如果 return_call_result 为 True:返回 (tool_prompts, tool_names) 元组
- 抛出:
AssertionError – 如果 message 和 picked_tool_names 均为 None
- run(arguments)[源代码]¶
使用基于高级关键词的搜索,结合自然语言处理(NLP)和TF-IDF评分,查找工具。
该方法提供了一个与其他工具查找器兼容的统一接口。
- 参数:
arguments (
dict) – 包含以下内容的字典: - description(字符串):搜索查询字符串(统一参数名称) - categories(列表,可选):用于筛选的类别列表 - limit(整数,可选):返回结果的最大数量(默认值:10) - picked_tool_names(列表,可选):预先选择的工具名称列表,用于处理 - return_call_result(布尔值,可选):是否返回提示和名称,默认为 False。
- 退货
- str or tuple:
如果 return_call_result 为 False:工具以格式化字符串形式提示
如果 return_call_result 为 True:返回 (tool_prompts, tool_names) 元组