Skip to content

Repository files navigation

EasyTravel Kyoto Agent

基于 RAG + Function Calling + LangGraph 的京都智能旅行规划 Agent


项目简介

EasyTravel Kyoto Agent 是一个基于 AI Agent 技术构建的京都智能旅行规划系统。

系统能够根据用户输入的旅行天数、预算、兴趣偏好、旅行节奏和特殊需求,自动生成个性化京都旅行方案,并结合天气查询、路线规划、餐厅推荐和景点知识库检索,为用户提供完整的旅行建议。

本项目综合应用了:

  • AI Agent
  • Function Calling
  • LangGraph
  • RAG(Retrieval-Augmented Generation)
  • 向量数据库(FAISS)
  • 多API协同调用
  • 地图可视化

等技术。


系统总览

Overview

系统支持用户输入旅行条件,并自动生成京都旅行计划,同时绘制真实路线地图。


功能展示

1. 首页(旅行条件输入)

Home

用户可以设置:

  • 旅行天数
  • 总预算
  • 出发地点
  • 出行月份
  • 兴趣偏好
  • 旅行节奏
  • 特殊需求

系统会根据这些条件自动规划旅行路线。


2. Agent 生成结果

Result

系统自动完成:

景点推荐

基于 RAG 知识库进行语义检索。

天气查询

调用 Open-Meteo API 获取天气信息。

路线规划

调用 OSRM API 获取景点间真实路线。

餐厅推荐

调用 Overpass API 查询景点周边餐厅。

预算估算

根据旅行天数自动估算:

  • 餐饮
  • 交通
  • 门票
  • 住宿

多日行程规划

自动生成:

  • Day1
  • Day2
  • Day3
  • ...
  • DayN

完整旅行计划。


3. 路线地图

Route Map

使用:

  • 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

核心技术

AI / NLP

  • DeepSeek
  • LangChain
  • LangGraph
  • Function Calling
  • RAG
  • FAISS
  • Sentence Transformers

Web

  • Streamlit
  • Folium

地图

  • OpenStreetMap
  • OSRM Routing API

外部API

Open-Meteo

用于天气查询。

OSRM

用于真实路线规划。

Overpass API

用于餐厅查询。


知识库

项目构建了京都旅游知识库:

kyoto_spots.json

当前包含:

  • 清水寺
  • 伏见稻荷大社
  • 金阁寺
  • 银阁寺
  • 东福寺
  • 高台寺
  • 龙安寺
  • 仁和寺
  • 下鸭神社
  • 京都御所
  • 贵船神社
  • 鞍马寺
  • 醍醐寺

等 50+ 京都景点。


项目特点

RAG知识库检索

通过向量检索获取相关景点信息。


Agent自动工具调用

根据用户问题自动决定:

  • 是否查询天气
  • 是否规划路线
  • 是否推荐餐厅
  • 是否估算预算

无需人工指定工具。


多工具协同

支持:

  • 知识库检索
  • 天气查询
  • 路线规划
  • 餐厅推荐
  • 预算估算

联合完成旅行规划。


真实路线地图

不同于简单连线地图:

系统使用 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.txt

启动项目

streamlit run app.py

浏览器访问:

http://localhost:8501

Docker 部署

本项目支持 Docker 容器化部署,可实现环境一致性与快速部署。

构建镜像

docker build -t easytravel-kyoto-agent .

运行容器

docker run -p 8501:8501 easytravel-kyoto-agent

访问系统

浏览器打开:

http://localhost:8501

Docker相关文件

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

About

AI-powered Kyoto travel planning system based on RAG, LangGraph, Function Calling, FAISS and Docker.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages