基于Google Maps MCP的旅行规划系统
利用谷歌Gemini、Tavily API和谷歌地图集成的AI旅行规划系统。
特点/特性
- 使用Gemini 2.5 Flash Lite进行智能旅行规划
- 谷歌地图API集成以获取实时位置数据
- 带有自定义标记的交互式地图可视化
- 多阶段规划:网络调研+地图智能+AI合成
- 考虑预算的行程生成
- 每日详细日程安排
项目结构
├── app.py # Main travel planning system & FastAPI backend
├── st_app.py # Streamlit web interface
├── TravelMapView.tsx # React map component
├── requirements.txt # Python dependencies
└── .env # Environment variables先决条件
- Python 3.8或更高版本
- 拥有API密钥的Google Cloud账户
- Tavily API密钥
设置
1. 克隆仓库
git clone
cd travel-planning-mcp2. 安装依赖项
pip install -r requirements.txt3. 配置环境变量
创建 .env 文件:
GOOGLE_MAPS_API_KEY=your_google_maps_api_key
TAVILY_API_KEY=your_tavily_api_key
GOOGLE_API_KEY1=your_google_ai_api_key4. 启用 Google Cloud API
在 Google Cloud Console 中启用这些 API:
- 方向API
- 路由API
- 地点API
- 距离矩阵API
- 地理编码API
使用
运行独立测试
python app.py生成一个示例旅行计划并保存至 travel_plan.txt
运行Streamlit界面
streamlit run st_app.py界面在……时打开 http://localhost:8501
用作API
在您的 FastAPI 应用程序中导入并使用:
from app import plan_trip
trip_request = {
"from": "Delhi (DEL)",
"to": "Mumbai (BOM)",
"departureDate": "2025-12-20",
"returnDate": "2025-12-25",
"passengers": "2",
"budget": "mid"
}
result = plan_trip(trip_request)请求格式
{
"from": "Delhi (DEL)",
"to": "Mumbai (BOM)",
"departureDate": "2025-12-20",
"returnDate": "2025-12-25",
"passengers": "2",
"budget": "mid"
}预算范围
budget10,000卢比mid25,000卢比premium55,000卢比luxury100,000卢比
响应格式
{
"success": true,
"destination": "Mumbai",
"origin": "Delhi",
"duration": 5,
"budget": 25000,
"travelers": 2,
"comprehensive_plan": "Detailed itinerary...",
"search_results": "Research data...",
"maps_results": "Location data...",
"generated_at": "2025-10-22T10:30:00"
}系统架构
三阶段处理:
- 阶段1 - 网络研究(Tavily API)
- 一般旅行信息 - 景点和活动 - 预算估算 - 安全提示和当地习俗
- 第二阶段 - 位置发现(谷歌地图API)
- 带有评分和评论的酒店 - 带有地址的餐厅 - 带有坐标的景点 - 真实位置数据
- 第三阶段 - AI规划(Gemini 2.5 Flash Lite)
- 综合研究与位置数据 - 生成每日行程安排 - 创建预算细分 - 提供实用建议
前端集成
React 组件 TravelMapView.tsx 提供交互式地图可视化:
import { TravelMapView } from './TravelMapView'
地图功能:
- 彩色标记(酒店:蓝色,餐厅:琥珀色,景点:红色)
- 带有评分和评论的交互式信息窗口
- 类别筛选器
- 自动调整边界
技术栈
后端:
- Python 3.8及以上版本
- Google Gemini 2.5 Flash Lite
- Tavily API
- 谷歌地图地点API
- 用于异步请求的 httpx
前端:
- React + TypeScript(可翻译为“React结合TypeScript”或保持原样,因为“+”在技术语境中常表示结合或使用)
- 谷歌地图JavaScript API
- shadcn/ui 组件
- 清晰的图标
安全最佳实践
API密钥存储在环境变量中\ 永远不要承诺 .env 进行版本控制\ Google Cloud Console中的API密钥限制\ 输入验证和错误处理
示例输出
系统生成:
- 执行摘要
- 每日行程安排及时间表
- 3-4种住宿选择
- 交通指南
- 餐厅推荐
- 完整的预算明细
- 实用技巧
- 备选方案
做出贡献
欢迎贡献!请提出问题或提交拉取请求。
许可证
麻省理工学院许可证
致谢
在参加由Hack2skill和Google Cloud组织的AI Labs '25孟买活动后所建。
特别感谢:
- 西达尔特关于AI代理的会议
- “Romin for MCP with Google ADK workshop”的中文翻译是:“Romin为MCP带来的Google ADK工作坊”
资源
联系
如有任何问题或反馈,请在LinkedIn上联系我:\[您的个人资料链接\]
______________________________________________________________________
如果你觉得这个仓库有帮助,请给它点个星吧!
