mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-21 06:14:37 +00:00
Signed-off-by: ChengZi <chen.zhang@zilliz.com> Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com> Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com> Co-authored-by: Dan O'Donovan <dan.odonovan@gmail.com> Co-authored-by: Tom Daniel Grande <tomdgrande@gmail.com> Co-authored-by: Grande <Tom.Daniel.Grande@statsbygg.no> Co-authored-by: Bagatur <baskaryan@gmail.com> Co-authored-by: ccurme <chester.curme@gmail.com> Co-authored-by: Harrison Chase <hw.chase.17@gmail.com> Co-authored-by: Tomaz Bratanic <bratanic.tomaz@gmail.com> Co-authored-by: ZhangShenao <15201440436@163.com> Co-authored-by: Friso H. Kingma <fhkingma@gmail.com> Co-authored-by: ChengZi <chen.zhang@zilliz.com> Co-authored-by: Nuno Campos <nuno@langchain.dev> Co-authored-by: Morgante Pell <morgantep@google.com>
52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import List, Union
|
|
|
|
from langchain_core.documents import Document
|
|
from langchain_core.load.serializable import Serializable
|
|
from pydantic import Field
|
|
|
|
|
|
class Node(Serializable):
|
|
"""Represents a node in a graph with associated properties.
|
|
|
|
Attributes:
|
|
id (Union[str, int]): A unique identifier for the node.
|
|
type (str): The type or label of the node, default is "Node".
|
|
properties (dict): Additional properties and metadata associated with the node.
|
|
"""
|
|
|
|
id: Union[str, int]
|
|
type: str = "Node"
|
|
properties: dict = Field(default_factory=dict)
|
|
|
|
|
|
class Relationship(Serializable):
|
|
"""Represents a directed relationship between two nodes in a graph.
|
|
|
|
Attributes:
|
|
source (Node): The source node of the relationship.
|
|
target (Node): The target node of the relationship.
|
|
type (str): The type of the relationship.
|
|
properties (dict): Additional properties associated with the relationship.
|
|
"""
|
|
|
|
source: Node
|
|
target: Node
|
|
type: str
|
|
properties: dict = Field(default_factory=dict)
|
|
|
|
|
|
class GraphDocument(Serializable):
|
|
"""Represents a graph document consisting of nodes and relationships.
|
|
|
|
Attributes:
|
|
nodes (List[Node]): A list of nodes in the graph.
|
|
relationships (List[Relationship]): A list of relationships in the graph.
|
|
source (Document): The document from which the graph information is derived.
|
|
"""
|
|
|
|
nodes: List[Node]
|
|
relationships: List[Relationship]
|
|
source: Document
|