LangChain代理工具服务器

该项目展示了如何构建使用外部工具服务器的LangChain代理,支持数学计算、数据库查询、天气获取和网络搜索等功能。

  • by Vidya-9791
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Vidya-9791/langchain-mcp-agent-examples

使用说明

带有MCP工具服务器的LangChain代理

此仓库包含两个示例,展示了如何构建使用MCP(模型-上下文协议)服务器上托管的外部工具的LangChain代理。

  • 单服务器一个连接到本地一个数学工具服务器的基本代理示例。
  • 多服务器一个更高级的示例是,智能体能够同时连接到多个独立的工具服务器(数学、Oracle数据库、天气和网页搜索)。

项目结构

.
├── MultiServer/
│   ├── Servers/
│   │   ├── DB.py
│   │   ├── Math.py
│   │   ├── Weather.py
│   │   └── Web.py
│   ├── Client.py
│   ├── config.py
│   └── requirements.txt
│
├── SingleServer/
│   ├── Server.py
│   ├── Client.py
│   ├── config.py
│   └── requirements.txt
│
└── README.md

先决条件

  • Python 3.10及以上版本
  • 一个Azure OpenAI账户和API凭据。
  • 一个OpenWeatherMap API密钥(用于MultiServer示例)。
  • 一个正在运行的Oracle数据库实例(用于MultiServer示例)。

⚙️ 配置

在运行任一示例之前,您必须创建一个 .env 在相应的项目目录中创建文件(SingleServer 或者 MultiServer)。

从下面的模板中复制相关变量,并填写您的凭据。

# Azure OpenAI Credentials
AZURE_OPENAI_MODEL="gpt-4o-2"
AZURE_OPENAI_ENDPOINT="[https://your-endpoint.openai.azure.com/](https://your-endpoint.openai.azure.com/)"
AZURE_OPENAI_API_KEY="your_azure_openai_api_key"

# OpenWeatherMap API Key (for MultiServer only)
OPENWEATHERMAP_API_KEY="your_openweathermap_api_key"

# Oracle DB Credentials (for MultiServer only)
DB_USER="your_oracle_user"
DB_PASSWORD="your_oracle_password"
DB_HOST="localhost"
DB_PORT="1521"
DB_SERVICE_NAME="your_oracle_service_name"

🚀 运行示例

1. 单服务器示例

这个示例运行了一个能够执行数学计算的简单代理。

A. 设置

cd SingleServer
pip install -r requirements.txt

B. 跑步

打开一个终端并运行客户端。它会自动在后台启动数学服务器。

python Client.py

2. 多服务器示例

这个示例运行了一个代理,该代理能够执行数学运算、查询数据库、获取天气信息以及搜索网络。

A. 设置

cd MultiServer
pip install -r requirements.txt

B. 跑

你需要先分别在各自的终端中启动三个SSE服务器。客户端将自动启动 stdio 数学服务器。

  • 1号航站楼(启动数据库服务器):
    python Servers/DB.py
    
  • 2号航站楼(启动天气服务器):
    python Servers/Weather.py
    
  • 3号航站楼(启动Web服务器):
    python Servers/Web.py
    
  • 4号航站楼(启动客户端):
    python Client.py
    

现在,您可以在第四个终端中与代理进行交互。