位置智能(MCP+LangChain+Streamlit)
使用模型上下文协议(MCP)、谷歌地图平台和ReAct代理进行地理空间分析的对话式人工智能。询问与位置相关的问题(附近的设施、空气质量、天气、距离等),并获得MCP工具提供的结构化答案。
特性
- 流线型UI 输入自然语言查询
- MCP服务器 展示以下工具:网络搜索、地理编码、空气质量、天气、地点搜索/附近、距离矩阵、地理定位和区域洞察
- ReAct代理 (LangGraph)编排工具调用
- 谷歌双子座 模型via
langchain-google-genai
项目结构
app.py # Streamlit frontend
server.py # MCP server exposing geospatial tools (streamable-http)
client.py # Minimal example client invoking the agent via MCP
archive/ # Older/experimental server and client variants
docs/demo/project_demo.mp4 # Demo video
requirements.txt # Python deps先决条件
- Python 3.12+
- 启用了相关产品的Google API密钥(见下文)
- SerpAPI密钥(用于网络搜索)
所需的环境变量
创建一个 .env 使用以下键在项目根目录中创建文件。应用程序和服务器将通过以下方式自动加载它们 python-dotenv.
# Google Generative AI (Gemini)
GOOGLE_API_KEY=your_gemini_api_key
# Google Maps Platform (enable the specific APIs you use)
GOOGLEMAPS_API_KEY=your_google_maps_api_key
# SerpAPI (web search)
SERPAPI_API_KEY=your_serpapi_key推荐的谷歌地图平台API,以实现 server.py:
- 地点API(文本搜索,附近搜索,地点详细信息)
- 空气质量API
- 天气API
- 地理定位
- 距离矩阵API
安装
Windows(命令提示符):
cd D:\MCP_Demo
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtPowerShell:
cd D:\MCP_Demo
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt注:A mcp-venv 该文件夹存在于仓库中,但建议为每台机器创建一个新的虚拟环境。
跑步
- 启动MCP服务器(可流式传输http):
python server.py这暴露了MCP http://localhost:8000/mcp.
- 启动Streamlit应用程序:
streamlit run app.py- 使用UI:
- 输入这样的查询:“给我分析一下萨尔瓦贾尼克工程技术学院的周围环境(公共交通设施、餐馆、游乐场、医院等),包括空气质量和温度。”
- 确保MCP服务器URL字段为
http://localhost:8000/mcp.
CLI示例(可选)
client.py 包含一个最小的示例,显示如何连接到MCP服务器并通过代理运行单个提示。启动后运行 server.py.
python client.py演示视频
演示视频包含在存储库中:
docs/demo/project_demo.mp4
📹 观看演示视频 通过单击上面的文件或 在这里下载
注: GitHub不支持在README文件中播放视频。您可以下载视频文件在本地观看,也可以通过单击上面的文件链接直接在GitHub上查看。
截图
以下是一些展示该项目实际运作的截图:
我们的解决方案与ChatGPT的比较
示例1:基本查询响应
示例1:详细分析
示例2:位置分析
示例3:综合结果
这些屏幕截图展示了对话式人工智能界面以及您可以从系统中获得的地理空间分析结果的类型。
工作原理(高级)
server.py注册了基于谷歌地图平台和SerpAPI构建的多个MCP工具(网络搜索、地理编码、空气质量、天气、地点、距离矩阵、地理位置、区域洞察)。app.py使用LangGraph+Gemini创建ReAct代理,并使用以下命令通过HTTP传输动态加载MCP工具langchain-mcp-adapters.- 代理选择并调用工具来完成您的自然语言查询,并将最终答案返回给UI。
故障排除
- 缺少/无效的API密钥→ 验证
.env并且为您的项目启用了相关的Google API。 - 无法访问MCP服务器→ 确认
server.py正在运行且URL匹配http://localhost:8000/mcp. - 有关包的流式显示错误→ run
pip install -r requirements.txt在您的活动虚拟环境中。
许可证
在此处指定您的许可证(例如MIT)。如果未指定,此项目默认为“保留所有权利”
