langgraphy条件边

"""

创建一个静态模型的智能体

"""

import json

from langchain.agents import create_agent

from langchain.chat_models import init_chat_model

from langchain.tools import tool

from langgraph.graph.state import CompiledStateGraph

from env_utils import DEEPSEEK_API_KEY, DEEPSEEK_BASE_URL

from langchain_core.messages import AnyMessage

"""

基本控制: 串行控制

基本控制: 分支控制

Successfully installed langchain-core-1.4.0

langchain-protocol-0.0.15 langgraph-1.2.0

langgraph-checkpoint-4.1.0 langgraph-prebuilt-1.1.0 ormsgpack-1.12.2

"""

from langchain_core.messages import AnyMessage

from typing_extensions import TypedDict

from langgraph.graph import START,StateGraph,END

from IPython.display import Image,display

from typing import Any, Annotated, Literal

import operator

class State(TypedDict):

aggregate: Annotatedlist,operator.add

def a(state:State):

print(f"Node A sees {state'aggregate'}")

return {"aggregate":"A"}

def b(state:State):

print(f"Node B sees {state'aggregate'}")

return {"aggregate": "B"}

builder=StateGraph(State)

builder.add_node(a)

builder.add_node(b)

def route(state: State) -> Literal"b",END:

if len(state"aggregate")<7:

return "b"

else:

return END

builder.add_edge(START,"a")

builder.add_conditional_edges("a",route)

builder.add_edge("b","a")

graph = builder.compile()

from IPython.display import Image, display

with open('graph.png', 'wb') as f:

f.write(graph.get_graph().draw_mermaid_png())

display(Image('graph.png'))

from PIL import Image

import io

假设这是你的 PNG 字节数据

png_data = graph.get_graph().draw_mermaid_png()

if 'png_data' in locals():

将字节数据解码为图片a

img = Image.open(io.BytesIO(png_data))

img.show()

res=graph.invoke({"value_1": "c"})

print(res)

def route(state: State) -> Literal"b",END:

if len(state"aggregate")<7:

return "b"

else:

return END

builder.add_edge(START,"a")

builder.add_conditional_edges("a",route)

builder.add_edge("b","a")

条件边, 如果返回b,就是a->b,b->a,循环, 直到b->END

相关推荐
用户499335025078 分钟前
JS 作用域劫持的死穴:动态 this 穿透,以及 AST 怎么救
前端
IT_陈寒43 分钟前
React的setState真是个演员,你以为它同步其实在装睡
前端·人工智能·后端
孟健2 小时前
Claude Code 同需求写两版对比:装不装 frontend-design 差多远?
前端·ai编程·claude
OpsEye3 小时前
大模型 Token 计量不准,是什么原因,怎么解决??
javascript·ai编程
梦de天空一米16884 小时前
【一个重复id让游戏卡在62%,聊聊配置表检查】
前端
ryn483984 小时前
01 一个功能模块,怎么分层才不乱
前端·ai编程·claude
Amos_Web4 小时前
通过 Rspack 源码学 Rust(五):读懂 Result 与问号运算符的错误返回
前端
杨航 AI5 小时前
JEV的用法
java·前端·数据库
Amos_Web5 小时前
Rspack 源码解析(三十五):rspack_error 如何用 miette 渲染带源码定位的错误链
前端
去伪存真5 小时前
高敏资产场景下的大模型协同设计架构
前端·agent