搜索
首页科技周边人工智能Langgraph教程:Langgraph是什么,如何使用它?

想象您正在构建一个复杂的,多功能的大语言模型(LLM)应用程序。令人兴奋,但面临挑战:管理各种代理的状态,协调他们的互动,并有效地处理错误。这是Langgraph可以提供帮助的地方。

Langgraph是Langchain生态系统中的图书馆,旨在正面应对这些挑战。 Langgraph提供了一个以结构化的方式定义,协调和执行多个LLM代理(或链)的框架。

>它通过启用周期性图的创建来简化开发过程,这对于开发代理的运行时间至关重要。使用Langgraph,我们可以轻松地构建健壮,可扩展和灵活的多代理系统。

如果您想了解有关Langchain生态系统的更多信息,我建议您对Langchain介绍。

>

什么是langgraph?

图形结构

想象您的应用程序作为有向图。在langgraph中,每个节点代表LLM代理,边缘是这些试剂之间的通信通道。这种结构允许清晰可管理的工作流程,每个代理执行特定的任务并根据需要将信息传递给其他代理。

状态管理

Langgraph的出色功能之一是其自动状态管理。此功能使我们能够在多个交互之间跟踪和持久信息。当代理执行任务时,状态将动态更新,确保系统保持上下文并适当响应新的输入。

协调

为什么langgraph?

正如我上面提到的那样,Langgraph为使用复杂LLM应用程序的开发人员提供了一些重要的优势。这是Langgraph提供的一些现实世界的好处。

简化的开发

灵活性

在Langgraph的情况下,开发人员可以灵活地定义自己的代理逻辑和通信协议。这允许针对特定用例量身定制的高度定制应用程序。无论您是否需要一个可以处理各种用户请求的聊天机器人,还是执行复杂任务的多代理系统,Langgraph都提供了构建所需内容的工具。这一切都是为了赋予您创建的力量。

>

可伸缩性

langgraph旨在支持大规模多代理应用程序的执行。其强大的架构可以处理大量的交互和复杂的工作流程,从而可以开发可扩展的系统,这些系统可以随您的需求而增长。这使其适用于企业级应用程序和方案,而性能和可靠性至关重要。

容错

可靠性是Langgraph设计中的核心考虑因素。该库包括用于优雅处理错误的机制,确保您的应用程序即使在各个代理遇到问题时也可以继续运行。这种容错性对于维持复杂多代理系统的稳定性和鲁棒性至关重要。安心只是一个功能。

开始使用langgraph

>让我们看看如何设置langgraph以及基本概念是什么。

>

>安装

要安装langgraph,您可以使用pip:

基本概念

pip install -U langgraph
>节点:节点代表langgraph中工作单位。它们通常是执行特定任务的Python函数,例如:

与LLM

互动

调用工具或API
  • 执行一些数据操作
  • 接收用户输入
  • >执行业务逻辑
  • 在langgraph中,您可以使用graph.add_node(name,value)语法添加节点。
  • 边缘:边缘是节点之间的通信通道。他们定义信息流和执行顺序。您可以使用graph.add_edge(node1,node2)语法添加边缘。
  • >
状态:状态是图表中的节点随时间更新的中心对象。它管理您的应用程序的内部状态,并且可以根据申请的要求覆盖或添加。这种状态可以容纳以下内容:

  • 对话历史记录:代理与用户之间的消息列表。>
  • >上下文数据:与当前任务或交互有关的信息。
  • > 内部变量:标志,计数器或其他变量,以跟踪代理的进度和行为。
  • 构建一个简单的langgraph应用程序

这是使用langgraph创建基本聊天机器人应用程序的分步示例。

>步骤1:定义状态图

>定义一个状态图对象,以将聊天机器人构造为状态计算机。状态是一个类型列表的单个关键消息定义的类对象,并使用add_messages()函数来附加新消息,而不是覆盖它们。

>步骤2:初始化llm并将其添加为聊天机器人节点
pip install -U langgraph
>

>在这里,我们初始化AzureChatopenai模型,并创建一个简单的聊天机器人函数,该函数将状态消息作为输入输入并生成消息响应(随后将其应用于状态)。

此聊天机器人函数被添加为名为“聊天机器人”的节点。

步骤3:设置边缘

>由于我们正在构建一个简单的聊天机器人,因此我们将聊天机器人节点设置为图表的输入点和终点,以指示从哪里开始和结束过程。
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)

步骤5:运行聊天机器人

最后,我们实现一个循环,以连续提示用户输入,通过图形处理并打印助手的响应。当用户键入“退出”,“退出”或“ Q”。
# Set entry and finish points
graph_builder.set_entry_point("chatbot")
graph_builder.set_finish_point("chatbot")

