AI编程新风口:LangGraph StateGraph超详细教程,让小白也能优雅管理AI工作流!

LangGraph的StateGraph是一个用于构建状态图的核心组件,用于创建有状态的多步骤工作流程。以下是基本用法:

StateGraph基本概念

StateGraph允许你定义一个图结构,其中每个节点代表一个操作,边定义了节点之间的连接关系,整个图维护一个共享的状态。

基本用法步骤

1. 定义状态结构

from typing import TypedDictfrom langgraph.graph import StateGraph, ENDclass GraphState(TypedDict): input: str output: str step_count: int

2. 创建StateGraph实例

# 创建StateGraph,指定状态类型workflow = StateGraph(GraphState)

3. 定义节点函数

def node_1(state: GraphState) -> GraphState: """第一个节点的处理逻辑""" return { "input": state["input"], "output": f"处理了: {state['input']}", "step_count": state.get("step_count", 0) + 1 }def node_2(state: GraphState) -> GraphState: """第二个节点的处理逻辑""" return { "input": state["input"], "output": state["output"] + " -> 进一步处理", "step_count": state["step_count"] + 1 }

4. 添加节点

workflow.add_node("step1", node_1)workflow.add_node("step2", node_2)

5. 定义边连接

# 设置入口点workflow.set_entry_point("step1")# 添加边workflow.add_edge("step1", "step2")workflow.add_edge("step2", END)

6. 条件边的使用

你还可以添加条件边来实现分支逻辑:

def should_continue(state: GraphState) -> str: """决定下一步走向的条件函数""" if state["step_count"] < 3: return "continue" else: return "end"# 添加条件边workflow.add_conditional_edges( "step1", should_continue, { "continue": "step2", "end": END })

7. 编译并运行

# 编译图app = workflow.compile()# 运行图initial_state = { "input": "Hello World", "output": "", "step_count": 0}result = app.invoke(initial_state)print(result) ```![](http://cdn.zhipoai.cn/01b57ef5.jpg) **State基本概念** ------------- > 在现代AI应用开发中,如何优雅地管理复杂工作流的状态流转是一个关键挑战。LangGraph的State机制为我们提供了一套强大而灵活的状态管理解决方案。本文将深入探讨LangGraph State的设计理念、核心特性和实际应用。 ### **什么是LangGraph State?** LangGraph State是LangGraph框架中用于定义和管理图状态的核心组件。它不仅定义了数据的结构模式(Schema),还通过reducer函数指定了状态更新的逻辑。State既是所有节点和边的输入模式,也是节点间数据流转的载体。 核心设计理念 LangGraph State的设计遵循以下几个核心原则: * 类型安全: 通过TypedDict或Pydantic模型确保数据结构的正确性 * 状态隔离: 支持多层次的状态模式,实现输入、输出和内部状态的分离 * 灵活性: 节点可以读写任何已声明的状态通道 * 可扩展性: 支持运行时动态添加新的状态通道 ### **核心关系** 1. **`state_schema`**- 图的**内部状态模式**,定义了图内部所有可能的状态字段 2. **`input_schema`**- 图的**输入模式**,是`state_schema`的子集,定义图接受什么输入 3. **`output_schema`**- 图的**输出模式**,是`state_schema`的子集,定义图返回什么输出 ### **具体说明** ### **state\_schema(必需)** * 图的**完整内部状态**,包含所有节点可能读写的字段 * 所有节点都可以访问和写入这个schema中的任何字段 * 是图的"全局状态空间" ### **input\_schema(可选)** * 如果不指定,默认等于`state_schema` * 限制图的**输入接口**,只能传入这些字段 * 是`state_schema`的子集或相等 ### **output\_schema(可选)** * 如果不指定,默认等于`state_schema` * 限制图的**输出接口**,只返回这些字段 * 是`state_schema`的子集或相等 ### **实际例子** ```plaintext # 内部完整状态class OverallState(TypedDict): foo: str # 内部处理字段 user_input: str # 输入字段 graph_output: str # 输出字段# 限制输入只包含user_inputclass InputState(TypedDict): user_input: str# 限制输出只包含graph_output class OutputState(TypedDict): graph_output: str# 创建图builder = StateGraph( OverallState, # 内部完整状态 input_schema=InputState, # 输入限制 output_schema=OutputState # 输出限制)

