基于 RAG + Function Calling + LangGraph 的京都智能旅行规划 Agent
EasyTravel Kyoto Agent 是一个基于 AI Agent 技术构建的京都智能旅行规划系统。
系统能够根据用户输入的旅行天数、预算、兴趣偏好、旅行节奏和特殊需求,自动生成个性化京都旅行方案,并结合天气查询、路线规划、餐厅推荐和景点知识库检索,为用户提供完整的旅行建议。
本项目综合应用了:
- AI Agent
- Function Calling
- LangGraph
- RAG(Retrieval-Augmented Generation)
- 向量数据库(FAISS)
- 多API协同调用
- 地图可视化
等技术。
系统支持用户输入旅行条件,并自动生成京都旅行计划,同时绘制真实路线地图。
用户可以设置:
- 旅行天数
- 总预算
- 出发地点
- 出行月份
- 兴趣偏好
- 旅行节奏
- 特殊需求
系统会根据这些条件自动规划旅行路线。
系统自动完成:
基于 RAG 知识库进行语义检索。
调用 Open-Meteo API 获取天气信息。
调用 OSRM API 获取景点间真实路线。
调用 Overpass API 查询景点周边餐厅。
根据旅行天数自动估算:
- 餐饮
- 交通
- 门票
- 住宿
自动生成:
- Day1
- Day2
- Day3
- ...
- DayN
完整旅行计划。
使用:
- Folium
- OpenStreetMap
- OSRM Routing API
绘制:
- 景点 Marker
- Day1 ~ DayN 路线
- 真实步行路线
并使用不同颜色区分每日行程。
User Input
↓
Streamlit Web UI
↓
LangGraph Agent
↓
DeepSeek Function Calling
↓
Structured Tool Call
↓
LangGraph Tool Routing
↓
Tool Execution
├── rag_search → FAISS
├── weather_tool → Open-Meteo
├── route_tool → OSRM
├── restaurant_tool → Overpass
└── budget_tool → Local Calculation
↓
Tool Results
↓
LangGraph State Update
↓
DeepSeek Continues Reasoning
├── Call additional tools
└── Generate final response
├── Travel Plan Text
└── ROUTE_JSON
↓
Route JSON Parser
↓
Folium Route Map
↓
Streamlit Result Display
- DeepSeek
- LangChain
- LangGraph
- Function Calling
- RAG
- FAISS
- Sentence Transformers
- Streamlit
- Folium
- OpenStreetMap
- OSRM Routing API
用于天气查询。
用于真实路线规划。
用于餐厅查询。
项目构建了京都旅游知识库:
kyoto_spots.json
当前包含:
- 清水寺
- 伏见稻荷大社
- 金阁寺
- 银阁寺
- 东福寺
- 高台寺
- 龙安寺
- 仁和寺
- 下鸭神社
- 京都御所
- 贵船神社
- 鞍马寺
- 醍醐寺
等 50+ 京都景点。
通过向量检索获取相关景点信息。
根据用户问题自动决定:
- 是否查询天气
- 是否规划路线
- 是否推荐餐厅
- 是否估算预算
无需人工指定工具。
支持:
- 知识库检索
- 天气查询
- 路线规划
- 餐厅推荐
- 预算估算
联合完成旅行规划。
不同于简单连线地图:
系统使用 OSRM 生成真实步行路线。
使用 Folium 动态绘制:
- 景点
- 路线
- Day1 ~ DayN 行程
EasyTravel-Kyoto-Agent/
│
├── app.py
├── kyoto_spots.json
├── requirements.txt
├── Dockerfile
├── .dockerignore
│
├── screenshots/
│ ├── overview.png
│ ├── home.png
│ ├── result.png
│ └── route_map.png
│
├── README.md
└── README_EN.md
pip install -r requirements.txtstreamlit run app.py浏览器访问:
http://localhost:8501
本项目支持 Docker 容器化部署,可实现环境一致性与快速部署。
docker build -t easytravel-kyoto-agent .docker run -p 8501:8501 easytravel-kyoto-agent浏览器打开:
http://localhost:8501
Dockerfile
.dockerignore
requirements.txt
通过 Docker 部署后,无需手动配置 Python 环境和依赖库,即可快速运行系统。
- 酒店推荐
- 多语言支持(中/英/日)
- Google Maps路线规划
- 景点聚类优化
- AI旅行记忆功能
- 用户历史记录保存
阮少卜
The Kyoto College of Graduate Studies for Informatics (KCGI)
研究方向:
- AI Agent
- NLP
- RAG
- LLM Application
- Intelligent Travel Planning



