【AI大模型】LangChain MCP适配器:MCP工具与LangChain 无缝集成的技术奥秘!

前言

AI行业现在已经火爆成这个样子,被宣传的可以说是无所不能,但是,我相信仍然有很多小伙伴用AI工具只是限于聊天,提问……这一类极其简单的应用场景,这不是极大的浪费了AI给我的红利吗?

图片

我们起码应该用AI工具实现一些相对更复杂,更智能的工作场景,比如我们能不能让AI在能回答问题的同时,还让它调用我们自己的数据库,读取我们的本地文件。

并且根据这些信息,在无需编码的情况下,帮我们执行一些类似浏览器检索,截图,email发送等等操作呢?

图片

那么,这就引出了我们今天的主题:Langchain ,它正是为了帮我们解决上述问题而生,Langchain 是一个开源框架,它支持用户将类似 GPT-4一样的大型语言模型与第三方外部计算和数据源相结合,实现复杂AI业务场景。

那什么又是LangChain MCP?LangChain MCP 适配器是一个功能强大的工具,它能够将Anthropic Model Context Protocol (MCP) 工具与LangChain 和 LangGraph 无缝集成。

图片

通过LangChainMCP适配器,我们开发人员就可以轻松地将MCP工具转换为 LangChain 工具,进而在LangGraph代理中使用这些工具。

LangChain MCP适配器还支持连接到多个MCP服务器,并从中加载工具,这就让我们开发人员可以同时利用多个 MCP服务器提供的工具来构建更强大的AI应用程序。

图片

同时LangChain MCP适配器也支持多种传输方式,包括标准输入输出(stdio)和服务器发送事件(SSE),这就让我们开发人员可以根据自己的实际体需求选择合适的传输方式。

LangChain MCP的应用场景也是非常广泛,下面给大家举些例子:

图片

LangChain MCP可以作为我们的个人助手,用AI来帮助我们实现出行预订航班、财务转账、缴费等。

在自主学习方面,可以帮我我们梳理整个课程大纲,画出重点,让我们更快的吃透学习资料。

数据分析,可以用LangChain MCP来连接到企业客户或相关市场源数据池,加以自动话分析,并根据分析结果执行相应商业决策。

LangChain MCP如何使用?下面我们给大家介绍一下具体配置方法:

MCP

安装

pip install langchain-mcp-adapters

以下是使用 MCP 工具与 LangGraph 代理的简单示例。

pip install langchain-mcp-adapters langgraph langchain-openaiexport OPENAI_API_KEY=<your_api_key>

服务器

首先,让我们创建一个可以进行加法和乘法运算的 MCP 服务器:

# math_server.pyfrom mcp.server.fastmcp import FastMCPmcp = FastMCP("Math")@mcp.tool()def add(a: int, b: int) -> int:    """将两个数字相加"""    return a + b@mcp.tool()def multiply(a: int, b: int) -> int:    """将两个数字相乘"""    return a * bif __name__ == "__main__":    mcp.run(transport="stdio")

客户端

# 创建 stdio 连接的服务器参数from mcp import ClientSession, StdioServerParametersfrom mcp.client.stdio import stdio_clientfrom langchain_mcp_adapters.tools import load_mcp_toolsfrom langgraph.prebuilt import create_react_agentfrom langchain_openai import ChatOpenAImodel = ChatOpenAI(model="gpt-4o")server_params = StdioServerParameters(    command="python",    # 确保更新为 math_server.py 文件的完整绝对路径    args=["/path/to/math_server.py"],)async with stdio_client(server_params) as (read, write):    async with ClientSession(read, write) as session:        # 初始化连接        await session.initialize()        # 获取工具        tools = await load_mcp_tools(session)        # 创建并运行代理        agent = create_react_agent(model, tools)        agent_response = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})

多个MCP服务器,该库还允许连接到多个 MCP 服务器并从中加载工具:

服务器

# math_server.py...# weather_server.pyfrom typing import Listfrom mcp.server.fastmcp import FastMCPmcp = FastMCP("Weather")@mcp.tool()async def get_weather(location: str) -> str:    """获取位置的天气。"""    return "纽约总是阳光明媚"if __name__ == "__main__":    mcp.run(transport="sse")
python weather_server.py

客户端

from langchain_mcp_adapters.client import MultiServerMCPClientfrom langgraph.prebuilt import create_react_agentfrom langchain_openai import ChatOpenAImodel = ChatOpenAI(model="gpt-4o")async with MultiServerMCPClient(    {        "math": {            "command": "python",            # 确保更新为 math_server.py 文件的完整绝对路径            "args": ["/path/to/math_server.py"],            "transport": "stdio",        },        "weather": {            # 确保您在 8000 端口启动天气服务器            "url": "http://localhost:8000/sse",            "transport": "sse",        }    }) as client:    agent = create_react_agent(model, client.get_tools())    math_response = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})    weather_response = await agent.ainvoke({"messages": "what is the weather in nyc?"})

与 LangGraph API 服务器一起使用,如果你想在 LangGraph API 服务器上运行一个使用 MCP 工具的 LangGraph 代理,可以使用以下设置:

# graph.pyfrom contextlib import asynccontextmanagerfrom langchain_mcp_adapters.client import MultiServerMCPClientfrom langgraph.prebuilt import create_react_agentfrom langchain_anthropic import ChatAnthropicmodel = ChatAnthropic(model="claude-3-5-sonnet-latest")@asynccontextmanagerasync def make_graph():    async with MultiServerMCPClient(        {            "math": {                "command": "python",                # 确保更新为 math_server.py 文件的完整绝对路径                "args": ["/path/to/math_server.py"],                "transport": "stdio",            },            "weather": {                # 确保您在 8000 端口启动天气服务器                "url": "http://localhost:8000/sse",                "transport": "sse",            }        }    ) as client:        agent = create_react_agent(model, client.get_tools())        yield agent

在你的 langgraph.json 中,确保将 make_graph 指定为图形入口点:

{  "dependencies": ["."],  "graphs": {    "agent": "./graph.py:make_graph"  }}

小小总结,Langchain为我们打开了一个充满无限可能的AI新世界,让AI技术真正落地,更加贴近我们用户的实际使用需求,同时也让机器学习应用的发展更加多元化,普适化。

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值