Skip to content

Latest commit

 

History

History
249 lines (183 loc) · 16.4 KB

File metadata and controls

249 lines (183 loc) · 16.4 KB

智能旅行规划系统 - 项目文档

1. 应用介绍

1.1 灵感来源与解决的问题

灵感来源

在数字化时代,旅行规划依然是一个繁琐且耗时的过程。尽管旅游攻略网站和App众多,但用户仍需要在多个平台间频繁切换查询信息,手动整合景点、酒店、交通等碎片化数据,并根据个人偏好进行二次筛选和调整,整个过程缺乏智能推荐和个性化优化。这种低效率的规划方式激发了我们的灵感:能否利用AI技术,为用户提供一站式的智能旅行规划服务?

解决的问题

项目核心解决了三大痛点问题。

首先是信息分散问题,景点信息、酒店推荐、天气预报、交通路线分散在不同平台,用户需要跨多个应用获取完整信息。通过整合高德地图API、天气API、酒店API,系统提供了统一的数据源,让用户在一个平台即可获取所有必要信息。

其次是个性化不足问题,通用攻略无法满足个人偏好,比如有的用户热爱历史文化,有的偏好美食体验,有的注重亲子游玩。系统基于用户偏好实现了AI智能推荐,支持多维度偏好选择,让每个用户都能获得量身定制的旅行方案。

最后是效率低下问题,传统规划需要花费数小时甚至数天时间查阅攻略、比较方案、调整行程。通过AI自动生成行程,响应时间从最初的8-13秒优化到3-5秒,用户只需输入目的地、日期和偏好,几秒钟即可获得完整的旅行计划。

1.2 目标用户画像

系统面向五大主要用户群体。

首先是25-40岁的自由行旅行者,这类用户通常工作忙碌,追求高效便捷的旅行体验,希望能够快速获得个性化的行程方案。他们最需要的是智能推荐功能,帮助优化时间安排并控制预算,主要使用场景包括周末短途旅行、年假长途出行以及自助旅行。

其次是30-45岁的家庭出游群体,这类用户以家庭为单位进行旅行,需要特别考虑老人和儿童的舒适度和安全性。他们最关注的是亲子友好的景点和舒适的住宿环境,以及合理的行程安排避免过度疲劳,主要使用场景集中在寒暑假和节假日的家庭假期。

第三类是28-45岁的商务旅行者,他们的时间非常紧张,行程紧凑且高度注重效率。这类用户最需要的是快速的行程规划功能,优先考虑交通便利性和住宿的舒适度,主要使用场景包括出差行程和商务会议旅行。

第四类是20-35岁的深度游爱好者,这类用户追求文化深度和独特体验,希望能够深入了解目的地的历史文化。他们最需要的是历史文化专题推荐和特色的体验活动,以及个性化路线设计,主要使用场景包括文化探索、主题旅行和摄影采风。

最后是18-30岁的旅行规划新手,这类用户缺乏旅行经验,不知道如何系统性地规划行程。他们最需要的是简单易用的界面和智能推荐功能,实现一键生成行程方案,主要使用场景包括首次旅行、跟游推荐以及学习旅行规划。

1.3 核心功能列表

系统提供了12项核心功能,全面覆盖了旅行规划的各个环节。

智能行程规划是系统的核心功能,用户只需输入目的地、日期、偏好、预算等信息,AI就会自动生成完整的旅行计划。这一功能基于大语言模型(LLM)和多智能体协作技术实现,具备智能推荐景点、酒店、餐饮的能力,能够自动计算预算,并通过地理位置验证确保推荐准确,最终实现个性化的路线优化。

地图可视化功能在高德地图上标注景点位置并绘制游览路线,基于高德地图JavaScript API集成实现,支持景点位置标记、游览路线绘制、信息窗口展示详情以及自适应视野调整,让用户对行程有直观的地理认知。

预算计算功能自动统计并分类显示费用,通过AI自动计算配合前端可视化展示,详细列出景点门票费用、餐饮美食费用、酒店住宿费用、交通及其他费用,并提供总预算汇总,帮助用户清晰掌握旅行成本。

用户认证系统支持注册登录,采用JWT和Bcrypt密码加密技术实现,提供用户注册和登录功能、JWT令牌认证、以及用户信息管理,确保系统的安全性和易用性。

记忆学习系统基于FAISS向量数据库和Sentence-Transformers技术,记录用户偏好和历史行程,实现用户偏好记忆、历史行程记忆、语义检索功能,系统使用越多越智能,能够提供更加个性化的推荐。

实时天气查询功能通过高德地图天气API实现,能够查询行程期间的天气预报,包括白天和夜间天气、温度变化、风向风力以及多日预报,帮助用户合理安排行程。

行程编辑功能支持添加、删除、调整景点和活动,通过前端交互配合后端API实现,用户可以添加或删除天数和景点,编辑酒店信息,系统会实时更新预算,提供灵活的行程调整能力。

导出功能支持将行程导出为PDF或图片格式,基于html2canvas和jsPDF技术实现,支持PDF文档导出、PNG图片导出以及自定义导出内容,方便用户保存和分享行程。

多智能体协作功能实现了专业化Agent的分工协作,基于HelloAgents框架,包括景点搜索专家、酒店推荐专家、天气查询专家、行程规划专家等多个专业智能体,它们之间能够进行通信协作,提高规划质量。

地理位置验证功能确保景点位置的准确性,通过经纬度验证和距离计算实现,包括城市范围验证、相邻景点距离控制、Haversine距离计算以及自动过滤异常景点,解决了AI可能产生的地理幻觉问题。

性能优化功能通过并行查询提升响应速度,采用异步并发和线程池技术实现,景点、酒店、天气三个查询并行执行,将响应时间从8-13秒优化到3-5秒,显著提升用户体验。

限流熔断功能提供API请求限流和熔断保护,通过自定义中间件实现,包括全局限流和IP限流,防止接口被滥用,以及熔断器和服务降级机制,避免服务雪崩,确保系统稳定性。

1.4 技术架构简介

整体架构

┌─────────────────────────────────────────────────────────┐
│                      前端层                              │
│  Vue 3 + TypeScript + Element Plus + Vite              │
│  - 用户界面交互                                          │
│  - 地图可视化                                            │
│  - 预算展示                                              │
│  - 导出功能                                              │
└─────────────────────────────────────────────────────────┘
                             ↓ HTTP/RESTful API
┌─────────────────────────────────────────────────────────┐
│                      API网关层                           │
│  FastAPI + 中间件                                        │
│  - 认证中间件(JWT)                                     │
│  - 限流中间件                                            │
│  - 熔断中间件                                            │
│  - 请求ID追踪                                            │
│  - 异常处理                                              │
└─────────────────────────────────────────────────────────┘
                             ↓
┌─────────────────────────────────────────────────────────┐
│                    业务逻辑层                             │
│  多智能体系统(HelloAgents)                              │
│  - PlannerAgent(行程规划专家)                           │
│  - AttractionSearchAgent(景点搜索专家)                  │
│  - HotelRecommendationAgent(酒店推荐专家)              │
│  - WeatherQueryAgent(天气查询专家)                      │
│  - 智能体间通信                                          │
└─────────────────────────────────────────────────────────┘
                             ↓
┌─────────────────────────────────────────────────────────┐
│                    服务层                                 │
│  - LLMService(大语言模型服务)                           │
│  - VectorMemoryService(向量记忆服务)                    │
│  - RedisService(缓存服务)                               │
│  - UnsplashService(图片服务)                            │
│  - ContextManager(上下文管理)                          │
└─────────────────────────────────────────────────────────┘
                             ↓
┌─────────────────────────────────────────────────────────┐
│                    数据层                                 │
│  - FAISS向量数据库                                       │
│  - Redis缓存                                             │
│  - 文件系统(向量索引存储)                               │
└─────────────────────────────────────────────────────────┘
                             ↓
┌─────────────────────────────────────────────────────────┐
│                  外部服务层                               │
│  - 高德地图API(MCP协议)                                 │
│  - Unsplash图片API                                       │
│  - OpenAI/智谱/通义千问LLM API                           │
└─────────────────────────────────────────────────────────┘

后端技术栈

后端采用现代化的技术栈构建,以FastAPI作为核心Web框架,提供高性能的异步支持、自动生成的API文档、基于Pydantic的类型验证以及完善的依赖注入系统。在AI服务层,系统集成了OpenAI SDK,支持包括OpenAI GPT-4、智谱AI、通义千问在内的多种LLM服务商,并具备自动检测和配置能力,确保与不同服务商的无缝对接。

智能体系统基于HelloAgents框架构建,提供了完整的智能体基础能力,包括工具调用、消息传递、上下文管理和增强智能体功能。多智能体协作架构中包含景点搜索专家、酒店推荐专家、天气查询专家和行程规划专家等专业智能体,它们通过消息机制进行信息共享和协作,显著提升了规划质量。

数据存储层采用混合架构,向量数据库使用Facebook的FAISS实现高性能向量检索,支持大规模数据的CPU部署,配合Sentence-Transformers文本嵌入模型(paraphrase-multilingual-MiniLM-L12-v2)进行多语言文本的384维向量化。Redis作为缓存数据库负责用户数据持久化,提供用户会话管理、认证令牌存储和快速数据访问功能。

安全认证体系采用JWT实现无状态认证,支持令牌过期时间控制,配合Bcrypt进行密码的盐值哈希加密,有效防止彩虹表攻击。系统通过MCP协议集成amap-mcp-server,提供景点搜索、酒店推荐、天气查询和路线规划等地图服务能力。

企业级特性方面,系统实现了完整的中间件系统,包括请求ID追踪、认证、限流、熔断和服务降级功能。日志系统采用结构化日志设计,支持文件和控制台双输出,配合请求追踪机制实现全链路监控。异常处理层通过全局异常处理器、自定义异常类和错误码管理机制,确保系统的稳定性和可维护性。

前端技术栈

前端基于Vue 3框架构建,采用Composition API实现响应式系统和组件化开发,配合TypeScript提供静态类型检查、智能提示和接口定义能力,确保代码的类型安全性和可维护性。构建工具使用Vite,提供快速冷启动、热模块替换和优化的生产构建,显著提升开发效率。

UI层采用Element Plus组件库,提供丰富的组件和响应式设计,支持主题定制。路由和状态管理分别使用Vue Router和Pinia,Vue Router支持嵌套路由、路由守卫和动态路由功能,Pinia作为类型安全的状态管理库,提供模块化设计和DevTools支持。

地图服务集成高德地图JavaScript API,通过@amap/amap-jsapi-loader加载器实现地图展示、标记点、路线绘制和信息窗口等功能。导出功能使用html2canvas将DOM转换为Canvas,配合jsPDF生成PDF文档,支持自定义导出内容、图片导出和PDF导出。HTTP通信采用Axios库,提供拦截器、请求/响应转换和取消请求等功能。此外,还集成了Day.js轻量级日期处理库,提供便捷的日期操作能力。

数据流架构

用户请求
   ↓
前端表单 → 提交行程规划
   ↓
API调用 → POST /api/v1/trips/plan
   ↓
认证中间件 → 验证JWT令牌
   ↓
限流中间件 → 检查请求频率
   ↓
行程规划Agent → 协调各专家Agent
   ↓
并行查询:
   - 景点搜索Agent → 高德地图API
   - 酒店推荐Agent → 高德地图API
   - 天气查询Agent → 高德地图API
   ↓
LLM生成行程 → OpenAI/智谱/通义千问
   ↓
地理位置验证 → 过滤异常景点
   ↓
向量记忆存储 → FAISS + 用户偏好学习
   ↓
返回结果 → JSON格式行程
   ↓
前端渲染 → 地图、预算、时间线
   ↓
用户查看 → 导出/编辑

1.5 团队分工

本项目为个人独立开发项目,采用AI辅助编程模式。

开发者:echo

开发模式:使用CoStrict AI编程助手辅助开发


2. 应用截图

2.1 首页 - 行程规划表单

2.2 行程结果页 - 整体概览

2.3 行程编辑页


3. 项目亮点与创新

3.1 多智能体协作架构

  • 创新点:首次在旅行规划领域应用多智能体协作
  • 详细说明:
    • 每个智能体专注特定领域(景点、酒店、天气、规划)
    • 智能体间信息共享和协作
    • 提高了规划质量和准确性

3.2 向量记忆系统

  • 创新点:基于FAISS的向量数据库,实现长期记忆
  • 详细说明:
    • 记住用户偏好和历史行程
    • 语义检索相似经验
    • 越用越智能,提供个性化推荐

3.3 地理位置验证

  • 创新点:智能地理位置验证,避免AI幻觉
  • 详细说明:
    • 确保所有景点在目标城市范围内
    • 同一天景点距离控制在50公里内
    • 自动过滤异常景点
    • 提高行程可行性

3.4 企业级架构

  • 创新点:完整的企业级特性集成
  • 详细说明:
    • 中间件系统(认证、限流、熔断、降级)
    • 全局异常处理
    • 结构化日志系统
    • 请求ID追踪

4. 未来规划

4.1 功能增强

  • 增加餐厅推荐智能体
  • 增加交通规划智能体
  • 社交功能(分享、评论、收藏)
  • 多语言国际化支持

4.2 技术优化

  • 移动端小程序开发
  • 实时协作编辑
  • 预算智能预测
  • 离线模式支持

4.3 商业化

  • 订阅服务
  • 企业版
  • API服务开放