所有文章 > 日积月累 > 如何将 LangChain 和 LangGraph 用于 Agentic AI
如何将 LangChain 和 LangGraph 用于 Agentic AI

如何将 LangChain 和 LangGraph 用于 Agentic AI

人工智能 (AI) 已经发展到我们可以创建自主思考和行动的系统。这些系统称为 Agentic AI,能够在现实世界中推理、决策和使用工具。想象一下,一个系统不仅可以提供天气更新,还可以记住您之前询问的内容并建议相关信息 – 这就是 Agentic AI 的实际应用。

然而,构建这样的系统并不简单。像 OpenAI 的 GPT 这样的大型语言模型 (LLM)功能强大但功能有限。它们擅长生成文本,但缺乏内存,无法直接与外部工具或系统交互。这就是LangChainLangGraph等框架的闪光点,它们使开发人员能够为 AI 模型添加内存以在交互过程中保留上下文,集成 API 等工具以进行实时数据检索,并为复杂的多步骤任务创建工作流。

本文将指导您完成:

  • 了解 LLM 和变压器的局限性。
  • 探索 LangChain 和 LangGraph 如何解决这些限制。
  • 构建具有记忆保留和 API 集成功能的天气聊天机器人代理。
  • 扩展系统以供生产使用并将其与替代方案进行比较。

基础概念:大型语言模型和 Transformer

什么是LLMs (LLM)?

大型语言模型 (LLM),例如 OpenAI 的 GPT,是在大量人类语言数据集上进行训练的。它们旨在预测序列中的下一个单词,这使它们能够生成连贯的文本、智能地回答问题并执行复杂的推理任务,例如编写代码或总结文档。

例如,GPT-3 只需一个句子就可以生成整篇文章。然而,虽然 LLM 是智能的,但它们以无状态的方式运行——将每次交互都当做第一次来处理。

Transformers:LLMs背后的大脑

Transformer 是驱动 LLM 的神经网络架构。Transformer 在 2017 年的论文“ Attention Is All You Need ”中被引入,它使用自注意力机制来理解序列中单词之间的关系。想象一下阅读一本小说。你不是线性阅读,而是在页面之间来回翻阅以更好地理解情节。Transformer 做同样的事情,专注于输入中最相关的部分以生成有意义的输出。

*要深入了解 Transformer 的内部工作原理,请参阅 Kesha William 的文章“*生成式 AI 中的 Transformer 是什么?

LLMs的局限性

尽管LLMs (LLM) 有诸多优势,但也存在一些缺点:

  1. 没有记忆:LLMs无法回忆过去的对话或在之前的输入基础上进行构建。
  2. 没有工具集成:它们无法获取实时数据或与 API 交互。
  3. 工作流程差距:他们缺乏执行多步骤推理或协调复杂任务的能力。

在构建用于动态现实世界应用的 AI 系统时,这些差距非常显著。例如,没有记忆的聊天机器人无法提供情境感知响应,没有工具集成的 LLM 无法检索实时天气更新。

LangChain 和 LangGraph 简介

LangChain:为LLMs (LLM) 增添超能力

LangChain 是一个扩展 LLM 功能的 Python 框架。它使开发人员能够:

  1. 添加记忆:随着时间的推移保留对话历史和上下文。
  2. 集成工具:使 LLM 能够与外部 API、数据库或功能交互。
  3. 创建模块化工作流程:构建任务序列,例如提出问题、检索数据和生成响应。

LangChain 可以被认为是大脑的执行助理。它记录已经说过或做过的事情,知道何时调用外部工具(例如,获取天气数据),并以有组织和模块化的方式管理任务,确保每一步都能产生所需的结果。

有关 LangChain 基础知识的更多信息,请查看 Amber Israelsen 的文章:“开始使用 LangChain:如何运行您的第一个应用程序” 。

LangGraph:可视化工作流程

当 LangChain 执行工作流时,LangGraph 提供了一种可视化和调试它们的方法。它将工作流表示为有向图,其中有节点(表示获取数据或生成文本等任务)和边(表示任务之间的依赖关系)。

LangGraph 充当蓝图架构师:

  • 它直观地映射出任务及其关系。
  • 它通过显示数据如何在系统中流动来简化调试。
  • 它通过使工作流程模块化和适应性来确保可扩展性。

例如,如果 LangChain 组织了一个获取天气数据的工作流程,LangGraph 会以图表的形式显示该步骤:用户输入 → 获取天气 → 生成响应。

构建天气聊天机器人代理

