图
NodeType
基类: str
, Enum
知识图谱中节点类型的枚举。
当前支持的节点类型有:UNKNOWN, DOCUMENT, CHUNK
Node
基类: BaseModel
表示知识图谱中的一个节点。
属性
名称 | 类型 | 描述 |
---|---|---|
id |
UUID
|
节点的唯一标识符。 |
properties |
dict
|
与节点关联的属性字典。 |
type |
NodeType
|
节点的类型。 |
add_property
向节点添加属性。
抛出
类型 | 描述 |
---|---|
ValueError
|
如果属性已存在。 |
源代码在 src/ragas/testset/graph.py
get_property
Relationship
KnowledgeGraph dataclass
KnowledgeGraph(nodes: List[Node] = list(), relationships: List[Relationship] = list())
表示包含节点和关系的知识图谱。
属性
名称 | 类型 | 描述 |
---|---|---|
nodes |
List[Node]
|
知识图谱中的节点列表。 |
relationships |
List[Relationship]
|
知识图谱中的关系列表。 |
add
add(item: Union[Node, Relationship])
向知识图谱添加节点或关系。
抛出
类型 | 描述 |
---|---|
ValueError
|
如果项类型不是 Node 或 Relationship。 |
源代码在 src/ragas/testset/graph.py
save
将知识图谱保存到 JSON 文件。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
path
|
Union[str, Path]
|
应保存 JSON 文件的路径。 |
必需 |
注意
文件使用 UTF-8 编码保存,以确保在不同平台上正确处理 Unicode 字符。
源代码在 src/ragas/testset/graph.py
load classmethod
load(path: Union[str, Path]) -> KnowledgeGraph
从路径加载知识图谱。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
path
|
Union[str, Path]
|
包含知识图谱的 JSON 文件的路径。 |
必需 |
返回
类型 | 描述 |
---|---|
KnowledgeGraph
|
加载的知识图谱。 |
注意
文件使用 UTF-8 编码读取,以确保在不同平台上正确处理 Unicode 字符。
源代码在 src/ragas/testset/graph.py
find_indirect_clusters
find_indirect_clusters(relationship_condition: Callable[[Relationship], bool] = lambda _: True, depth_limit: int = 3) -> List[Set[Node]]
根据关系条件在知识图谱中查找节点的间接簇。例如,如果 A -> B -> C -> D,则 A, B, C 和 D 形成一个簇。如果还有路径 A -> B -> C -> E,它将形成一个单独的簇。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
relationship_condition
|
Callable[[Relationship], bool]
|
一个接受 Relationship 并返回布尔值的函数,默认为 lambda _: True |
lambda _: True
|
返回
类型 | 描述 |
---|---|
List[Set[Node]]
|
一个集合列表,每个集合包含形成簇的节点。 |
源代码在 src/ragas/testset/graph.py
remove_node
remove_node(node: Node, inplace: bool = True) -> Optional[KnowledgeGraph]
从知识图谱中移除一个节点及其关联的关系。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
node
|
Node
|
要从知识图谱中移除的节点。 |
必需 |
inplace
|
bool
|
如果为 True,则原地修改知识图谱。如果为 False,则返回移除节点后的修改副本。 |
True
|
返回
类型 | 描述 |
---|---|
KnowledgeGraph 或 None
|
如果 |
抛出
类型 | 描述 |
---|---|
ValueError
|
如果节点不在知识图谱中。 |
源代码在 src/ragas/testset/graph.py
find_two_nodes_single_rel
find_two_nodes_single_rel(relationship_condition: Callable[[Relationship], bool] = lambda _: True) -> List[Tuple[Node, Relationship, Node]]
根据关系条件在知识图谱中查找节点。(NodeA, NodeB, Rel)三元组被视为多跳节点。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
relationship_condition
|
Callable[[Relationship], bool]
|
一个接受 Relationship 并返回布尔值的函数,默认为 lambda _: True |
lambda _: True
|
返回
类型 | 描述 |
---|---|
List[Set[Node, Relationship, Node]]
|
一个集合列表,每个集合包含两个节点和一个关系,形成一个多跳节点。 |