langGraph如何添加条件边?
条件边如何传值?
add_conditional_edges("开始节点","判断节点",["节点A","节点B"])
例如:
add_conditional_edges("现在我要走还是要停?","查看现在红绿灯情况",["红灯","黄灯","绿灯"])
add_conditional_edges("调用天气查看多少度","这个温度适合和谁喝下午茶?",["和小莉喝","和小塔喝","不喝"])
个人理解
按照我的世界理解,节点就是女仆,整个工作流就是我的生活,我需要告诉工人谁先谁后。
但是这个时候我有一个新的需求,我需要根据天气的情况,和不同的女仆喝下午茶,那么我要如何操作?
代码展示
from langchain_core.messages import *
from langgraph.graph import StateGraph
from langgraph.constants import START, END
class WeatherState(TypedDict):
temperature: int
recommendation: str
# 传入城市名称,获取城市当前温度,以摄氏度为单位
def check_temperature( weather : WeatherState )->dict:
#这里可以调用真的天气api
return{ "temperature":25}
# 传入当前温度,返回天气
def get_clothes_by_temperature( state : WeatherState )->Literal["cold","warm","hot"]:
temp=state["temperature"]
if temp>30:
return "hot"
elif temp>20:
return "warm"
else:
return "cold"
#如果是温暖的天,和小莉喝下午茶
def recommend_warm(state:WeatherState)->dict:
return{ "recommendation":"和小莉喝下午茶"}
#如果是很冷的天,和小塔喝下午茶
def recommend_hot(state:WeatherState)->dict:
return{ "recommendation":"和小塔喝下午茶"}
#如果是很热的天,不喝下午茶
def recommend_cold(state:WeatherState)->dict:
return{ "recommendation":"不喝下午茶"}
graph=StateGraph(WeatherState)
graph.add_node("check_temperature",check_temperature)
graph.add_node("get_clothes_by_temperature",get_clothes_by_temperature)
graph.add_node( "cold",recommend_cold)
graph.add_node( "warm",recommend_warm)
graph.add_node( "hot",recommend_hot)
graph.add_edge(START,"check_temperature")
graph.add_conditional_edges("check_temperature",get_clothes_by_temperature,["cold","warm","hot"])
graph.add_edge("cold",END)
graph.add_edge("warm",END)
graph.add_edge("hot",END)
app=graph.compile()
if __name__ == '__main__':
result=app.invoke(
{
"myMessage":[HumanMessage(content="请问我今天应该和哪个女仆喝下午茶?")],
"step":0
}
)
print("执事回答我:", result)
注意事项和使用总结
条件判断返回的cold字符串需要在图中添加节点,且节点名称为cold。这样相当于告诉图,如果返回是"cold",就走"cold"节点

浙公网安备 33010602011771号