高级langgraph功能Langgraph教程:Langgraph是什么,如何使用它?

>现在我们涵盖了基础知识,让我们看一下一些高级功能。>

自定义节点类型

langgraph允许您创建自定义节点类型来实现复杂的代理逻辑。这提供了对应用程序行为的灵活性和控制。

>
graph = graph_builder.compile()
from IPython.display import Image, display
try:
    display(Image(graph.get_graph().draw_mermaid_png()))
except Exception:
    pass

>在这里,我们定义了一个封装自定义逻辑并与LLM交互的类mycustomnode。这提供了实施复杂节点行为的更具结构化和可维护的方法。

>

边缘类型

要创建一个条件边缘,您需要三个组件:

>
  1. 上游节点:节点的输出决定下一步。
  2. a函数:此函数评估上游节点的输出并确定下一个要执行的节点,返回一个代表决策的字符串。
  3. 映射:此映射将函数的可能结果链接到要执行的相应节点的结果。
  4. 这是伪代码中的一个示例:

>在这里,在调用“模型”节点之后,我们可以退出图(“ end”),然后返回用户,或者我们可以继续(“继续”)并调用工具 - 对用户的决定!
pip install -U langgraph
状态管理

Langgraph提供强大的状态管理技术,其中包括使用SQLITE,PostgreSQL和MongoDB等外部数据库,或使用Amazon S3,Google Cloud Storage和Azure Blob存储等云存储解决方案存储并检索您的代理商的状态,可靠性和可伸缩性。

这是使用SQLITE数据库进行状态管理的一个示例:>

错误处理

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是开发可以处理各种用户请求的复杂聊天机器人的理想选择。通过利用多个LLM代理,这些聊天机器人可以处理自然语言查询,提供准确的响应,并在不同的对话主题之间无缝切换。管理状态和协调交互的能力确保聊天机器人维护上下文并提供连贯的用户体验。
  • >自主剂

>对于需要自主决策的应用程序,langgraph可以创建可以根据用户输入和预定义的逻辑独立执行任务的代理。

这些代理可以执行复杂的工作流程,与其他系统进行交互,并动态适应新信息。 Langgraph的结构化框架可确保每个代理都可以有效地运行,从而适合自动化客户支持,数据处理和系统监控等任务。

>

多代理系统

Langgraph在构建应用程序中擅长于多个代理以实现共同目标的构建应用程序。例如,不同的代理可以在供应链管理系统中管理库存,过程订单和协调交货。 Langgraph的协调能力确保每个代理商都有有效的交流,共享信息并以同步方式做出决策。这会导致更有效的操作和更好的整体系统性能。

>工作流动自动化工具

>随着langgraph,自动化业务流程和工作流程变得很简单。智能代理可以设计用于处理诸如文档处理,批准工作流和数据分析之类的任务。通过定义清晰的工作流并利用Langgraph的国家管理,这些工具可以执行复杂的动作序列,而无需人为干预,降低错误并提高生产率。

推荐系统

个性化推荐系统可以从Langgraph的功能中受益匪浅。通过使用多个代理来分析用户行为,偏好和上下文数据,这些系统可以为产品,内容或服务提供量身定制的建议。 Langgraph的灵活性允许整合各种数据源和算法,增强了建议的准确性和相关性。 个性化的学习环境 在教育平台中,Langgraph可用于创建适合单个学习风格和需求的自适应学习环境。多个代理商可以评估学生的进度,提供定制的练习并提供实时反馈。 Langgraph的状态性质确保系统保留有关每个学习者的表现和偏好的信息,从而实现更个性化和有效的教育经验。

结论

通过提供一个结构化的框架来管理状态和协调代理相互作用,> Langgraph的潜在发展包括与其他Langchain组件集成,对新LLM模型的支持以及从学术界引入更高级的代理运行时间。

如果您想了解有关Langchain生态系统中开发应用程序的更多信息,我建议您使用Langchain开发LLM应用程序的课程。

>

以上是Langgraph教程:Langgraph是什么,如何使用它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
无法使用chatgpt!解释可以立即测试的原因和解决方案[最新2025]无法使用chatgpt!解释可以立即测试的原因和解决方案[最新2025]May 14, 2025 am 05:04 AM

ChatGPT无法访问?本文提供多种实用解决方案!许多用户在日常使用ChatGPT时,可能会遇到无法访问或响应缓慢等问题。本文将根据不同情况,逐步指导您解决这些问题。 ChatGPT无法访问的原因及初步排查 首先,我们需要确定问题是出在OpenAI服务器端,还是用户自身网络或设备问题。 请按照以下步骤进行排查: 步骤1:检查OpenAI官方状态 访问OpenAI Status页面 (status.openai.com),查看ChatGPT服务是否正常运行。如果显示红色或黄色警报,则表示Open

计算ASI的风险始于人类的思想计算ASI的风险始于人类的思想May 14, 2025 am 05:02 AM

2025年5月10日,麻省理工学院物理学家Max Tegmark告诉《卫报》,AI实验室应在释放人工超级智能之前模仿Oppenheimer的三位一体测试演算。 “我的评估是'康普顿常数',这是一场比赛的可能性

易于理解的解释如何编写和撰写歌词和推荐工具易于理解的解释如何编写和撰写歌词和推荐工具May 14, 2025 am 05:01 AM

AI音乐创作技术日新月异,本文将以ChatGPT等AI模型为例,详细讲解如何利用AI辅助音乐创作,并辅以实际案例进行说明。我们将分别介绍如何通过SunoAI、Hugging Face上的AI jukebox以及Python的Music21库进行音乐创作。 通过这些技术,每个人都能轻松创作原创音乐。但需注意,AI生成内容的版权问题不容忽视,使用时务必谨慎。 让我们一起探索AI在音乐领域的无限可能! OpenAI最新AI代理“OpenAI Deep Research”介绍: [ChatGPT]Ope

什么是chatgpt-4?对您可以做什么,定价以及与GPT-3.5的差异的详尽解释!什么是chatgpt-4?对您可以做什么,定价以及与GPT-3.5的差异的详尽解释!May 14, 2025 am 05:00 AM

ChatGPT-4的出现,极大地拓展了AI应用的可能性。相较于GPT-3.5,ChatGPT-4有了显着提升,它具备强大的语境理解能力,还能识别和生成图像,堪称万能的AI助手。在提高商业效率、辅助创作等诸多领域,它都展现出巨大的潜力。然而,与此同时,我们也必须注意其使用上的注意事项。 本文将详细解读ChatGPT-4的特性,并介绍针对不同场景的有效使用方法。文中包含充分利用最新AI技术的技巧,敬请参考。 OpenAI发布的最新AI代理,“OpenAI Deep Research”详情请点击下方链

解释如何使用chatgpt应用程序!日本支持和语音对话功能解释如何使用chatgpt应用程序!日本支持和语音对话功能May 14, 2025 am 04:59 AM

CHATGPT应用程序:与AI助手释放您的创造力!初学者指南 ChatGpt应用程序是一位创新的AI助手,可处理各种任务,包括写作,翻译和答案。它是一种具有无限可能性的工具,可用于创意活动和信息收集。 在本文中,我们将以一种易于理解的方式解释初学者,从如何安装chatgpt智能手机应用程序到语音输入功能和插件等应用程序所独有的功能,以及在使用该应用时要牢记的要点。我们还将仔细研究插件限制和设备对设备配置同步

如何使用中文版Chatgpt?注册程序和费用的说明如何使用中文版Chatgpt?注册程序和费用的说明May 14, 2025 am 04:56 AM

ChatGPT中文版:解锁中文AI对话新体验 ChatGPT风靡全球,您知道它也提供中文版本吗?这款强大的AI工具不仅支持日常对话,还能处理专业内容,并兼容简体中文和繁体中文。无论是中国地区的使用者,还是正在学习中文的朋友,都能从中受益。 本文将详细介绍ChatGPT中文版的使用方法,包括账户设置、中文提示词输入、过滤器的使用、以及不同套餐的选择,并分析潜在风险及应对策略。此外,我们还将对比ChatGPT中文版和其他中文AI工具,帮助您更好地了解其优势和应用场景。 OpenAI最新发布的AI智能

5 AI代理神话,您需要停止相信5 AI代理神话,您需要停止相信May 14, 2025 am 04:54 AM

这些可以将其视为生成AI领域的下一个飞跃,这为我们提供了Chatgpt和其他大型语言模型聊天机器人。他们可以代表我们采取行动,而不是简单地回答问题或产生信息

易于理解使用Chatgpt创建和管理多个帐户的非法性的解释易于理解使用Chatgpt创建和管理多个帐户的非法性的解释May 14, 2025 am 04:50 AM

使用chatgpt有效的多个帐户管理技术|关于如何使用商业和私人生活的详尽解释! Chatgpt在各种情况下都使用,但是有些人可能担心管理多个帐户。本文将详细解释如何为ChatGpt创建多个帐户,使用时该怎么做以及如何安全有效地操作它。我们还介绍了重要的一点,例如业务和私人使用差异,并遵守OpenAI的使用条款,并提供指南,以帮助您安全地利用多个帐户。 Openai

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具