使用说明
项目简介
本项目是一个基于Langchain框架和Chainlit用户界面的AI应用示例,核心在于集成了 Model Context Protocol (MCP),作为客户端与多个独立工具服务器之间的标准通信协议。通过MCP,Langchain Agent可以安全、可扩展地调用外部工具,实现更强大的功能。本项目包含天气查询、SQL数据库查询和PPT文件翻译三个独立的MCP工具服务器,以及一个Chainlit客户端应用,展示了MCP客户端-服务器架构的实际应用。
主要功能点
- MCP协议集成: 使用MCP作为客户端和工具服务器之间的通信标准,实现了解耦和可扩展的架构。
- 工具服务: 提供三个独立的MCP工具服务器,分别实现:
- 天气查询: 查询指定城市的天气信息。
- SQL数据库查询: 执行SQL SELECT语句查询预配置的销售数据库。
- PPT文件翻译: 将PowerPoint文件翻译成目标语言,并尽可能保留原格式。
- Chainlit用户界面: 提供友好的Web界面,方便用户与AI应用进行交互。
- Langchain Agent: 使用Langchain Agent作为核心,通过MCP客户端调用工具服务器提供的功能。
- 灵活的启动和管理脚本: 提供 'run.py', 'run_server.py', 'run_client.py' 脚本,简化服务器和客户端的启动和管理过程。
安装步骤
- 环境准备: 确保已安装 Python 3.10 或更高版本。
- 下载代码: 克隆 GitHub 仓库到本地。
- 安装依赖: 在项目根目录下打开终端,运行命令安装所有依赖:
pip install -r requirements.txt - 配置环境变量:
- 复制项目根目录下的 '.env_example' 文件,并重命名为 '.env'。
- 编辑 '.env' 文件,根据需要填写以下 API 密钥和数据库连接信息:
- 'OPENAI_API_KEY': OpenAI API 密钥 (用于 PPT 翻译)。
- 'OPENWEATHER_API_KEY': OpenWeatherMap API 密钥 (用于天气查询)。
- 'CLEARDB_DATABASE_URL': MySQL 数据库连接 URL (用于数据库查询),格式为 'mysql://user:password@host:port/dbname'。
- 'USER_AGENT': (可选) User-Agent 字符串,某些天气API可能需要。
服务器配置
MCP客户端 ('app.py') 通过以下 JSON 格式的配置信息连接到 MCP 服务器。此配置已预置在 'app.py' 的 'SERVER_CONFIGS' 变量中,无需用户手动配置,此处仅为说明配置格式:
{ "weather": { "command": "python", "args": ["MCP_Servers/weather_server.py", "--port", "8001"], "transport": "sse" }, "sql_query": { "command": "python", "args": ["MCP_Servers/sql_query_server.py", "--port", "8002"], "transport": "sse" }, "ppt_translator": { "command": "python", "args": ["MCP_Servers/ppt_translator_server.py", "--port", "8003"], "transport": "sse" } }
配置说明:
- server name: MCP 服务器的名称,例如 "weather", "sql_query", "ppt_translator"。
- command: 启动 MCP 服务器的命令,通常为 Python 解释器。
- args: 启动命令的参数列表,包括服务器脚本路径和端口号等。
- transport: 客户端与服务器之间的通信方式,本项目中使用 'sse' (Server-Sent Events)。
基本使用方法
- 启动 MCP 服务器:
- 在项目根目录下打开终端,运行命令:
python run.py - 在菜单中选择 '1' (Start servers only) 或 '3' (Start servers and client) 并按 Enter 键。
- 服务器将在后台启动,默认监听端口分别为 8001 (天气), 8002 (SQL), 8003 (PPT 翻译)。
- 可以通过运行 'run_server.py' 单独启动服务器。
- 在项目根目录下打开终端,运行命令:
- 启动 Chainlit 客户端:
- 确保 MCP 服务器已启动。
- 在项目根目录下打开另一个终端,运行命令:
python run.py - 在菜单中选择 '2' (Start client only) 或 '3' (Start servers and client) 并按 Enter 键。
- 客户端将自动启动,并在终端中显示访问 URL (通常为 'http://localhost:8000'),在浏览器中打开该 URL 即可使用。
- 可以通过运行 'run_client.py' 单独启动客户端。
- 与 AI 助手对话: 在 Chainlit 界面中,可以与 AI 助手进行对话,例如:
- 询问天气: "How is the weather in Tokyo today?"
- 查询数据库: "Query recent sales data"
- 翻译 PPT: "Help me translate the ppt from English to Chinese" (此时会提示上传 PPT 文件)
注意:
- 服务器启动后会在后台持续运行,关闭启动终端不会停止服务器。
- 客户端可以多次启动和关闭,不影响服务器运行。
- 使用 'run.py' 菜单或 'Ctrl+C' (在运行 'run_server.py' 的终端中) 可以停止所有服务器。
信息
分类
开发者工具