关系图示

输入 → [InputState] → [OverallState] → [OutputState] → 输出 (输入过滤) (内部完整状态) (输出过滤)

这种设计的好处:

  • 封装性: 内部处理细节不会暴露给外部
  • 接口清晰: 明确定义输入输出契约
  • 灵活性: 内部可以有更多临时状态字段用于节点间通信

下面是一些例子

基础单模式使用

最简单的情况下,所有节点共享同一个状态模式:

from typing import TypedDictfrom langgraph.graph import StateGraph, START, ENDclass SimpleState(TypedDict): input: str output: str step_count: intdef process_node(state: SimpleState) -> SimpleState: return { "input": state["input"], "output": f"处理结果: {state['input']}", "step_count": state.get("step_count", 0) + 1 }# 创建简单的状态图workflow = StateGraph(SimpleState)workflow.add_node("processor", process_node)workflow.add_edge(START, "processor")workflow.add_edge("processor", END)app = workflow.compile()result = app.invoke({"input": "Hello", "output": "", "step_count": 0})

多模式架构:输入输出分离

在实际应用中,我们常常需要区分输入、输出和内部状态:

from typing import TypedDictfrom langgraph.graph import StateGraph, START, ENDclass InputState(TypedDict): """用户输入接口""" user_input: strclass OutputState(TypedDict): """最终输出接口""" graph_output: str step_count:intclass OverallState(TypedDict): """内部完整状态""" user_input: str intermediate_result: str processed_data: str graph_output: str step_count: intclass PrivateState(TypedDict): """节点间私有通信""" private_data: str internal_flag: booldef input_node(state: InputState) -> OverallState: """输入处理节点""" return { "user_input": state["user_input"], "intermediate_result": f"开始处理: {state['user_input']}", "step_count": 1 }def processing_node(state: OverallState) -> PrivateState: """数据处理节点""" processed = state["intermediate_result"].upper() return { "private_data": f"私有处理: {processed}", "internal_flag": len(state["user_input"]) > 5 }def intermediate_node(state: PrivateState) -> OverallState: """中间处理节点""" additional_info = " (长文本)" if state["internal_flag"] else " (短文本)" return { "processed_data": state["private_data"] + additional_info }def output_node(state: OverallState) -> OutputState: """输出生成节点""" final_result = f"最终结果: {state['processed_data']} | 步骤: {state.get('step_count', 0)}" return { "graph_output": final_result }# 创建多模式状态图builder = StateGraph( OverallState, input=InputState, output=OutputState)builder.add_node("input_processor", input_node)builder.add_node("data_processor", processing_node)builder.add_node("intermediate_processor", intermediate_node)builder.add_node("output_processor", output_node)builder.add_edge(START, "input_processor")builder.add_edge("input_processor", "data_processor")builder.add_edge("data_processor", "intermediate_processor")builder.add_edge("intermediate_processor", "output_processor")builder.add_edge("output_processor", END)graph = builder.compile()# 测试输入input_data = {"user_input": "Hello LangGraph","extra_input":"额外输入"}print("输入:", input_data) # 执行图result = graph.invoke(input_data)print("输出:", result)png_data=graph.get_graph().draw_mermaid_png()with open("state.png", "wb") as f: f.write(png_data)

输出如下

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1169385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026年振动传感器国产标杆企业推荐:建大仁科领航行业新标杆 - 深度智识库

