为了账号安全,请及时绑定邮箱和手机立即绑定

LangChain的新工具LangGraph和LangSmith详解

在这篇文章中,我将全程介绍使用LangGraph构建的Agent的全过程,包括部署到LangGraph云以及使用LangGraph Studio查看。最后还将介绍如何使用LangSmith来管理和优化应用程序及LLM性能。

介绍

考虑到语言和人工智能的交叉领域,发展速度惊人地快。LangChain 正处于这一领域的前沿,引领生成式人工智能应用的开发和管理潮流。

关于生成AI和语言的几点初步观察:
  1. 几个月前,人们认为OpenAI凭借其功能强大的大型语言模型(LLMs)已经主导了市场。
  2. 随后,Meta等公司开源的众多模型颠覆了原有的商业模式。
  3. 大型语言模型供应商意识到语言模型将仅作为一项工具使用,并开始专注于面向终端用户的应用程序和类似RAG的功能,如“接地”、代理功能和个人助手。
  4. 为了解决幻觉问题,人们发现大型语言模型并没有出现预期中的新能力,而是特别擅长上下文学习(ICL)。围绕实施、扩展和管理上下文学习的结构逐渐发展起来,我们现在称其为RAG。
  5. RAG(非梯度)方法开始因其更佳的透明性而优于微调(梯度)方法,因为后者不够透明。这使生成式AI应用程序变得可观察、可检查和易于修改。
  6. 因为我们开始使用大型语言模型的所有方面(自然语言生成、推理、规划、对话状态管理等),除了其知识密集特征外,小型语言模型因此变得非常适用。
  7. 这得益于功能强大的开源小型语言模型、量化、本地化和离线推理技术、先进的推理能力和链式思考训练。
  8. 目前的焦点正在转向两个方面,第一个数据为中心的方法。这种方法可以发现、设计和增强用于RAG和微调的非结构化数据。最近的微调并没有专注于增强语言模型的知识密集特征,而是赋予模型特定的行为能力。
  9. 这在OpenAI最近的收购中得到了体现,即通过更接近数据部分并提供RAG解决方案的方式。
  10. 第二个方面是需要一个从无代码到低代码的人工智能工具包,提供模型访问、托管、流程工程、微调、提示工作室和保护措施。
  11. 还有一个值得注意的趋势是添加数据……图是一种抽象的数据类型……抽象数据类型是从用户的角度来看的一种数据类型的行为(语义)的数学模型。抽象数据类型与数据结构形成了鲜明的对比,后者是数据的具体表示,是从实现者而不是用户的角度来看的。这种数据结构更透明,易于解读。
回到LangChain吧

langChain 推出了 LangSmith,这是一个用于详细追踪和管理生成式 AI 应用程序的工具,包括提示游乐场(Prompt Playground)和提示中心(Prompt Hub)。

langChain最近还推出了LangGraph,这款产品在某种程度上增强了代理应用程序的结构。

抽象数据类型是从用户的角度定义的数据类型,重点描述了它的行为和语义。

抽象数据类型与数据结构形成鲜明对比,后者是具体的,数据结构是数据的具体表现形式,并且是从开发者而非用户的角度来看的。比如,这种数据结构不那么不透明,更易于解读。

有向图(或digraph)是由一组节点通过有向边连接的图。

图数据结构由一组有限的节点和这些节点构成的无序边集组成。

根据下图所示,节点、边及其选项均有所显示。

LangSmith

请看下面的图片,可以看到LangSmith控制台中列出了六个项目;项目、注释队列、游乐场、部署、数据集及测试和提示。

LangGraph新增了一个部署管理部分,用于管理它自己。

需要指出的是,LangGraph Studio 是你编写代码的图形展示。Studio 是帮助你可视化并理解数据流的工具。

工作室并不是一个用来生成或开发代码的工具,但可以在工作室里以视觉形式展示代码。不过,代码不能在工作室里被编辑或修改,所以工作室其实是一个观察、调试和对话流程工具,。

如何将 LangGraph 应用部署到 Studio

为了创建我的第一个LangGraph应用,我需要执行fork操作来获取LangChain的这个Github示例应用。

下面是我 Github 上的仓库,展示的是我分叉的应用。

在LangSmith中,我需要将分叉的仓库版本部署到LangGraph Cloud。以下是部署LangGraph应用程序到LangGraph Cloud的步骤。

如下所示,你可以看到我在我自己的GitHub上引用了LangSmith,并选择存放LangGraph应用程序的仓库。我也可以设置环境变量,这里包括我的OpenAI和Anthropic的API密钥等。

部署完成后,将显示LangGraph Cloud实例的相关信息,包括追踪项目的状态和更多内容。

LangGraph Studio

当你打开LangGraph Studio时,会看到一个可以互动的图形化界面。你可以在应用中添加暂停或断点,并且可以按有意义的方式排列节点来更好地理解应用。

有一个配置选项,以及消息设置选项。右边显示了状态、令牌消耗、延迟等等信息。

请看下面如何在代理节点中添加一个中断,应用程序流程被暂停,并等待用户明确继续执行。

右侧显示了流程图,包括所采取的动作、URL、内容以及代理的回应。

流程跟踪

下面是当用户将鼠标悬停在右侧轨迹图的节点上时,左侧的特定节点会被高亮显示。

流分叉

LangChain将其称为时间旅行功能,流程中的某个特定节点可以被分叉。在下面这个例子中,我修改了代理人采取行动的实际数据……

然后我可以再次运行这个流程,如下面所示,有两个分支版本,制作者可以在这两个结果之间切换。这个界面非常适合用来测试流程中的各种变化,以查看最终结果会是什么样的。

最后,您可以在LangSmith中看到LangGraph代理的跟踪细节。LangSmith跟踪视图中的选项包括查看运行、线程信息、根任务、LLM调用记录等。可以编辑数据保留策略、元数据信息等,等等。

✨ 关注我LinkedIn关于大语言模型的更新,一起成长

目前,我是Kore AI首席布道师。我研究并撰写有关人工智能与语言的交汇处的一切内容,包括大型语言模型、聊天机器人、语音机器人、开发框架、以数据为中心的潜在空间等等相关领域。

领英

[每当 Cobus Greyling 发布新内容时都会收到电子邮件。通过注册,您将创建一个 Medium 账户(如果没有的话)…cobusgreyling.medium.com(点击这里了解更多)]
[Cobus Greyling | Substack

我在探索和写作有关AI和语言的交汇点的所有事物;LLMs,NLP/NLU,聊天和语音机器人,CCAI等……substack.com](https://substack.com/@cobusgreyling?source=post_page-----99631dae1be8--------------------------------)

科布斯·格雷林在AI与语言的交汇点 | NLP/NLU/LLM、聊天/语音机器人、CCAI 我在这里探索和撰写关于AI与语言的一切 www.cobusgreyling.com 访问科布斯·格雷林的网站
LangSmithEdit langsmith.langchain.com (https://smith.langchain.com/?source=post_page-----99631dae1be8--------------------------------)
LangGraph Studio(来自 LangChain)在这篇文章里,我讨论了如何将基于 LangChain 的 LangGraph 代理从 GitHub 部署到 LangGraph Cloud…cobusgreyling.medium.com
LangGraph 最近加入了不断扩大的 LangChain 生态系统。随着 LangGraph Cloud 的发布……cobusgreyling.medium.com
LangChain 刚刚推出了 LangGraph Cloud,LangGraph 是一个相对较新的成员,加入了不断扩展的 LangChain 生态系统。随着 LangGraph Cloud 的发布……cobusgreyling.medium.com

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消