当前位置: 首页 > news >正文

langgraph简单Demo3(画一个简单的图)

文章目录

  • 画图
  • 简单解析
  • 再贴结果图

画图

from langgraph.graph import StateGraph, END
from typing import TypedDict

# 定义状态结构
# (刚入门可能不理解这是什么,可以理解为一个自定义的变量库,你的所有的入参出参都可以定义在这里)
# 如下:input和response就是2个自定义的字符串变量
class AgentState(TypedDict) :
    input: str
    response: str

# 创建代理节点
def agent_node(state: AgentState) :
    return {"response":f"手工输入{state['input']}"}

# 创建工具节点
def tool_node(state: AgentState) :
    return {"response":f"执行工具{state['response']}"}

# 构建流程图
workflow = StateGraph(AgentState)

# 添加节点
workflow.add_node("agent", agent_node)
workflow.add_node("tool", tool_node)

# 添加边
workflow.set_entry_point("agent")
workflow.add_edge("agent","tool")
workflow.add_edge("tool", END)

# 编译,生成图
graph = workflow.compile()

# 执行
result = graph.invoke({"input":"你是谁啊!!!"})

# 打印执行结果
print(f"result.input:{result['input']}")
print(f"result.response:{result['response']}")
print(f"result:{result}")

执行效果如下:
在这里插入图片描述

简单解析

上面基本每个地方都有注释,这里不介绍代码了。

介绍下结果为什么是这样?

我们画的图如下

START → [agent] → [tool] → END

其中START和 END是系统节点,agent和tool是我们的自定义节点。系统节点没有操作,只代表状态。所以我们重点看2个自定义节点。

[agent]

执行该节点之前:
input:你是谁啊!!!
response:

代码先走到agent节点,agent节点重新定义了response的值

"response":f"手工输入{state['input']}"

response拼接input后值为“手工输入你是谁啊!!!”

[tool]

在上面agent节点操作之后,此时
input:你是谁啊!!!
response:手工输入你是谁啊!!!

tool节点的操作为:

"response":f"执行工具{state['response']}"

在原response的基础上又拼接了“执行工具”,所以response最终结果为:执行工具手工输入你是谁啊!!!

再贴结果图

再看到这个结果图,就知道response为什么是这样了吧
在这里插入图片描述


还有一个点需要说明一下:最终返回值是 AgentState 类型字典中 所有累积的键值对 。

相关文章:

  • “我是GM”之NAS搭建Luanti游戏服务器,开启沙盒游戏新体验
  • 联想EMC VNX5600使用的端口
  • 爬虫(requsets)笔记
  • Java 在 运行期、源码级别 和 字节码级别 处理的对比分析,涵盖定义、实现方式、优缺点及典型应用场景
  • root无权限修改文件内容处理
  • 【性能优化点滴】odygrd/quill 中一个简单的标记位作用--降低 IO 次数
  • 京准电钟:网络安全系统时间同步的作用是什么?
  • 一、大语言模型微调 vs. 大语言模型应用
  • 【Redis】高性能内存数据库的多场景应用
  • python机器学习——新手入门学习笔记
  • fastapi+angular评论和回复
  • WordPress 性能优化技术指南:打造快速加载的网站
  • 《大语言模型赋能证券业开发安全:海云安技术方案在上交所专刊发表》
  • 8662 234的和
  • 解锁 AWX+Ansible 自动化运维新体验:快速部署实战
  • 【LeetCode】算法详解#1 ---字母异位词
  • CSS 中text - shadow和box - shadow原理、属性的使用方法及区别
  • 未来二十年的量子计算
  • 批量修改 PPT 文档中主题、编辑时长、来源等元数据信息
  • 整本书测试_20道多选+10道设计_《C++ Templates》notes
  • 持续更新丨伊朗港口爆炸事件已致406人受伤
  • “90后”高层建筑返青春:功能调整的技术路径和运营考验
  • 特朗普政府称将恢复被终止的外国学生合法身份
  • 邮轮、无人机、水上运动……上海多区推动文旅商体展融合发展
  • 美联储官员:货币政策不会立即改变,金融市场波动或致美国经济增长承压
  • 金隅集团:今年拿地将选择核心热门地块,稳健审慎投资