LangGraph简单图结构

一

python 复制代码
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langgraph.graph import MessagesState, StateGraph,START,END
from prompt_toolkit.contrib.regular_languages.regex_parser import AnyNode
from rich import print as rprint
from IPython import display
import operator
class State(TypedDict):
  n1: str
def node1(state: State) -> dict:
  return {
    "n1": "1111"
  }
def node2(state: State) -> dict:
  return {
    "n2": "2222"
  }

graph = (
  StateGraph(State)
  .add_node(node1)
  .add_node(node2)
  .add_edge(START, "node1")
  .add_edge(START, "node2")
).compile()
display.display(graph)
rprint(graph)

二

python 复制代码
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langgraph.graph import MessagesState, StateGraph,START,END
from prompt_toolkit.contrib.regular_languages.regex_parser import AnyNode
from rich import print as rprint
from IPython import display
import operator
import random
def node3(state: State) -> dict:
  return {
    "n2": "33"
  }
def node4(state: State) -> dict:
  return {
    "n2": "444"
  }
def node5(state: State) -> dict:
  return {
    "n2": "55"
  }
def route(state: State) -> dict:
  if random.random() >0.5:
    return node1
  else:
    return node2
def route2(state: State) -> dict:
  if random.random() >0.5:
    return node4
  else:
    return node5
builder=StateGraph(State)
builder.add_node(node1)
builder.add_node(node2)
builder.add_node(node3)
builder.add_node(node4)
builder.add_node(node5)
builder.add_conditional_edges(
  source=START,
  path=route,
  path_map={
    "node1": "node1",
    "node2": "node2"
  }
)
builder.add_edge("node1","node3")
builder.add_edge("node2","node3")
builder.add_conditional_edges(
  source="node3",
  path=route2,
  path_map={
    "node4": "node4",
    "node5": "node5"
  }
)
builder.add_edge("node4",END)
builder.add_edge("node5",END)
graph=builder.compile()

display.display(graph)

三

python 复制代码
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langgraph.graph import MessagesState, StateGraph,START,END
from prompt_toolkit.contrib.regular_languages.regex_parser import AnyNode
from rich import print as rprint
from IPython import display
import operator
class State(TypedDict):
  logs: Annotated[list[str],add_messages]
  list: Annotated[list[AnyNode], operator.add]
  cur_id: str

def node1(state: State) -> dict:
  return {
    "logs": ["node1 运行完毕"],
    "list": ["11111"],
    "cur_id": "9999-"
  }
def node2(state: State) -> dict:
  return {
    "logs": ["node2 运行完毕"],
    "list": ["22222"],
    "cur_id": "7777-"
  }

graph =(
  StateGraph(State)
  .add_node(node1)
  .add_node(node2)
  .add_edge(START, "node1")
  .add_edge("node1", "node2")
  .compile()
)
display.display(graph)
res=graph.invoke({"logs":"222"})
rprint(res)
相关推荐
迷途呀7 小时前
强化学习概念
人工智能·深度学习·机器学习·强化学习·1024程序员节
AI开源软件7 小时前
87.4%:OpenAI 让模型写出 20 种语言 SQLite
人工智能·ai·openai·fortran·cobol·技术翻译·银行核心系统
爱喝雪碧的可乐7 小时前
OpenAI Codex完成率
大数据·人工智能·1024程序员节
Solange__7 小时前
文旅景区怎么用AI生成3D导览?从航拍采集、地标重建到网页漫游的完整方案
人工智能·3d·语言模型·自然语言处理·材质·贴图·1024程序员节
Profile排查笔记7 小时前
浏览器指纹逆向怎么分析:从网络请求追踪到 JavaScript 采集链
前端·人工智能·后端·自动化
智能运维指南8 小时前
企业运维监控平台哪家好?2026年五大全栈可观测方案对比与选型推荐
大数据·运维·人工智能
STQY燊桐启元(深圳)电子科技8 小时前
高导热型电磁抑制吸波材料:当“导热”不再是吸波片的附属功能
人工智能·导热片·电磁抑制吸波材料、·导热绝缘
Dawson Zhu8 小时前
【CUDA编程入门⑥】CPU多线程并行优化:OpenMP、NUMA与SIMD向量化
人工智能·语言模型·架构·aigc·agi
今天背单词了吗9808 小时前
AI 网关:大模型时代的统一接入与安全防线
网络·人工智能·安全·ai·1024程序员节
碧海银沙音频科技研究院8 小时前
基于炬芯平台ATS308X多模型兼容语音识别算法
人工智能·算法·语音识别