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>)[来源]¶
节点和边的图。
属性
nodes
edges
方法
__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: ~typing.Dict[str, ~langchain_core.runnables.graph.Node = <factory>, edges: ~typing.List[~langchain_core.runnables.graph.Edge] = <factory>) None ¶
- add_edge(source: Node, target: Node, data: Optional[Stringifiable] = None, conditional: bool = False) Edge [source]¶
向图中添加边并返回它。
- 参数
source (Node) – 边的起始节点。
target (Node) – 边的目标节点。
data (Optional[Stringifiable]) – 与边关联的可选数据。默认为 None。
conditional (bool) – 边是否为条件性的。默认为 False。
- 返回
已添加到图中的边。
- 引发
ValueError – 如果源节点或目标节点不在图中。
- 返回类型
- add_node(data: Union[Type[BaseModel], RunnableType], id: Optional[str] = None, *, metadata: Optional[Dict[str, Any]] = None) Node [source]¶
向图中添加节点并返回它。
- draw_mermaid(*, with_styles: bool = True, curve_style: CurveStyle = CurveStyle.LINEAR, node_colors: NodeStyles = NodeStyles(default='fill:#f2f0ff,line-height:1.2', first='fill-opacity:0', last='fill:#bfb6fc'), wrap_label_n_words: int = 9) str [source]¶
以Mermaid语法字符串的形式绘制图。
- 参数
with_styles (bool) – 是否在语法中包含样式。默认为True。
curve_style (CurveStyle) – 边的样式。默认为CurveStyle.LINEAR。
node_colors (NodeStyles) – 节点的颜色。默认为NodeStyles()。
wrap_label_n_words (int) – 节点标签折行时的单词数。默认为9。
- 返回
Mermaid语法字符串。
- 返回类型
str
- draw_mermaid_png(*, curve_style: CurveStyle = CurveStyle.LINEAR, node_colors: NodeStyles = NodeStyles(default='fill:#f2f0ff,line-height:1.2', first='fill-opacity:0', last='fill:#bfb6fc'), 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]¶
使用Mermaid绘制PNG图像。
- 参数
curve_style (CurveStyle) – 边的样式。默认为CurveStyle.LINEAR。
node_colors (NodeStyles) – 节点的颜色。默认为NodeStyles()。
wrap_label_n_words (int) – 节点标签折行时的单词数。默认为9。
output_file_path (可选[str]) – 保存图像的路径。如果为 None,则不保存图像。默认为 None。
draw_method (MermaidDrawMethod) – 绘制图的绘制方法。默认为 MermaidDrawMethod.API。
background_color (str) – 背景颜色。默认为 “白色”。
padding (int) – 围绕图的填充。默认为 10。
- 返回
PNG 图像的字节。
- 返回类型
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
以PNG图像的形式绘制图。
- 参数
output_file_path – 保存图像的路径。如果为 None,则不保存图像。默认为 None。
fontname – 要使用的字体名称。默认为 None。
labels – 图形节点和边的可选标签。默认为 None。
- 返回
如果 output_file_path 为 None,则返回一个字节的 PNG 图像;否则返回 None。
- extend(graph: Graph, *, prefix: str = '') Tuple[Optional[Node], Optional[Node]] [source]¶
将另一个图中的所有节点和边添加。请注意,这不会检查重复项,也不会连接图。
- first_node() Optional[Node] [source]¶
找到单个不是任何边目标节点的节点。如果没有这样的节点,或者有多个,返回 None。在绘制图时,此节点将是起点。
- 返回类型
Optional[Node]
- last_node() Optional[Node] [source]¶
找到单个不是任何边源的节点。如果没有这样的节点,或者有多个,返回 None。在绘制图时,此节点将是终点。
- 返回类型
Optional[Node]