现在您已经了解了 LangChain 和 LangGraph 是什么,让我们开始实际的动手学习吧!按照以下步骤,我们将构建一个满足以下条件的代理:

  1. 保留记忆以提供情境感知响应。
  2. 使用OpenWeatherMap的 API获取实时天气数据。
  3. 结合 LangChain 工具和工作流程实现无缝交互。

步骤 1:设置 LangChain

我们将初始化 OpenAI 的 GPT 模型和 LangChain 的记忆系统。

from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationBufferMemory

# OpenAI API Key
openai_api_key = "YOUR_OPENAI_API_KEY"

# Initialize the chat model
llm = ChatOpenAI(model="gpt-3.5-turbo", openai_api_key=openai_api_key)

# Add memory to retain conversation context
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)

那么,这里发生了什么?让我解释一下:

  • ChatOpenAI:连接到 OpenAI 的 GPT 模型进行自然语言生成。
  • ConversationBufferMemory:存储用户代理对话历史记录,以提供跨多个回合的上下文。

第 2 步:获取天气数据

使用 OpenWeatherMap 的 API 来检索天气信息。

import requests

OPENWEATHER_API_KEY = "YOUR_OPENWEATHER_API_KEY"

def get_city_coordinates(city: str):
    url = f"http://api.openweathermap.org/geo/1.0/direct?q={city}&appid={OPENWEATHER_API_KEY}"
    response = requests.get(url)
    data = response.json()
    if data:
        return data[0]["lat"], data[0]["lon"]
    raise ValueError("City not found.")

def get_weather(city: str):
    lat, lon = get_city_coordinates(city)
    url = f"https://api.openweathermap.org/data/3.0/onecall?lat={lat}&lon={lon}&appid={OPENWEATHER_API_KEY}&units=metric"
    response = requests.get(url)
    data = response.json()
    temp = data["current"]["temp"]
    condition = data["current"]["weather"][0]["description"]
    return f"The weather in {city} is {temp}°C with {condition}."

步骤 3:将天气功能集成到工具中

LangChain的工具类集成了外部函数,实现无缝交互。

from langchain.tools import Tool

weather_tool = Tool(
    name="Weather Fetcher",
    func=get_weather,
    description="Fetches the current weather for a specified city."
)

步骤 4:初始化 LangChain 代理

我们将工具、大型语言模型(LLM)和记忆模块整合为一个协同一致的智能代理(Agent)。

from langchain.agents import initialize_agent, AgentType

tools = [weather_tool]
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION,
    memory=memory,
    verbose=True
)

步骤 5:使用 FastAPI 部署聊天机器人

使用FastAPI将代理部署为 API 服务。

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

class ChatRequest(BaseModel):
    message: str

@app.post("/chat")
def chat(request: ChatRequest):
    try:
        response = agent.run(request.message)
        return {"response": response}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

现在,运行服务器:

uvicorn app:app --reload

如何扩展代理以供实际使用

现在我们已经构建了演示,我们如何才能让它在实际用例中部署呢?以下是我建议的一些步骤:

添加更多工具

  • 股票 API:获取实时股票价格。
  • 任务计划程序:自动提醒和通知。
  • 文档摘要:总结长篇文章或 PDF。

扩展基础设施

LangChain 和 LangGraph 与 Haystack 和 LlamaIndex 的比较

  • LangChain 和 LangGraph 最适合结合内存、工具集成和模块化工作流。LangGraph 的可视化确保了可扩展性和调试能力。
  • Haystack 最适合文档检索和问答。它对工具集成的支持有限。
  • LlamaIndex 非常适合索引大型数据集,并且并未针对代理工作流程进行优化。

实际应用

归根结底,人工智能的效果取决于它解决的实际业务问题。以下是您可以使用此解决方案的一些用例:

  1. 客户支持:用于解决查询的上下文感知机器人。
  2. 电子商务:个性化推荐和帮助。
  3. 研究代理:自动化数据汇总和见解提取。

结论

LangChain 和 LangGraph 使开发人员能够创建智能、模块化且可扩展的 AI 系统。通过集成内存、工具使用 和工作流可视化,这些框架为构建动态的现实世界应用程序开辟了新的可能性。从天气聊天机器人到自主研究助理,LangChain 和 LangGraph 为超越静态 AI 进入自适应交互式系统领域奠定了基础。

AI 的未来在于不仅能思考,还能智能行动的系统 — LangChain 和 LangGraph 等框架正在引领这一趋势。立即开始构建您自己的 Agentic AI 系统并参与转型!

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费