转换
BaseGraphTransformation dataclass
BaseGraphTransformation(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter())
基类: ABC
应用于知识图谱的图谱转换的抽象基类。
transform abstractmethod
async
transform(kg: KnowledgeGraph) -> Any
转换知识图谱的抽象方法。转换应是幂等的,即多次应用该转换应产生与应用一次相同的结果。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
任意类型
|
转换后的知识图谱。 |
源代码位于 src/ragas/testset/transforms/base.py
过滤
filter(kg: KnowledgeGraph) -> KnowledgeGraph
过滤知识图谱并返回过滤后的图谱。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待过滤的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
知识图谱
|
过滤后的知识图谱。 |
源代码位于 src/ragas/testset/transforms/base.py
generate_execution_plan abstractmethod
generate_execution_plan(kg: KnowledgeGraph) -> List[Coroutine]
生成执行器将按顺序执行的协程列表。执行此协程后,会将转换结果写入知识图谱。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
列表[协程]
|
待并行执行的协程列表。 |
源代码位于 src/ragas/testset/transforms/base.py
提取器 dataclass
Extractor(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter())
提取器的抽象基类,通过从知识图谱的节点提取特定属性来转换知识图谱。
方法
名称 | 描述 |
---|---|
转换 |
通过从知识图谱的节点提取属性来转换知识图谱。 |
提取 |
从节点提取特定属性的抽象方法。 |
转换 async
transform(kg: KnowledgeGraph) -> List[Tuple[Node, Tuple[str, Any]]]
通过从知识图谱的节点提取属性来转换知识图谱。使用 filter
方法过滤图谱,并使用 extract
方法从每个节点提取属性。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
列表[元组[Node, 元组[str, 任意类型]]]
|
元组列表,每个元组包含一个节点和提取的属性。 |
示例
>>> kg = KnowledgeGraph(nodes=[Node(id=1, properties={"name": "Node1"}), Node(id=2, properties={"name": "Node2"})])
>>> extractor = SomeConcreteExtractor()
>>> extractor.transform(kg)
[(Node(id=1, properties={"name": "Node1"}), ("property_name", "extracted_value")),
(Node(id=2, properties={"name": "Node2"}), ("property_name", "extracted_value"))]
源代码位于 src/ragas/testset/transforms/base.py
提取 abstractmethod
async
extract(node: Node) -> Tuple[str, Any]
从节点提取特定属性的抽象方法。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
节点
|
Node
|
从中提取属性的节点。 |
必填 |
返回
类型 | 描述 |
---|---|
元组[str, 任意类型]
|
包含属性名称和提取值的元组。 |
源代码位于 src/ragas/testset/transforms/base.py
生成执行计划
generate_execution_plan(kg: KnowledgeGraph) -> List[Coroutine]
生成执行器将并行执行的协程列表。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
列表[协程]
|
待并行执行的协程列表。 |
源代码位于 src/ragas/testset/transforms/base.py
节点过滤器 dataclass
NodeFilter(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter())
自定义过滤器 abstractmethod
async
custom_filter(node: Node, kg: KnowledgeGraph) -> bool
根据 Prompt 过滤节点的抽象方法。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
节点
|
Node
|
待过滤的节点。 |
必填 |
返回
类型 | 描述 |
---|---|
布尔值
|
指示是否应过滤该节点的布尔值。 |
源代码位于 src/ragas/testset/transforms/base.py
生成执行计划
generate_execution_plan(kg: KnowledgeGraph) -> List[Coroutine]
生成待执行的协程列表
源代码位于 src/ragas/testset/transforms/base.py
关系构建器 dataclass
RelationshipBuilder(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter())
在知识图谱中构建关系的抽象基类。
方法
名称 | 描述 |
---|---|
转换 |
通过构建关系来转换知识图谱。 |
transform abstractmethod
async
transform(kg: KnowledgeGraph) -> List[Relationship]
通过构建关系来转换知识图谱。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
列表[Relationship]
|
新关系列表。 |
源代码位于 src/ragas/testset/transforms/base.py
生成执行计划
generate_execution_plan(kg: KnowledgeGraph) -> List[Coroutine]
生成执行器将并行执行的协程列表。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
列表[协程]
|
待并行执行的协程列表。 |
源代码位于 src/ragas/testset/transforms/base.py
分段器 dataclass
Splitter(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter())
分段器的抽象基类,通过将知识图谱的节点分成更小的块来转换知识图谱。
方法
名称 | 描述 |
---|---|
转换 |
通过将知识图谱的节点分成更小的块来转换知识图谱。 |
分段 |
将节点分成更小块的抽象方法。 |
转换 async
transform(kg: KnowledgeGraph) -> Tuple[List[Node], List[Relationship]]
通过将知识图谱的节点分成更小的块来转换知识图谱。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
元组[列表[Node], 列表[Relationship]]
|
包含新节点列表和新关系列表的元组。 |
源代码位于 src/ragas/testset/transforms/base.py
分段 abstractmethod
async
split(node: Node) -> Tuple[List[Node], List[Relationship]]
将节点分成更小块的抽象方法。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
节点
|
Node
|
待分段的节点。 |
必填 |
返回
类型 | 描述 |
---|---|
元组[列表[Node], 列表[Relationship]]
|
包含新节点列表和新关系列表的元组。 |
源代码位于 src/ragas/testset/transforms/base.py
生成执行计划
generate_execution_plan(kg: KnowledgeGraph) -> List[Coroutine]
生成执行器将并行执行的协程列表。
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
kg
|
知识图谱
|
待转换的知识图谱。 |
必填 |
返回
类型 | 描述 |
---|---|
列表[协程]
|
待并行执行的协程列表。 |
源代码位于 src/ragas/testset/transforms/base.py
并行
Parallel(*transformations: BaseGraphTransformation)
嵌入提取器 dataclass
EmbeddingExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter(), property_name: str = 'embedding', embed_property_name: str = 'page_content', embedding_model: BaseRagasEmbeddings = embedding_factory())
基类: 提取器
用于从知识图谱节点中提取嵌入的类。
属性
名称 | 类型 | 描述 |
---|---|---|
property_name |
str
|
用于存储嵌入的属性名称 |
embed_property_name |
str
|
包含要嵌入的文本的属性名称 |
embedding_model |
BaseRagasEmbeddings
|
用于生成嵌入的嵌入模型 |
提取 async
extract(node: Node) -> Tuple[str, Any]
为给定节点提取嵌入。
抛出异常
类型 | 描述 |
---|---|
ValueError
|
如果待嵌入的属性不是字符串。 |
源代码位于 src/ragas/testset/transforms/extractors/embeddings.py
标题提取器 dataclass
HeadlinesExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter(), llm: BaseRagasLLM = llm_factory(), merge_if_possible: bool = True, max_token_limit: int = 32000, tokenizer: Encoding = DEFAULT_TOKENIZER, property_name: str = 'headlines', prompt: HeadlinesExtractorPrompt = HeadlinesExtractorPrompt(), max_num: int = 5)
基类: LLMBasedExtractor
从给定文本中提取标题。
属性
名称 | 类型 | 描述 |
---|---|---|
property_name |
str
|
待提取属性的名称。 |
prompt |
HeadlinesExtractorPrompt
|
用于提取的 Prompt。 |
关键词提取器 dataclass
KeyphrasesExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter(), llm: BaseRagasLLM = llm_factory(), merge_if_possible: bool = True, max_token_limit: int = 32000, tokenizer: Encoding = DEFAULT_TOKENIZER, property_name: str = 'keyphrases', prompt: KeyphrasesExtractorPrompt = KeyphrasesExtractorPrompt(), max_num: int = 5)
基类: LLMBasedExtractor
从给定文本中提取热门关键词。
属性
名称 | 类型 | 描述 |
---|---|---|
property_name |
str
|
待提取属性的名称。 |
prompt |
KeyphrasesExtractorPrompt
|
用于提取的 Prompt。 |
摘要提取器 dataclass
SummaryExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter(), llm: BaseRagasLLM = llm_factory(), merge_if_possible: bool = True, max_token_limit: int = 32000, tokenizer: Encoding = DEFAULT_TOKENIZER, property_name: str = 'summary', prompt: SummaryExtractorPrompt = SummaryExtractorPrompt())
基类: LLMBasedExtractor
从给定文本中提取摘要。
属性
名称 | 类型 | 描述 |
---|---|---|
property_name |
str
|
待提取属性的名称。 |
prompt |
SummaryExtractorPrompt
|
用于提取的 Prompt。 |
标题提取器 dataclass
TitleExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter(), llm: BaseRagasLLM = llm_factory(), merge_if_possible: bool = True, max_token_limit: int = 32000, tokenizer: Encoding = DEFAULT_TOKENIZER, property_name: str = 'title', prompt: TitleExtractorPrompt = TitleExtractorPrompt())
基类: LLMBasedExtractor
从给定文本中提取标题。
属性
名称 | 类型 | 描述 |
---|---|---|
property_name |
str
|
待提取属性的名称。 |
prompt |
TitleExtractorPrompt
|
用于提取的 Prompt。 |
自定义节点过滤器 dataclass
CustomNodeFilter(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter(), llm: BaseRagasLLM = llm_factory(), scoring_prompt: PydanticPrompt = QuestionPotentialPrompt(), min_score: int = 2, rubrics: Dict[str, str] = lambda: DEFAULT_RUBRICS())
基类: LLMBasedNodeFilter
如果分数小于 min_score,则返回 True
摘要余弦相似度构建器 dataclass
SummaryCosineSimilarityBuilder(name: str = '', filter_nodes: Callable[[Node], bool] = lambda: default_filter(), property_name: str = 'summary_embedding', new_property_name: str = 'summary_cosine_similarity', threshold: float = 0.1)
基类: CosineSimilarityBuilder
过滤
filter(kg: KnowledgeGraph) -> KnowledgeGraph
过滤知识图谱,仅包含具有摘要嵌入的节点。
源代码位于 src/ragas/testset/transforms/relationship_builders/cosine.py
默认转换
default_transforms(documents: List[Document], llm: BaseRagasLLM, embedding_model: BaseRagasEmbeddings) -> Transforms
创建并返回用于处理知识图谱的默认转换集。
此函数定义了一系列要应用于知识图谱的转换步骤,包括提取摘要、关键词、标题、头条和嵌入,以及在节点之间构建相似性关系。
返回
类型 | 描述 |
---|---|
转换
|
待应用于知识图谱的转换步骤列表。 |
源代码位于 src/ragas/testset/transforms/default.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
|
应用转换
apply_transforms(kg: KnowledgeGraph, transforms: Transforms, run_config: RunConfig = RunConfig(), callbacks: Optional[Callbacks] = None)
原地将转换列表应用于知识图谱。
源代码位于 src/ragas/testset/transforms/engine.py
回滚转换
rollback_transforms(kg: KnowledgeGraph, transforms: Transforms)
从知识图谱回滚转换列表。
注意
此功能尚未实现。