找回密码
 立即注册
首页 业界区 业界 langchain 快速入门(五):Langgraph应用,执行流程由线 ...

langchain 快速入门(五):Langgraph应用,执行流程由线转图

膏包 7 天前
简介

Langgraph是langchain框架提供的一个组件,langgraph能够解决AI执行流程中迭代、循环或者根据结果返回上一步,与之前讲的chain链相比,能够实现更加复杂的AI执行流。
langgraph

从chain转到langgraph从数学的角度上来讲,执行流从线性流程转到了流程图。
langgraph的组成主要有三部分:
Langgraph=节点+边+状态
节点: 一个节点就是一个执行单元,相当于一次函数的调用。(可以是一次模型的调用,一次搜索,一次加密等等)
边: 边能够连接一个个节点,它决定了下一个应该去到哪个节点执行
状态: 实现数据共享,是实现AI短期记忆的灵魂
乍一看好像有些云里雾里的,我打个比方:玩家(状态),在玩一个大富翁,每个节点组成地图,玩家初始资金(数据)有1000块钱,玩家每走一格可能会发生一些事件,比如说后退一步,被小偷偷300块钱,买房子等等,这些事件相当于节点,走的方向相当于,最后玩家成功走到了终点END,你可以得知玩家(状态)最后还有多少钱,有多少资产。
下面用一个示例来演示。
改造RAG知识库

示例

这个是之前文章中构建知识库的相关代码,本次用langgraph改造流程
[code]import osimport operatorfrom typing import TypedDict, Annotatedfrom langchain_community.chat_models.tongyi import ChatTongyifrom langchain_community.embeddings import DashScopeEmbeddingsfrom langchain_community.vectorstores import FAISSfrom langchain_core.messages import ToolMessagefrom langchain_core.tools import toolfrom langchain_core.messages import HumanMessage, ToolMessage, BaseMessagefrom langchain_core.documents import Documentfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langgraph.graph import StateGraph, ENDfrom langgraph.prebuilt.tool_node import ToolNodeos.environ["DASHSCOPE_API_KEY"] = "sk-b07b9caab2144ff096002f81cb70b0af"@tooldef calculator(expression: str) -> str:    """    计算数学表达式。需要精确计算时使用。    参数:        expression: 数学算式,如 "2 + 2" 或 "500 * 0.8"。    返回:        str: 计算结果,如 "4.0" 或 "400.0"。    """    print(f"[
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册