想象您正在构建一个复杂的,多功能的大语言模型(LLM)应用程序。令人兴奋,但面临挑战:管理各种代理的状态,协调他们的互动,并有效地处理错误。这是Langgraph可以提供帮助的地方。
Langgraph是Langchain生态系统中的图书馆,旨在正面应对这些挑战。 Langgraph提供了一个以结构化的方式定义,协调和执行多个LLM代理(或链)的框架。>它通过启用周期性图的创建来简化开发过程,这对于开发代理的运行时间至关重要。使用Langgraph,我们可以轻松地构建健壮,可扩展和灵活的多代理系统。
如果您想了解有关Langchain生态系统的更多信息,我建议您对Langchain介绍。>
什么是langgraph?
想象您的应用程序作为有向图。在langgraph中,每个节点代表LLM代理,边缘是这些试剂之间的通信通道。这种结构允许清晰可管理的工作流程,每个代理执行特定的任务并根据需要将信息传递给其他代理。
>
容错
基本概念 互动
>步骤1:定义状态图
编译图以创建一个编译对象,并且可以选择地使用下面的代码可视化图形结构: 步骤5:运行聊天机器人 高级langgraph功能 langgraph允许您创建自定义节点类型来实现复杂的代理逻辑。这提供了对应用程序行为的灵活性和控制。 边缘类型
Langgraph提供强大的状态管理技术,其中包括使用SQLITE,PostgreSQL和MongoDB等外部数据库,或使用Amazon S3,Google Cloud Storage和Azure Blob存储等云存储解决方案存储并检索您的代理商的状态,可靠性和可伸缩性。
>
推荐系统 如果您想了解有关Langchain生态系统中开发应用程序的更多信息,我建议您使用Langchain开发LLM应用程序的课程。图形结构
Langgraph的出色功能之一是其自动状态管理。此功能使我们能够在多个交互之间跟踪和持久信息。当代理执行任务时,状态将动态更新,确保系统保持上下文并适当响应新的输入。
协调
正如我上面提到的那样,Langgraph为使用复杂LLM应用程序的开发人员提供了一些重要的优势。这是Langgraph提供的一些现实世界的好处。
简化的开发
在Langgraph的情况下,开发人员可以灵活地定义自己的代理逻辑和通信协议。这允许针对特定用例量身定制的高度定制应用程序。无论您是否需要一个可以处理各种用户请求的聊天机器人,还是执行复杂任务的多代理系统,Langgraph都提供了构建所需内容的工具。这一切都是为了赋予您创建的力量。
langgraph旨在支持大规模多代理应用程序的执行。其强大的架构可以处理大量的交互和复杂的工作流程,从而可以开发可扩展的系统,这些系统可以随您的需求而增长。这使其适用于企业级应用程序和方案,而性能和可靠性至关重要。
开始使用langgraph >
>安装
pip install -U langgraph
>节点:节点代表langgraph中工作单位。它们通常是执行特定任务的Python函数,例如:
与LLM
状态:状态是图表中的节点随时间更新的中心对象。它管理您的应用程序的内部状态,并且可以根据申请的要求覆盖或添加。这种状态可以容纳以下内容:
这是使用langgraph创建基本聊天机器人应用程序的分步示例。
>定义一个状态图对象,以将聊天机器人构造为状态计算机。状态是一个类型列表的单个关键消息定义的类对象,并使用add_messages()函数来附加新消息,而不是覆盖它们。
pip install -U langgraph
>
>在这里,我们初始化AzureChatopenai模型,并创建一个简单的聊天机器人函数,该函数将状态消息作为输入输入并生成消息响应(随后将其应用于状态)。
此聊天机器人函数被添加为名为“聊天机器人”的节点。
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph
from langgraph.graph.message import add_messages
class State(TypedDict):
# messages have the type "list".
# The add_messages function appends messages to the list, rather than overwriting them
messages: Annotated[list, add_messages]
graph_builder = StateGraph(State)
步骤4:编译和可视化图
from langchain_openai import AzureChatOpenAI
llm = AzureChatOpenAI(
openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"],
azure_deployment=os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"],
)
def chatbot(state: State):
return {"messages": [llm.invoke(state["messages"])]}
‘’’The first argument is the unique node name
# The second argument is the function or object that will be called whenever the node is used.’’’
graph_builder.add_node("chatbot", chatbot)
# Set entry and finish points
graph_builder.set_entry_point("chatbot")
graph_builder.set_finish_point("chatbot")
自定义节点类型
graph = graph_builder.compile()
from IPython.display import Image, display
try:
display(Image(graph.get_graph().draw_mermaid_png()))
except Exception:
pass
>在这里,我们定义了一个封装自定义逻辑并与LLM交互的类mycustomnode。这提供了实施复杂节点行为的更具结构化和可维护的方法。
>
要创建一个条件边缘,您需要三个组件:
>
pip install -U langgraph
状态管理
错误处理from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph
from langgraph.graph.message import add_messages
class State(TypedDict):
# messages have the type "list".
# The add_messages function appends messages to the list, rather than overwriting them
messages: Annotated[list, add_messages]
graph_builder = StateGraph(State)
>例外:节点函数可以在执行过程中提出异常来发出错误。您可以捕获并处理以下例外,以防止图形崩溃。
重试机制:您可以在节点中实现重试逻辑来处理瞬态错误,例如网络问题或API超时。
>对于需要自主决策的应用程序,langgraph可以创建可以根据用户输入和预定义的逻辑独立执行任务的代理。
这些代理可以执行复杂的工作流程,与其他系统进行交互,并动态适应新信息。 Langgraph的结构化框架可确保每个代理都可以有效地运行,从而适合自动化客户支持,数据处理和系统监控等任务。多代理系统
Langgraph在构建应用程序中擅长于多个代理以实现共同目标的构建应用程序。例如,不同的代理可以在供应链管理系统中管理库存,过程订单和协调交货。 Langgraph的协调能力确保每个代理商都有有效的交流,共享信息并以同步方式做出决策。这会导致更有效的操作和更好的整体系统性能。
>随着langgraph,自动化业务流程和工作流程变得很简单。智能代理可以设计用于处理诸如文档处理,批准工作流和数据分析之类的任务。通过定义清晰的工作流并利用Langgraph的国家管理,这些工具可以执行复杂的动作序列,而无需人为干预,降低错误并提高生产率。
结论
通过提供一个结构化的框架来管理状态和协调代理相互作用,
以上是Langgraph教程:Langgraph是什么,如何使用它?的详细内容。更多信息请关注PHP中文网其他相关文章!

