图表#
- class langchain_core.runnables.graph.Graph(nodes: dict[str, ~langchain_core.runnables.graph.Node] = <factory>, edges: list[~langchain_core.runnables.graph.Edge] = <factory>)[source]#
节点和边的图。
属性
方法
__init__
([nodes, edges])add_edge
(source, target[, data, conditional])向图中添加一条边并返回它。
add_node
(data[, id, metadata])向图中添加一个节点并返回它。
将图形绘制为ASCII艺术字符串。
draw_mermaid
(*[, with_styles, curve_style, ...])将图形绘制为Mermaid语法字符串。
draw_mermaid_png
(*[, curve_style, ...])使用Mermaid将图形绘制为PNG图像。
draw_png
()将图形绘制为PNG图像。
extend
(graph, *[, prefix])从另一个图中添加所有节点和边。
找到不是任何边的目标的单个节点。
查找不是任何边源头的单个节点。
next_id
()返回一个新的唯一节点标识符,可用于向图中添加节点。
将图形打印为ASCII艺术字符串。
reid
()返回一个新图,其中所有节点都重新标识,尽可能使用其唯一且可读的名称。
remove_node
(node)从图中移除一个节点及其所有连接的边。
to_json
(*[, with_schemas])将图转换为可JSON序列化的格式。
如果存在第一个节点并且它只有一个出边,即移除它不会使图没有“第一个”节点,则移除第一个节点。
如果存在最后一个节点并且它只有一个传入边,即如果移除它不会使图没有“最后一个”节点,则移除该节点。
- __init__(nodes: dict[str, ~langchain_core.runnables.graph.Node] = <factory>, edges: list[~langchain_core.runnables.graph.Edge] = <factory>) None #
- add_edge(source: Node, target: Node, data: Stringifiable | None = None, conditional: bool = False) Edge [source]#
向图中添加一条边并返回它。
- Parameters:
source (Node) – 边的源节点。
target (Node) – 边的目标节点。
data (Stringifiable | None) – 可选的与边关联的数据。默认为 None。
conditional (bool) – 边是否为条件性的。默认为 False。
- Returns:
添加到图中的边。
- Raises:
ValueError – 如果源节点或目标节点不在图中。
- Return type:
- add_node(data: type[BaseModel] | RunnableType, id: str | None = None, *, metadata: dict[str, Any] | None = None) Node [来源]#
向图中添加一个节点并返回它。
- draw_mermaid(*, with_styles: bool = True, curve_style: CurveStyle = CurveStyle.LINEAR, node_colors: NodeStyles | None = None, wrap_label_n_words: int = 9) str [源代码]#
将图形绘制为Mermaid语法字符串。
- Parameters:
with_styles (bool) – 是否在语法中包含样式。默认为 True。
curve_style (CurveStyle) – 边的样式。默认为 CurveStyle.LINEAR。
node_colors (NodeStyles | None) – 节点的颜色。默认为 NodeStyles()。
wrap_label_n_words (int) – 节点标签换行的字数。默认为9。
- Returns:
Mermaid语法字符串。
- Return type:
字符串
- draw_mermaid_png(*, curve_style: CurveStyle = CurveStyle.LINEAR, node_colors: NodeStyles | None = None, wrap_label_n_words: int = 9, output_file_path: str | None = None, draw_method: MermaidDrawMethod = MermaidDrawMethod.API, background_color: str = 'white', padding: int = 10) bytes [source]#
使用Mermaid将图形绘制为PNG图像。
- Parameters:
curve_style (CurveStyle) – 边的样式。默认为 CurveStyle.LINEAR。
node_colors (NodeStyles | None) – 节点的颜色。默认为 NodeStyles()。
wrap_label_n_words (int) – 节点标签换行的单词数。默认为9。
output_file_path (str | None) – 保存图像的路径。如果为None,则图像不会被保存。默认为None。
draw_method (MermaidDrawMethod) – 用于绘制图形的方法。默认为 MermaidDrawMethod.API。
background_color (str) – 背景的颜色。默认为“white”。
padding (int) – 图形周围的填充。默认为10。
- Returns:
PNG图像以字节形式表示。
- Return type:
字节
- draw_png(output_file_path: str, fontname: str | None = None, labels: LabelsDict | None = None) None [源代码]#
- draw_png(output_file_path: None, fontname: str | None = None, labels: LabelsDict | None = None) bytes
将图形绘制为PNG图像。
- Parameters:
output_file_path – 保存图像的路径。如果为None,则图像不会被保存。默认为None。
fontname – 使用的字体名称。默认为 None。
labels – 图中节点和边的可选标签。默认为 None。
- Returns:
如果output_file_path为None,则PNG图像以字节形式返回,否则返回None。
- extend(graph: Graph, *, prefix: str = '') tuple[Node | None, Node | None] [源代码]#
从另一个图中添加所有节点和边。 注意,这不会检查重复项,也不会连接图。
- first_node() Node | None [source]#
找到不是任何边的目标的单个节点。 如果没有这样的节点,或者有多个,则返回None。 在绘制图形时,此节点将是原点。
- Return type:
Node | 无
- last_node() Node | None [source]#
找到不是任何边的源节点的单个节点。 如果没有这样的节点,或者有多个,则返回None。 在绘制图形时,此节点将是目的地。
- Return type:
Node | 无
- remove_node(node: Node) None [source]#
从图中移除一个节点及其所有连接的边。
- Parameters:
node (Node) – 要移除的节点。
- Return type:
无