langchain_core.runnables.graph_png.PngDrawer

class langchain_core.runnables.graph_png.PngDrawer(fontname: Optional[str] = None, labels: Optional[LabelsDict] = None)[source]

用于将状态图绘制为PNG文件的辅助类。

它需要安装 graphvizpygraphviz。 :param fontname: 用于标签的字体 :param labels: 标签覆盖的字典。该字典

应采用以下格式:{

“nodes”: {

“node1”: “CustomLabel1”, “node2”: “CustomLabel2”, “__end__”: “End Node”

}, “edges”: {

“continue”: “ContinueLabel”, “end”: “EndLabel”

}

} 键是原始标签,值是新的标签。

使用方法

drawer = PngDrawer() drawer.draw(state_graph, 'graph.png')

初始化PNG绘图器。

参数
  • fontname (Optional[str]) – 用于标签的字体。默认为“arial”。

  • labels (Optional[LabelsDict]) –

    标签覆盖的字典。该字典应采用以下格式:{

    “nodes”: {

    “node1”: “CustomLabel1”, “node2”: “CustomLabel2”, “__end__”: “End Node”

    }, “edges”: {

    “continue”: “ContinueLabel”, “end”: “EndLabel”

    }

    } 键是原始标签,值是新的标签。默认为None。

方法

__init__([fontname, labels])

初始化PNG绘图器。

add_edge(viz, source, target[, label, ...])

将边添加到图中。

add_edges(viz, graph)

将边添加到图中。

add_node(viz, node)

将节点添加到图中。

add_nodes(viz, graph)

将节点添加到图中。

draw(graph[, output_path])

将给定的状态图绘制到PNG文件中。

get_edge_label(label)

返回用于边的标签。

get_node_label(label)

返回用于节点的标签。

update_styles(viz, graph)

更新入口节点和END节点的样式。

__init__(fontname: Optional[str] = None, labels: Optional[LabelsDict] = None) None[source]

初始化PNG绘图器。

参数
  • fontname (Optional[str]) – 用于标签的字体。默认为“arial”。

  • labels (Optional[LabelsDict]) –

    标签覆盖的字典。该字典应采用以下格式:{

    “nodes”: {

    “node1”: “CustomLabel1”, “node2”: “CustomLabel2”, “__end__”: “End Node”

    }, “edges”: {

    “continue”: “ContinueLabel”, “end”: “EndLabel”

    }

    } 键是原始标签,值是新的标签。默认为None。

返回类型

None

add_edge(viz: Any, source: str, target: str, label: Optional[str], conditional: bool = False) None[source]

将边添加到图中。

参数
  • viz (Any) – 图viz对象。

  • source (str) – 源节点。

  • target (str) – 目标节点。

  • label (Optional[str]) – 边的标签。默认为None。

  • conditional (bool) – 边是否为条件边。默认为False。

返回

None

返回类型

None

add_edges(viz: Any, graph: Graph) None[source]

将边添加到图中。

参数
  • viz (Any) – 图viz对象。

  • (Graph) – 要绘制的图。

返回类型

None

add_node(viz: Any, node: str) None[source]

将节点添加到图中。

参数
  • viz (Any) – 图viz对象。

  • node (str) – 要添加的节点。

返回

None

返回类型

None

add_nodes(viz: Any, graph: Graph) None[source]

将节点添加到图中。

参数
  • viz (Any) – 图viz对象。

  • (Graph) – 要绘制的图。

返回类型

None

draw(graph: Graph, output_path: Optional[str] = None) Optional[bytes][source]

将给定的状态图绘制到PNG文件中。

需要安装 graphvizpygraphviz。 :param graph: 要绘制的图 :param output_path: 保存 PNG 的路径。如果为空,则返回 PNG 字节。

参数
  • graph (Graph) –

  • output_path (Optional[str]) –

返回类型

Optional[bytes]

get_edge_label(label: str) str[source]

返回用于边的标签。

参数

label (str) – 原始标签。

返回

新的标签。

返回类型

str

get_node_label(label: str) str[source]

返回用于节点的标签。

参数

label (str) – 原始标签。

返回

新的标签。

返回类型

str

update_styles(viz: Any, graph: Graph) None[source]

更新入口节点和END节点的样式。

参数
  • viz (Any) – 图viz对象。

  • (Graph) – 要绘制的图。

返回类型

None