AI创想

标题: LangGraph 是什么?一文秒懂且通俗易懂! [打印本页]

作者: 创想小编    时间: 3 天前
标题: LangGraph 是什么?一文秒懂且通俗易懂!
作者:CSDN博客
“「 嘿兄弟,我好想交女朋友但都交不到,怎么办? 」”
身为 AI 工程师,为了帮他,当然是画个流程图啊!
(, 下载次数: 0)


交女朋友要分步骤,每个步骤都有单一目的。 如果失败也没关系,流程上我们退回去反省一下,再接再厉
「… 这 TM? 一点都不实际 ”
有道理,一定是因为没有用 LangGraph 的关系!
用了 LangGraph 一切都实际了起来!
(, 下载次数: 0)


用 LangGraph 把每个步骤都接上 LLM 或者是 Tool(搜索), 要流程有流程,要行动有行动 ,这就是交友 agent 。
最近两年,大家都可以看到AI的发展有多快,我国超10亿参数的大模型,在短短一年之内,已经超过了100个,现在还在不断的发掘中,时代在瞬息万变,我们又为何不给自己多一个选择,多一个出路,多一个可能呢?
与其在传统行业里停滞不前,不如尝试一下新兴行业,而AI大模型恰恰是这两年的大风口,整体AI领域2025年预计缺口1000万人,其中算法、工程应用类人才需求最为紧迫!
学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】
【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!
为什么要 LangGraph?

当你的产品需要一些流程、步骤,用 LangGraph 搭配 LangChain
可是,LangGraph 怎么做到呢? 有三个要素!
LangGraph 是什么?

LangGraph 三要素:
太抽象? 给个简单例子
  1. # **State**
  2. class MyState(TypedDict):  # from typing import TypedDict
  3.     i: int
  4.     j: int
  5. # Functions on **nodes**
  6. def fn1(state: MyState):
  7.     print(f"Enter fn1: {state['i']}")
  8.     return {"i": 1}
  9. def fn2(state: MyState):
  10.     i = state["i"]
  11.     return {"i": i+1}
  12. # Conditional **edge** function
  13. def is_big_enough(state: MyState):
  14.     if state["i"] > 10:
  15.         return END
  16.     else:
  17.         return "n2"
  18. # The Graph!  The "Program" !!
  19. workflow = StateGraph(MyState)
  20. workflow.add_node("n1", fn1)
  21. workflow.add_node("n2", fn2)
  22. workflow.set_entry_point("n1")
  23. workflow.add_edge("n1", "n2")
  24. workflow.add_conditional_edges(
  25.     source="n2", path=is_big_enough
  26. )
  27. # Compile, and then run
  28. graph = workflow.compile()
  29. r = graph.invoke({"i": 1000, "j": 123})
  30. print(r)
复制代码
这个 graph 的可视化执行过程:
最后输出:
  1. {'i': 11, 'j': 123}
复制代码
跟单纯写 python 程序的不同,LangGraph 能够让每一个「步骤」都很复杂, 引入 LLM 跟工具的处理,把「流程」抽象出来 ,变得干净好维护。
Graph 像是一个子程序

在这个例子 MyState 其实是一个字典,先知道这样,后面有更多解释。
1. Node 节点

fn1 跟 fn2 两个 function,因为他们由 add_node() 绑在节点上 – 前面说了 Node 就是在干活,可以理解为具体的打工人。
何谓干活? 通常是「改变 state」,当然也可以是具体的某个事情,比如读取文件、写文件等。
  1. def fn1(state: MyState):
  2.     print(f"Enter fn1: {state['i']}")
  3.     return {"i": 1}
  4. def fn2(state: MyState):
  5.     i = state["i"]
  6.     return {"i": i+1}
复制代码
光是定义 function 不够,还要绑到 graph 上,给每个 node 一个名字:
  1. workflow.add_node("n1", fn1)
  2. workflow.add_node("n2", fn2)
复制代码
2. Edge 边

执行顺序呢? 这就是 “edge” 控制了:从一个点有方向地连到另一个点
  1. workflow.set_entry_point("n1")
  2. workflow.add_edge("n1", "n2")
  3. workflow.add_conditional_edges(
  4.     source="n2", path=is_big_enough
  5. )
复制代码
  1. def is_big_enough(state: MyState):
  2.     if state["i"] > 10:
  3.         return END
  4.     else:
  5.         return "n2"
复制代码
所以整个 Graph 看起来像个子程序! 把 workflow 当作代码、state 当作变量表,compile 编译成执行文件:
  1. graph = workflow.compile()
  2. r = graph.invoke({"i": 1000, "j": 123})
  3. print(r)
复制代码
  1. Enter fn1: 1000
  2. {'i': 11, 'j': 123}
复制代码
对了,有没有发现: 示例代码完全没 AI 模型 。LangGraph 本质上就是个 “graph processing” engine 而已!
3. State 状态

State 是一个共享的数据结构,在 graph 的节点之间传递和更新,在上面的代码中我们已经看到了,节点函数 fn1、fn2 可以读取 state 并进行修改
  1. class MyState(TypedDict):
  2.     i: int
  3.     j: int
  4. ...
  5. def fn2(state: MyState):
  6.     i = state["i"]
  7.     return {"i": i+1}
复制代码
核心特性
(, 下载次数: 0)


State 就像是一个在图中流动的"数据包",每个节点都可以检查它、修改它,然后传递给下一个节点。这种设计让复杂的 AI 工作流变得清晰可维护。
最近两年,大家都可以看到AI的发展有多快,我国超10亿参数的大模型,在短短一年之内,已经超过了100个,现在还在不断的发掘中,时代在瞬息万变,我们又为何不给自己多一个选择,多一个出路,多一个可能呢?
与其在传统行业里停滞不前,不如尝试一下新兴行业,而AI大模型恰恰是这两年的大风口,整体AI领域2025年预计缺口1000万人,其中算法、工程应用类人才需求最为紧迫!
学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】
【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!




原文地址:https://blog.csdn.net/javatiange/article/details/156576494




欢迎光临 AI创想 (http://llms-ai.com/) Powered by Discuz! X3.4