mirror of
https://github.com/hwchase17/langchain
synced 2024-11-04 06:00:26 +00:00
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 langchain_core.pydantic_v1 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
|