langchain_core.runnables.graph.Graph

class langchain_core.runnables.graph.Graph(nodes: ~typing.Dict[str, ~langchain_core.runnables.graph.Node] = <factory>, edges: ~typing.List[~langchain_core.runnables.graph.Edge] = <factory>)[source]

节点和边的图。

Attributes

nodes

edges

Methods

__init__([nodes, edges])

add_edge(source, target[, data, conditional])

向图中添加一条边并返回它。

add_node(data[, id])

向图中添加一个节点并返回它。

draw_ascii()

draw_mermaid(*[, with_styles, curve_style, ...])

draw_mermaid_png(*[, curve_style, ...])

draw_png()

extend(graph, *[, prefix])

将另一个图中的所有节点和边添加进来。 注意这不会检查重复项,也不会连接这两个图。

first_node()

找到不是任何边的目标节点。 如果没有这样的节点,或者有多个,则返回None。 在绘制图形时,该节点将是起点。

last_node()

找到不是任何边的源节点的单个节点。 如果没有这样的节点,或者有多个节点,则返回None。 在绘制图形时,该节点将是目的地。

next_id()

print_ascii()

remove_node(node)

从图中删除一个节点以及与其相连的所有边。

to_json(*[, with_schemas])

将图形转换为可以序列化为JSON的格式。

trim_first_node()

如果存在且只有一个出边,则移除第一个节点,即移除它不会使图中没有“第一个”节点。

trim_last_node()

如果存在且只有一个入边,则删除最后一个节点,即删除它不会使图中没有“最后”节点。

Parameters
  • nodes (Dict[str, Node]) –

  • edges (List[Edge]) –

Return type

None

__init__(nodes: ~typing.Dict[str, ~langchain_core.runnables.graph.Node] = <factory>, edges: ~typing.List[~langchain_core.runnables.graph.Edge] = <factory>) None
Parameters
  • nodes (Dict[str, Node]) –

  • edges (List[Edge]) –

Return type

None

add_edge(source: Node, target: Node, data: Optional[str] = None, conditional: bool = False) Edge[source]

向图中添加一条边并返回它。

Parameters
  • source (Node) –

  • target (Node) –

  • data (Optional[str]) –

  • conditional (bool) –

Return type

Edge

add_node(data: Union[Type[BaseModel], RunnableType], id: Optional[str] = None) Node[source]

向图中添加一个节点并返回它。

Parameters
  • data (Union[Type[BaseModel], RunnableType]) –

  • id (Optional[str]) –

Return type

Node

draw_ascii() str[source]
Return type

str

draw_mermaid(*, with_styles: bool = True, curve_style: CurveStyle = CurveStyle.LINEAR, node_colors: NodeColors = NodeColors(start='#ffdfba', end='#baffc9', other='#fad7de'), wrap_label_n_words: int = 9) str[source]
Parameters
  • with_styles (bool) –

  • curve_style (CurveStyle) –

  • node_colors (NodeColors) –

  • wrap_label_n_words (int) –

Return type

str

draw_mermaid_png(*, curve_style: CurveStyle = CurveStyle.LINEAR, node_colors: NodeColors = NodeColors(start='#ffdfba', end='#baffc9', other='#fad7de'), wrap_label_n_words: int = 9, output_file_path: Optional[str] = None, draw_method: MermaidDrawMethod = MermaidDrawMethod.API, background_color: str = 'white', padding: int = 10) bytes[source]
Parameters
  • curve_style (CurveStyle) –

  • node_colors (NodeColors) –

  • wrap_label_n_words (int) –

  • output_file_path (Optional[str]) –

  • draw_method (MermaidDrawMethod) –

  • background_color (str) –

  • padding (int) –

Return type

bytes

draw_png(output_file_path: str, fontname: Optional[str] = None, labels: Optional[LabelsDict] = None) None[source]
draw_png(output_file_path: None, fontname: Optional[str] = None, labels: Optional[LabelsDict] = None) bytes
extend(graph: Graph, *, prefix: str = '') Tuple[Optional[Node], Optional[Node]][source]

将另一个图中的所有节点和边添加进来。 注意这不会检查重复项,也不会连接这两个图。

Parameters
  • graph (Graph) –

  • prefix (str) –

Return type

Tuple[Optional[Node], Optional[Node]]

first_node() Optional[Node][source]

找到不是任何边的目标节点。 如果没有这样的节点,或者有多个,则返回None。 在绘制图形时,该节点将是起点。

Return type

Optional[Node]

last_node() Optional[Node][source]

找到不是任何边的源节点的单个节点。 如果没有这样的节点,或者有多个节点,则返回None。 在绘制图形时,该节点将是目的地。

Return type

Optional[Node]

next_id() str[source]
Return type

str

print_ascii() None[source]
Return type

None

remove_node(node: Node) None[source]

从图中删除一个节点以及与其相连的所有边。

Parameters

node (Node) –

Return type

None

to_json(*, with_schemas: bool = False) Dict[str, List[Dict[str, Any]]][source]

将图形转换为可以序列化为JSON的格式。

Parameters

with_schemas (bool) –

Return type

Dict[str, List[Dict[str, Any]]]

trim_first_node() None[source]

如果存在且只有一个出边,则移除第一个节点,即移除它不会使图中没有“第一个”节点。

Return type

None

trim_last_node() None[source]

如果存在且只有一个入边,则删除最后一个节点,即删除它不会使图中没有“最后”节点。

Return type

None