转换
BaseGraphTransformation dataclass
BaseGraphTransformation(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)())
Bases: ABC
用于知识图谱(KnowledgeGraph)上图转换的抽象基类。
transform abstractmethod async
transform(kg: KnowledgeGraph) -> Any
转换知识图谱(KnowledgeGraph)的抽象方法。转换应是幂等的,这意味着多次应用转换应产生与应用一次相同的结果。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Any
|
转换后的知识图谱。 |
源代码位于 src/ragas/testset/transforms/base.py
filter
filter(kg: KnowledgeGraph) -> KnowledgeGraph
过滤知识图谱(KnowledgeGraph)并返回过滤后的图。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要过滤的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
KnowledgeGraph
|
过滤后的知识图谱。 |
源代码位于 src/ragas/testset/transforms/base.py
generate_execution_plan abstractmethod
generate_execution_plan(kg: KnowledgeGraph) -> Sequence[Coroutine]
生成一个由执行器(Executor)按顺序执行的协程序列。该协程在执行时,会将转换写入知识图谱(KnowledgeGraph)。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Sequence[Coroutine]
|
一个将要并行执行的协程序列。 |
源代码位于 src/ragas/testset/transforms/base.py
Extractor dataclass
Extractor(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)())
提取器的抽象基类,通过从知识图谱(KnowledgeGraph)的节点中提取特定属性来对其进行转换。
方法
| 名称 | 描述 |
|---|---|
transform |
通过从知识图谱(KnowledgeGraph)的节点中提取属性来对其进行转换。 |
extract |
从节点中提取特定属性的抽象方法。 |
transform async
transform(kg: KnowledgeGraph) -> List[Tuple[Node, Tuple[str, Any]]]
通过从节点中提取属性来转换知识图谱(KnowledgeGraph)。使用 filter 方法过滤图,并使用 extract 方法从每个节点提取属性。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
List[Tuple[Node, Tuple[str, Any]]]
|
一个元组列表,其中每个元组包含一个节点和提取的属性。 |
示例
>>> 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
extract abstractmethod async
extract(node: Node) -> Tuple[str, Any]
从节点中提取特定属性的抽象方法。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
node
|
Node
|
要从中提取属性的节点。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Tuple[str, Any]
|
一个包含属性名称和提取值的元组。 |
源代码位于 src/ragas/testset/transforms/base.py
generate_execution_plan
generate_execution_plan(kg: KnowledgeGraph) -> Sequence[Coroutine]
生成一个由执行器(Executor)并行执行的协程序列。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Sequence[Coroutine]
|
一个将要并行执行的协程序列。 |
源代码位于 src/ragas/testset/transforms/base.py
NodeFilter dataclass
NodeFilter(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)())
custom_filter abstractmethod async
custom_filter(node: Node, kg: KnowledgeGraph) -> bool
根据提示过滤节点的抽象方法。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
node
|
Node
|
要过滤的节点。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
bool
|
一个布尔值,指示是否应过滤该节点。 |
源代码位于 src/ragas/testset/transforms/base.py
generate_execution_plan
generate_execution_plan(kg: KnowledgeGraph) -> Sequence[Coroutine]
生成一个待执行的协程序列
源代码位于 src/ragas/testset/transforms/base.py
RelationshipBuilder dataclass
RelationshipBuilder(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)())
用于在知识图谱(KnowledgeGraph)中构建关系的抽象基类。
方法
| 名称 | 描述 |
|---|---|
transform |
通过构建关系来转换知识图谱(KnowledgeGraph)。 |
transform abstractmethod async
transform(kg: KnowledgeGraph) -> List[Relationship]
通过构建关系来转换知识图谱(KnowledgeGraph)。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
List[Relationship]
|
一个新关系的列表。 |
源代码位于 src/ragas/testset/transforms/base.py
generate_execution_plan
generate_execution_plan(kg: KnowledgeGraph) -> Sequence[Coroutine]
生成一个由执行器(Executor)并行执行的协程序列。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Sequence[Coroutine]
|
一个将要并行执行的协程序列。 |
源代码位于 src/ragas/testset/transforms/base.py
Splitter dataclass
Splitter(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)())
分割器的抽象基类,通过将其节点分割成更小的块来转换知识图谱(KnowledgeGraph)。
方法
| 名称 | 描述 |
|---|---|
transform |
通过将其节点分割成更小的块来转换知识图谱(KnowledgeGraph)。 |
split |
将节点分割成更小块的抽象方法。 |
transform async
transform(kg: KnowledgeGraph) -> Tuple[List[Node], List[Relationship]]
通过将其节点分割成更小的块来转换知识图谱(KnowledgeGraph)。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Tuple[List[Node], List[Relationship]]
|
一个元组,包含一个新节点列表和一个新关系列表。 |
源代码位于 src/ragas/testset/transforms/base.py
split abstractmethod async
split(node: Node) -> Tuple[List[Node], List[Relationship]]
将节点分割成更小块的抽象方法。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
node
|
Node
|
要被分割的节点。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Tuple[List[Node], List[Relationship]]
|
一个元组,包含一个新节点列表和一个新关系列表。 |
源代码位于 src/ragas/testset/transforms/base.py
generate_execution_plan
generate_execution_plan(kg: KnowledgeGraph) -> Sequence[Coroutine]
生成一个由执行器(Executor)并行执行的协程序列。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
kg
|
KnowledgeGraph
|
要转换的知识图谱。 |
必需 |
返回
| 类型 | 描述 |
|---|---|
Sequence[Coroutine]
|
一个将要并行执行的协程序列。 |
源代码位于 src/ragas/testset/transforms/base.py
Parallel
Parallel(*transformations: Union[BaseGraphTransformation, 'Parallel'])
EmbeddingExtractor dataclass
EmbeddingExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), property_name: str = 'embedding', embed_property_name: str = 'page_content', embedding_model: Union[BaseRagasEmbeddings, BaseRagasEmbedding] = embedding_factory())
基类:Extractor
一个用于从知识图谱节点中提取嵌入向量的类。
属性
| 名称 | 类型 | 描述 |
|---|---|---|
property_name |
str
|
用于存储嵌入向量的属性名称 |
embed_property_name |
str
|
包含要嵌入文本的属性名称 |
embedding_model |
BaseRagasEmbeddings 或 BaseRagasEmbedding
|
用于生成嵌入向量的嵌入模型 |
extract async
extract(node: Node) -> Tuple[str, Any]
提取给定节点的嵌入向量。
抛出
| 类型 | 描述 |
|---|---|
ValueError
|
如果待嵌入的属性不是字符串。 |
源代码位于 src/ragas/testset/transforms/extractors/embeddings.py
HeadlinesExtractor dataclass
HeadlinesExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), llm: Union[BaseRagasLLM, InstructorBaseRagasLLM] = _default_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
|
用于提取的提示。 |
KeyphrasesExtractor dataclass
KeyphrasesExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), llm: Union[BaseRagasLLM, InstructorBaseRagasLLM] = _default_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
|
用于提取的提示。 |
SummaryExtractor dataclass
SummaryExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), llm: Union[BaseRagasLLM, InstructorBaseRagasLLM] = _default_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
|
用于提取的提示。 |
TitleExtractor dataclass
TitleExtractor(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), llm: Union[BaseRagasLLM, InstructorBaseRagasLLM] = _default_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
|
用于提取的提示。 |
CustomNodeFilter dataclass
CustomNodeFilter(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), llm: Union[BaseRagasLLM, InstructorBaseRagasLLM] = _default_llm_factory(), scoring_prompt: PydanticPrompt = QuestionPotentialPrompt(), min_score: int = 2, rubrics: Dict[str, str] = (lambda: DEFAULT_RUBRICS)())
基类:LLMBasedNodeFilter
如果分数低于 min_score 则返回 True
CosineSimilarityBuilder dataclass
CosineSimilarityBuilder(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), property_name: str = 'embedding', new_property_name: str = 'cosine_similarity', threshold: float = 0.9, block_size: int = 1024)
generate_execution_plan
generate_execution_plan(kg: KnowledgeGraph) -> List[Coroutine]
为寻找相似嵌入向量对生成一个协程任务,该任务可由执行器(Executor)调度/执行。
源代码位于 src/ragas/testset/transforms/relationship_builders/cosine.py
SummaryCosineSimilarityBuilder 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, block_size: int = 1024)
JaccardSimilarityBuilder dataclass
JaccardSimilarityBuilder(name: str = '', filter_nodes: Callable[[Node], bool] = (lambda: default_filter)(), property_name: str = 'entities', key_name: Optional[str] = None, new_property_name: str = 'jaccard_similarity', threshold: float = 0.5)
generate_execution_plan
generate_execution_plan(kg: KnowledgeGraph) -> List[Coroutine]
为寻找相似对生成一个协程任务,该任务可由执行器(Executor)调度/执行。
源代码位于 src/ragas/testset/transforms/relationship_builders/traditional.py
default_transforms
default_transforms(documents: List[Document], llm: Union[BaseRagasLLM, 'InstructorBaseRagasLLM'], embedding_model: BaseRagasEmbeddings) -> 'Transforms'
创建并返回一套用于处理知识图谱的默认转换。
该函数定义了一系列应用于知识图谱的转换步骤,包括提取摘要、关键词、标题、大标题和嵌入向量,以及构建节点之间的相似性关系。
返回
| 类型 | 描述 |
|---|---|
转换
|
一个应用于知识图谱的转换步骤列表。 |
源代码位于 src/ragas/testset/transforms/default.py
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 165 166 167 | |
apply_transforms
apply_transforms(kg: KnowledgeGraph, transforms: Transforms, run_config: RunConfig = RunConfig(), callbacks: Optional[Callbacks] = None)
递归地就地对知识图谱应用转换。
源代码位于 src/ragas/testset/transforms/engine.py
rollback_transforms
rollback_transforms(kg: KnowledgeGraph, transforms: Transforms)
从知识图谱中回滚一系列转换。
注意
此功能尚未实现。如果您需要此功能,请提交一个 issue。