智能旅行规划系统

一个基于Google Gemini、Tavily API和Google Maps集成的AI驱动的旅行规划系统,提供实时位置数据、交互式地图可视化和详细行程生成。

  • by harshal-96
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 harshal-96/travel_agent_files

使用说明

基于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 <your-repo-url>
cd travel-planning-mcp

2. 安装依赖项

pip install -r requirements.txt

3. 配置环境变量

创建 .env 文件:

GOOGLE_MAPS_API_KEY=your_google_maps_api_key
TAVILY_API_KEY=your_tavily_api_key
GOOGLE_API_KEY1=your_google_ai_api_key

4. 启用 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. 阶段1 - 网络研究(Tavily API)

    • 一般旅行信息
    • 景点和活动
    • 预算估算
    • 安全提示和当地习俗
  2. 第二阶段 - 位置发现(谷歌地图API)

    • 带有评分和评论的酒店
    • 带有地址的餐厅
    • 带有坐标的景点
    • 真实位置数据
  3. 第三阶段 - AI规划(Gemini 2.5 Flash Lite)

    • 综合研究与位置数据
    • 生成每日行程安排
    • 创建预算细分
    • 提供实用建议

前端集成

React 组件 TravelMapView.tsx 提供交互式地图可视化:

import { TravelMapView } from './TravelMapView'

<TravelMapView 
  travelPlanData={planData}
  searchResults={results}
/>

地图功能:

  • 彩色标记(酒店:蓝色,餐厅:琥珀色,景点:红色)
  • 带有评分和评论的交互式信息窗口
  • 类别筛选器
  • 自动调整边界

技术栈

后端:

  • 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上联系我:[您的个人资料链接]


如果你觉得这个仓库有帮助,请给它点个星吧!