mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-28 23:07:11 +00:00
This PR upgrades langchain-community to pydantic 2.
* Most of this PR was auto-generated using code mods with gritql
(https://github.com/eyurtsev/migrate-pydantic/tree/main)
* Subsequently, some code was fixed manually due to accommodate
differences between pydantic 1 and 2
Breaking Changes:
- Use TEXTEMBED_API_KEY and TEXTEMBEB_API_URL for env variables for text
embed integrations:
cbea780492
Other changes:
- Added pydantic_settings as a required dependency for community. This
may be removed if we have enough time to convert the dependency into an
optional one.
---------
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
Co-authored-by: Bagatur <baskaryan@gmail.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
|