在现代AI技术中,知识图谱(Knowledge Graph, KG)扮演着越来越重要的角色。本文将带领你深入了解两个重要的知识图谱检索器:KGTableRetriever和KnowledgeGraphRAGRetriever。通过这些工具,我们能够更有效地从庞大的知识库中提取有价值的信息,并应用于各种AI任务中。
KGTableRetriever
KGTableRetriever
是一个基于表格的知识图谱检索器,它的主要功能是从一个知识图谱中提取相关的三元组(triplets)。以下是一些重要的参数说明:
query_keyword_extract_template
: 关键词提取的模板(可选)。refine_template
: 提炼模板(必须)。text_qa_template
: 文本问答模板(必须)。max_keywords_per_query
: 每个查询最多提取的关键词数量。num_chunks_per_query
: 每个查询最多检索的文本块数量。include_text
: 是否在查询中包含文档文本。retriever_mode
: 指定使用关键词、嵌入或两者结合来找到相关的三元组。similarity_top_k
: 使用的顶级嵌入数量(如果使用嵌入)。graph_store_query_depth
: 图存储查询深度。use_global_node_triplets
: 是否从匹配的文本块获取更多关键词,这增加了全局知识。
例子代码:
from your_module import KGTableRetriever
retriever = KGTableRetriever(
query_keyword_extract_template=None, # 使用默认的提取模板
refine_template=your_refine_template, # 提供一个提炼模板
text_qa_template=your_text_qa_template, # 提供一个问答模板
max_keywords_per_query=10,
num_chunks_per_query=10,
include_text=True,
retriever_mode="KEYWORD",
similarity_top_k=2,
graph_store_query_depth=2,
use_global_node_triplets=False
)
注释: //中转API
KnowledgeGraphRAGRetriever
KnowledgeGraphRAGRetriever
主要用于对知识图谱进行子图RAG检索。以下是一些关键参数:
service_context
: 服务上下文(可选)。storage_context
: 存储上下文(可选)。entity_extract_fn
: 实体提取函数(可选)。entity_extract_template
: 实体提取模板(可选)。entity_extract_policy
: 实体提取策略,默认为 “union”。synonym_expand_fn
: 同义词扩展函数(可选)。synonym_expand_template
: 同义词扩展模板(可选)。synonym_expand_policy
: 同义词扩展策略,默认为 “union”。max_entities
: 每次提取的最大实体数,默认为5。max_synonyms
: 每个实体的最大同义词扩展数,默认为5。retriever_mode
: 检索模式,默认为 “keyword”。with_nl2graphquery
: 是否结合NL2GraphQuery,默认为False。graph_traversal_depth
: 图遍历深度,默认为2。max_knowledge_sequence
: 响应中包含的最大知识序列数,默认为30。verbose
: 是否打印调试信息,默认为False。
例子代码:
from your_module import KnowledgeGraphRAGRetriever
retriever = KnowledgeGraphRAGRetriever(
service_context=None, # 使用默认的服务上下文
storage_context=None, # 使用默认的存储上下文
entity_extract_fn=your_entity_extract_fn, # 提供一个实体提取函数
entity_extract_template=None, # 使用默认的实体提取模板
entity_extract_policy="union",
synonym_expand_fn=None, # 使用默认的同义词扩展函数
synonym_expand_template=None, # 使用默认的同义词扩展模板
synonym_expand_policy="union",
max_entities=5,
max_synonyms=5,
retriever_mode="keyword",
with_nl2graphquery=False,
graph_traversal_depth=2,
max_knowledge_sequence=30,
verbose=False
)
注释: //中转API
可能遇到的错误
- 参数配置错误:在初始化检索器时,如果一些参数配置不正确,可能会引发初始化错误。例如,没有提供必要的模板。
- 模式选择错误:
retriever_mode
的选择应该与具体使用场景匹配,错误的模式选择可能导致不准确的检索结果。 - 网络问题:如果使用在线API,网络连接问题可能会影响检索器的性能。
参考资料:
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!