开启左侧

LangGraph 入门与实战

[复制链接]
AI小编 发表于 昨天 22:03 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:CSDN博客
原文:LangGraph 入门与实战 - 知乎
参考:langgraph/examples at main · langchain-ai/langgraph · GitHub
大家好,我是雨飞。LangGraph 是在 LangChain 基础上的一个库,是 LangChain 的 LangChain Expression Language (LCEL)的扩展。能够利用有向无环图的方式,去协调多个LLM或者状态,使用起来比 LCEL 会复杂,但是逻辑会更清晰。
相当于一种高级的LCEL语言,值得一试。
安装也十分简单。注意,这个库需要自己去安装,默认的LangChain不会安装这个库。
  1. pip install langgraph
复制代码
由于,OpenAI访问不方便,我们统一使用智普AI的大模型进行下面的实践。
智普AI的接口和OpenAI的比较类似,因此也可以使用OpenAI的tools的接口,目前还没有发现第二家如此方便的接口。实际使用起来,还是比较丝滑的,虽然有一些小问题。
我们下面以ToolAgent的思想,利用LangGraph去实现一个可以调用工具的Agent。
定义工具以及LLM

工具的定义,可以参考这篇文章,写的比较详细了,比较方便的就是使用 tools 这个注解。
雨飞:使用智普清言的Tools功能实现ToolAgent
定义Agent的状态

LangGraph 中最基础的类型是 StatefulGraph,这种图就会在每一个Node之间传递不同的状态信息。然后每一个节点会根据自己定义的逻辑去更新这个状态信息。具体来说,可以继承 TypeDict 这个类去定义状态,下图我们就定义了有四个变量的信息。
input:这是输入字符串,代表用户的主要请求。
chat_history: 这是之前的对话信息,也作为输入信息传入.
agent_outcome: 这是来自代理的响应,可以是 AgentAction,也可以是 AgentFinish。如果是 AgentFinish,AgentExecutor 就应该结束,否则就应该调用请求的工具。
intermediate_steps: 这是代理在一段时间内采取的行动和相应观察结果的列表。每次迭代都会更新。
  1. class AgentState(TypedDict):
  2.     # The input string
  3.     input: str
  4.     # The list of previous messages in the conversation
  5.     chat_history: list[BaseMessage]
  6.     # The outcome of a given call to the agent
  7.     # Needs `None` as a valid type, since this is what this will start as
  8.     agent_outcome: Union[AgentAction, AgentFinish, None]
  9.     # List of actions and corresponding observations
  10.     # Here we annotate this with `operator.add` to indicate that operations to
  11.     # this state should be ADDED to the existing values (not overwrite it)
  12.     intermediate_steps: Annotated[list[tuple[AgentAction, str]], operator.add]
复制代码
定义图中的节点

在LangGraph中,节点一般是一个函数或者langchain中runnable的一种类。
我们这里定义两个节点,agent和tool节点,其中agent节点就是决定执行什么样的行动,
tool节点就是当agent节点选择执行某个行动时,去调用相应的工具。
此外,还需要定义节点之间的连接,也就是边。
条件判断的边:定义图的走向,比如Agent要采取行动时,就需要接下来调用tools,如果Agent说当前的的任务已经完成了,则结束整个流程。
普通的边:调用工具后,始

原文地址:https://blog.csdn.net/javastart/article/details/137019399
回复

使用道具 举报

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

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )