一个专业的旅游评测与规划网站,通过多个专家Agent分析城市,提供详细的旅游评测报告、旅行规划和消费规划。
- 🏙️ 选择中国城市进行旅游评测
- 🍜 美食专家Agent:分析当地特色美食、推荐餐厅和消费建议
- 🏨 民宿专家Agent:推荐性价比高的酒店和民宿,提供价格信息
- 🏛️ 历史民俗文化专家Agent:介绍历史文明古迹和民俗文化
- 🌄 自然风光Agent:推荐美丽的自然风光和最佳观赏时间
- 📊 旅游专家Agent:综合评测并生成详细报告、旅行规划和消费规划
系统采用基于 LangGraph 的多Agent架构,使用 Google Gemini 作为基座模型:
-
并行执行阶段(使用 asyncio.gather):
- 🍜 美食专家Agent - 分析城市特色美食
- 🏨 民宿专家Agent - 分析住宿选择和价格
- 🏛️ 历史民俗文化专家Agent - 分析历史文化资源
- 🌄 自然风光Agent - 分析自然景观
-
整合阶段:
- 📊 旅游专家Agent - 整合所有专家分析,生成:
- 综合评分(5分制)
- 详细评测报告(200-500字)
- 3-5天详细旅行规划
- 消费预算规划
- 📊 旅游专家Agent - 整合所有专家分析,生成:
- LangGraph 流程编排:使用 LangGraph 定义和管理 Agent 工作流
- 并行执行:4个专家Agent并行分析,提高效率
- Gemini 基座模型:使用 Google Gemini Pro 模型,支持中文理解
- 错误处理:完善的异常处理和降级策略
- 状态管理:使用 TypedDict 定义 Agent 状态
- React + TypeScript
- Vite
- Tailwind CSS
- Axios
- FastAPI
- LangGraph (用于Agent流程编排)
- Google Gemini (作为基座模型)
- LangChain (Agent框架)
- Python 3.8+
cd TravelBuddynpm installpip install -r requirements.txt创建 .env 文件:
GOOGLE_API_KEY=your_google_api_key_here
注意:
- 如果不设置
GOOGLE_API_KEY,系统将使用模拟数据,仍然可以正常运行和测试 - 获取 Google API Key: https://makersuite.google.com/app/apikey
- 系统使用 Gemini Pro 模型作为基座模型
方式一:使用启动脚本
启动后端(终端1):
./start_backend.sh启动前端(终端2):
./start_frontend.sh方式二:手动启动
启动后端:
uvicorn main:app --reload --host 0.0.0.0 --port 8000启动前端:
npm run dev- 前端:http://localhost:3000
- 后端API:http://localhost:8000
- API文档:http://localhost:8000/docs
- 在首页选择或输入要评测的中国城市
- 点击"开始评测"按钮
- 系统将调用各个专家Agent进行分析
- 查看生成的评测报告,包括:
- 综合评分(5分制)
- 详细评测报告
- 各专家分析结果
- 3-5天旅行规划
- 消费预算规划
TravelBuddy/
├── src/ # 前端源码
│ ├── components/ # React组件
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 入口文件
│ ├── types.ts # TypeScript类型定义
│ └── index.css # 样式文件
├── main.py # FastAPI后端主文件
├── agents.py # 专家Agent实现
├── requirements.txt # Python依赖
├── package.json # Node.js依赖
└── README.md # 项目说明
- 前端使用Vite作为构建工具,支持热重载
- 后端使用FastAPI,支持自动API文档生成
- Agent系统使用LangGraph进行流程编排,Gemini作为基座模型
- 支持并行执行和顺序执行两种模式
- 所有API调用都是异步的,提高性能
curl "http://localhost:8000/api/evaluate?city=北京"curl "http://localhost:8000/api/evaluate?city=北京&use_graph=true"- 使用Gemini API需要有效的Google API密钥
- 获取API密钥:https://makersuite.google.com/app/apikey
- 如果没有API密钥,系统会自动使用模拟数据
- 建议在生产环境中配置适当的错误处理和日志记录
- 系统默认使用并行执行模式(更高效),可通过
use_graph=true参数切换到LangGraph顺序执行模式