自2008年以来,我一直倡导这辆共享乘车面包车,即后来被称为“ Robotjitney”,后来是“ Vansit”,这是城市运输的未来。 我预见这些车辆是21世纪的下一代过境解决方案Surpas

革新结帐体验 Sam's Club的创新性“ Just Go”系统建立在其现有的AI驱动“扫描和GO”技术的基础上,使会员可以在购物旅行期间通过Sam's Club应用程序进行扫描。

NVIDIA在GTC 2025上的增强可预测性和新产品阵容 NVIDIA是AI基础架构的关键参与者,正在专注于提高其客户的可预测性。 这涉及一致的产品交付,达到绩效期望以及

Google的Gemma 2:强大,高效的语言模型 Google的Gemma语言模型家族以效率和性能而庆祝,随着Gemma 2的到来而扩展。此最新版本包括两种模型:270亿个参数VER

这一领先的数据剧集以数据科学家,天体物理学家和TEDX演讲者Kirk Borne博士为特色。 Borne博士是大数据,AI和机器学习的著名专家,为当前状态和未来的Traje提供了宝贵的见解

这次演讲中出现了一些非常有见地的观点——关于工程学的背景信息,这些信息向我们展示了为什么人工智能如此擅长支持人们的体育锻炼。 我将从每位贡献者的观点中概括出一个核心思想,以展示三个设计方面,这些方面是我们探索人工智能在体育运动中应用的重要组成部分。 边缘设备和原始个人数据 关于人工智能的这个想法实际上包含两个组成部分——一个与我们放置大型语言模型的位置有关,另一个与我们人类语言和我们的生命体征在实时测量时“表达”的语言之间的差异有关。 Alexander Amini 对跑步和网球都很了解,但他还

卡特彼勒(Caterpillar)的首席信息官兼高级副总裁杰米·恩格斯特(Jamie Engstrom)领导了一支由28个国家 /地区的2200多名IT专业人员组成的全球团队。 在卡特彼勒(Caterpillar)工作了26年,其中包括她目前的四年半,Engst

Google Photos的新Ultra HDR工具:快速指南 使用Google Photos的新型Ultra HDR工具增强照片,将标准图像转换为充满活力的高动态范围杰作。对于社交媒体而言,此工具可提高任何照片的影响,


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

禅工作室 13.0.1
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。