在智能制造与工业互联网快速发展的2026年,振动传感器作为工业设备状态监测的核心部件,其技术实力与市场表现已成为衡量企业竞争力的关键指标。 在山东省这片创新热土上,山东仁科测控技术有限公司(品牌名“建大仁科…

第十届遥感技术与应用国际会议(ICRSTA 2026)

第十届遥感技术与应用国际会议(ICRSTA 2026) The 10th Intl Conference on Remote Sensing Technologies and Applications(ICRSTA 2026) 2026年7月17-19日 中国成都 &#x1f4c5; 重要信息 会议官网&#xff1a;https://www.academicx.org/ICRSTA/2026/ 会议时间&#xf…

JBoltAI V4:以体系化能力重塑企业数智化转型路径

在AI技术向产业深度渗透的过程中&#xff0c;企业普遍面临“技术门槛高、资源整合难、落地成本高”的转型困境。JBoltAI V4作为专注Java生态的企业级AI应用开发框架&#xff0c;并非单一工具的迭代&#xff0c;而是通过重构架构设计、完善能力矩阵&#xff0c;构建了一套从资源…

优质采购管理软件系统推荐:全品类覆盖+AI赋能(选型攻略) - 品牌排行榜

一、2025采购数字化转型加速,选对系统是关键 艾瑞咨询《2024中国企业数字化采购发展报告》显示,国内企业采购数字化渗透率已突破62%,超3000家大中型企业启动SRM系统升级。但市场调研发现,47%的企业因系统功能单一、…

面向云原生架构的时序数据库选型:在国际主流 TSDB 谱系中理解 Apache IoTDB比

文章目录1. 国际主流 TSDB 的三种典型路线2. 指标模型 vs 树形路径&#xff1a;在“标签自由”与“层级清晰”之间取舍2.1 国际主流的标签模型&#xff1a;强在灵活&#xff0c;弱在层级表达2.2 IoTDB 的树形路径&#xff1a;优先服务“物理世界的层级”3. 与大数据生态的结合&…

2026年 热电材料厂家推荐排行榜,热电模组/微型热电制冷器/半导体热电系统,N型P型热电臂与微结构模块技术深度解析 - 品牌企业推荐师(官方)

2026年热电材料技术展望与核心厂家竞争力深度解析 随着全球对高效、精准温控及能源回收利用需求的日益增长,半导体热电技术正迎来前所未有的发展机遇。热电技术,作为一种基于塞贝克效应和帕尔贴效应的固态能量转换技…

2026年醋酸钠晶体厂家权威推荐榜单:三水合乙酸钠/污水菌种/氧化铝除氟剂/除氟絮凝剂/液体除氟剂源头厂家精选 - 品牌推荐官

在全球绿色发展和工业升级的双重驱动下,环保水处理及精细化工领域对高效、专用添加剂的需求持续攀升。醋酸钠晶体,特别是三水合乙酸钠,凭借其优良的生物可利用性和安全性,已成为污水处理中至关重要的新型碳源,其需…

深入 JBoltAI 架构:插件化 + 模块化设计,让扩展更

在AI技术深度融入各行业系统的当下&#xff0c;企业对于AI应用开发框架的核心诉求&#xff0c;已从单纯的功能实现转向灵活扩展、系统兼容与低成本改造。JBoltAI作为聚焦Java生态的企业级AI应用开发框架&#xff0c;其架构设计围绕扩展性与适配性展开&#xff0c;为企业系统的A…

大模型开发者的福音:XML提示工程让你从代码小白变身AI大神!附完整实战代码

一、提示的组织方式很重要 自2022年ChatGPT发布以来&#xff0c;各种提示技巧层出不穷。大多数都承诺能带来革命性的效果&#xff0c;但实际上只能提供微不足道的改进。这个领域过于沉迷于巧妙的技巧&#xff0c;而忽视了扎实的工程原理。 但有一种方法脱颖而出——不是因为它…

告别 NAS 管理混乱 Sun-Panel+cpolar 让远程访问超省心

目录1 群晖nas本地部署2 简单使用sun-panel3介绍以及群晖安装cpolar4 创建Sun-Panel的公网地址总结Sun-Panel 是一款侧重可视化管理的私有云导航工具&#xff0c;核心功能是将 NAS、服务器、各类常用工具的访问入口整合到统一面板&#xff0c;支持多账号权限隔离&#xff0c;还…

有没有好的日本买房中介?从上海咨询到东京交割的全链条服务 - 博客万

对很多计划在日本置业的国内投资者来说,选择中介的过程往往比选房子本身还要纠结。语言不通、市场陌生、法律文件繁复——市场上确实存在多种类型的中介机构,但它们在专业深度、服务范围和本地执行能力上差异巨大。大…

学霸同款10个一键生成论文工具,专科生轻松搞定毕业论文!

学霸同款10个一键生成论文工具&#xff0c;专科生轻松搞定毕业论文&#xff01; 论文写作的“隐形助手”&#xff0c;你真的了解吗&#xff1f; 在当今这个信息爆炸的时代&#xff0c;论文写作早已不再是单纯的脑力劳动&#xff0c;而是一场效率与质量的双重较量。尤其是对于专…

2026 年 1 月防火涂料厂家推荐排行榜,钢结构/膨胀型/非膨胀型/气凝胶/超薄型/薄型/石膏基/水泥基防火涂料,耐火守护专家与创新科技之选 - 企业推荐官【官方】

2026 年 1 月防火涂料厂家推荐排行榜:钢结构/膨胀型/非膨胀型/气凝胶/超薄型/薄型/石膏基/水泥基防火涂料,耐火守护专家与创新科技之选 随着我国建筑安全法规的日益完善和全社会防火意识的显著提升,防火涂料行业正迎…

2026陕西保安服务市场TOP5精选:专业、可靠、值得信赖 - 深度智识库

随着社会经济的快速发展与城市化进程的加速,保安服务行业作为维护社会秩序、保障公共安全的重要力量,其重要性日益凸显。无论是商业综合体、住宅小区,还是政府机构、大型活动现场,专业的保安服务都是不可或缺的安全…

2026年虫情测报仪与土壤传感器国产标杆企业深度推荐:建大仁科引领行业革新 - 深度智识库

在农业现代化与智能化加速融合的2026年,虫情测报仪与土壤传感器作为精准农业的核心装备,其技术突破与市场应用已成为衡量企业竞争力的核心指标。山东省作为中国农业大省与工业强省,涌现出以山东仁科测控技术有限公司…

【AI开发神器】17种智能体架构大揭秘!从单智能体到多智能体系统,小白也能快速上手

这个仓库包含了17种以上最先进的智能体架构的详细实现&#xff0c;全部基于LangChain和LangGraph构建。这就像一本活教材&#xff0c;把理论概念和可以直接运行的代码完美连接起来。 Github项目链接&#xff1a;https://github.com/FareedKhan-dev/all-agentic-architectures/t…

rac一个节点权限被误修改修复

/u01下面有很多目录 grid oracle app oraInventory 误执行chown -R oracle:oinstall /u01 导致所有权限都被修改了,集群出现了问题,修复方法: 节点二获取权限并传输到节点一 getfacl -R -p /u01/app > /tmp/u01…

Java团队的AI转型之路:从适配到精通的能力构建之路

在AI技术重塑各行各业的当下&#xff0c;Java技术团队面临着从传统开发向AI应用开发转型的关键课题。JBoltAI作为企业级Java AI应用开发框架&#xff0c;并非简单提供工具支持&#xff0c;而是围绕Java生态的技术特性&#xff0c;构建了一套让Java团队真正掌握AI能力的完整体系…

2026年 农药与食品生产线厂家推荐榜:WDG农药/复合调料/鸡精自动化生产线,专业定制与高效智造解决方案深度解析 - 品牌企业推荐师(官方)

2026年农药与食品生产线厂家推荐榜:WDG农药/复合调料/鸡精自动化生产线,专业定制与高效智造解决方案深度解析 在农业现代化与食品工业精细化发展的双重驱动下,高效、智能、环保的生产装备已成为行业转型升级的核心引…

Paperzz 毕业论文功能全解析:从选题到定稿,一站式解决你的毕业难题

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertationhttps://www.paperzz.cc/dissertation 毕业季的钟声已经敲响&#xff0c;对于即将走出校园的大学生而言&…