大型语言模型 (LLM) 正在迅速改变各行各业,掌握 LLM开发 无疑是面向未来的技能。然而,面对众多的工具和框架,初学者很容易迷失方向。本文将提供一个清晰的三步指南,教你如何使用 Python 和 LangChain 生态系统从零开始构建自己的 AI Agent。
首先,你需要选择合适的工具。在 Python 的 LLM 开发领域,LangChain 生态系统占据主导地位。LangChain 提供了一整套工具,可以实现 AI Agent 的端到端创建,包括 LangChain 本身(用于高效地与 LLM 通信并构建 RAG)、LangGraph(用于创建以图形式组织的自主 Agent)和 LangSmith(用于监控开发和生产中的 Agent)。这种分工看似复杂,实则逻辑清晰且高效。如同文章作者所说,LangChain 是处理 LLM 的“链条”,LangGraph 是构建复杂 Agent 工作流的“图”,而 LangSmith 则是打造可用于生产环境的 LLM 的“锻造厂”。对于 Python 开发环境,Google Colab 是一个不可或缺的云端工具,它免费且专为教育而设计。
LangChain 的核心在于简化与不同 LLM 的交互。市场上存在许多 LLM 模型,由不同的供应商提供,有些甚至是开源的。一开始选择哪个模型可能令人困惑。LangChain 通过标准化与各种模型的通信,解决了这个问题。例如,你可以使用相同的代码连接到 Mistral、OpenAI 或 Anthropic 的 API。因此,建议从学习 LangChain 开始你的 Python LLM 开发之旅。
LangChain 定义了一种名为 LCEL (LangChain Expression Language) 的实用语言,用于描述 LLM 调用管道。例如,一个典型的 LangChain 链条可能如下所示:
chain = prompt | model | parsing
res = chain.invoke({"user_input": "Comment se former à LangChain?"})
print(res)
# "En suivant une formation LangChain par Eric Burel chez LBKE !"
这段代码展示了如何使用 LCEL 轻松构建一个简单的 LLM 调用链,从提示 (prompt) 开始,经过模型 (model) 处理,最后进行解析 (parsing) 。LangChain 还支持将文档摄取到专门的数据库中,并处理“embeddings”,这些语义向量可以创建超高效的搜索引擎。举例来说,你可以使用 LangChain 将大量文档导入向量数据库,然后使用用户的查询来检索相关信息,并将其作为 LLM 的上下文。
掌握了 LangChain 的基本用法后,你可能会想创建更复杂的管道。例如,有些公司可能会使用包含十几个步骤的复杂管道,将培训材料自动转换为文章。然而,使用 LangChain 构建过于复杂的管道可能会遇到瓶颈。这时,LangGraph 就派上用场了。
LangGraph 是一种 AI 工作流编排器,更具体地说,它是一个用于创建自主 AI Agent 的框架。Agent 以图的形式组织,因此被称为 “LangGraph”,而 LangChain 只能创建没有循环的简单链条。一个简单的代码助手示例是:Agent 根据用户的请求选择生成代码或解释现有代码。如果没有 LangGraph,编写这样的系统将非常繁琐。
在 LangGraph 图的节点中,你仍然可以使用 LangChain 作为与 LLM 的标准化接口。当然,你也可以在不使用 LangChain 的情况下使用 LangGraph,例如,选择特定的 SDK (OpenAI、Mistral…) 或自定义代码。如果你想了解代码层面的实现,可以在 LangChain 的 GitHub 帐户上找到许多开源 Agent。例如,”ReAct” Agent 是一个非常经典、简单而强大的 Agent,在许多课程中被用作示例。IBM 的一篇文章对 ReAct 进行了很好的定义,你也可以在 arXiv 上找到 ReAct 的研究论文。
LangGraph 的优势在于它能够定义复杂的 Agent 逻辑,使其能够根据不同的情况采取不同的行动。例如,一个客服机器人可以使用 LangGraph 来处理不同的客户问题,例如处理订单、回答常见问题或升级到人工客服。每个节点可以代表一个不同的任务,例如解析用户输入、检索相关信息、调用 LLM 或采取行动。
一旦你能够编写 Agent,你就会想认真对待部署问题。你可能已经知道,LLM 是非确定性对象:你无法真正预测它们的行为。LLM 可以在 90% 的情况下找到正确的答案,而在 10% 的情况下可能会胡说八道。在专业环境中,你必须找到解决这 10% 错误的方法。用户也并非总是友好的。黑客会试图利用你的 Agent 和 LLM 聊天机器人,例如,让他们生成盗版内容,同时让你支付 API 调用费用。
在部署 LLM 之前,你必须实施一个可观察性解决方案,该解决方案在开发中使用,也在投入生产后持续使用。有时,这被称为 “LLMObs”。这就是 LangSmith 的用武之地。它是一个支持 LLM 设计、监控和部署的平台。LangChain 生态系统(来源:LangChain):LangSmith 是一个横向解决方案,用于管理和监控 Agent。LangChain 和 LangGraph 是开源元素。
你的培训必须包括熟悉 LangSmith。测试在 LLM 世界中不是可选的,抱歉!请注意,LangSmith 不是开源的。如果你想留在自由软件世界中,你应该选择 langfuse,尽管它的名字与 LangChain 团队无关。
最后,LangGraph Platform 只是一个云平台,用于以 Web API 的形式自动部署你的 Agent。它的使用不是强制性的,你也可以围绕 Agent 创建自己的服务器包装器,或将其集成到现有应用程序中。通过 LangGraph Platform 运行并通过 LangSmith 在 LangGraph Studio UI 中访问的 ReAct Agent。很快,你也可以部署你的第一个 LLM Agent!
LangSmith 提供了各种工具来监控 LLM 的性能,例如跟踪 API 调用、评估 LLM 的输出以及调试问题。它还允许你设置警报,以便在 LLM 的性能下降时收到通知。此外,LangSmith 还可以帮助你识别潜在的安全漏洞,例如提示注入攻击。
总而言之,掌握 LLM开发 需要理解 LangChain 和 LangGraph 的应用,并熟练运用 LangSmith 进行监控与部署。
总结一下,掌握 Python 中的 LLM Agent 创建分为 3 个步骤:
- 通过 LangChain 框架学习如何有效地与 LLM 交互。
- 通过 LangGraph 框架学习如何组合 LLM 调用来创建 Agent。
- 学习如何在开发和生产中通过 LangSmith 监控 LLM,并通过 LangGraph Platform 部署它们。
为了进一步学习,LangChain Academy 允许你通过免费的英语视频熟悉 LangGraph 和 LangSmith。如果你正在寻找更全面和更广泛的项目,你可能会对 LBKE 的 LangGraph 和 LangChain 培训感兴趣,学习成为一名 LLM 开发人员。
通过学习 LangChain, LangGraph, 和 LangSmith,你将能够构建复杂的 AI Agent,并将其部署到生产环境中。 掌握这些工具将使你成为一名合格的 LLM 开发人员,并为你打开人工智能领域的大门。