基于多智能体的 AI 甘肃丝路旅行规划系统
用户只需说一句"我想去敦煌看莫高窟",系统通过 12 个专业智能体协同工作,结合消费画像、UGC 攻略、POI 数据、实时天气、交通和交易服务,自动生成可直接执行的甘肃深度游路线。
- 12 个智能体协同 — 意图理解 → 消费画像 → 攻略挖掘 → POI 召回 → 评价可信度过滤 → 餐饮决策 → 住宿推荐 → 交通规划 → 天气穿搭 → 路线优化 → 风险质检
- SSE 实时进度 — 每个智能体的执行状态实时推送到前端,所见即所得
- 3 套路线方案 — 景观优先 / 摄影优先 / 经典环线,一键切换
- 核心评分算法 — POI 综合评分、评价可信度(TrustScore)、路线优化目标函数
- 真实地图 — 高德地图集成,POI 标记 + 路线连线
- 甘肃数据集 — 76 个核心景点、74 家餐饮、15 个摄影点、52 家酒店、2433 条评价、29 篇 UGC 攻略,覆盖甘肃 15 个地市州
cp .env.example .env编辑 .env,填入你的 API Key:
MOONSHOT_API_KEY="your_deepseek_api_key"
MOONSHOT_BASE_URL="https://api.deepseek.com"
MOONSHOT_MODEL="deepseek-chat"
# 可选:高德地图(不填则使用装饰风格地图)
AMAP_KEY="your_amap_js_api_key"
# 端口配置(可选,默认 8000/3000)
BACKEND_PORT=8000
FRONTEND_PORT=3030python start.py或分别启动:
# 终端 1 - 后端
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000
# 终端 2 - 前端
cd frontend
npm install
npm run dev打开 http://localhost:3030,输入需求即可体验。
GoGoGo/
├── start.py # 一键启动脚本
├── .env.example # 环境变量模板
├── backend/
│ ├── main.py # FastAPI 入口
│ ├── requirements.txt # Python 依赖
│ ├── api/
│ │ └── routes.py # API 路由(SSE 流式 + REST)
│ ├── agents/
│ │ ├── coordinator.py # A0 总调度 — 编排 12 个智能体
│ │ ├── intent.py # A1 意图理解
│ │ ├── profile.py # A2 消费画像
│ │ ├── ugc.py # A3 UGC 攻略挖掘
│ │ ├── poi_recall.py # A4 POI 召回(算法)
│ │ ├── review_trust.py # A5 评价可信度过滤(算法)
│ │ ├── food.py # A6 餐饮决策
│ │ ├── hotel.py # A7 酒店推荐
│ │ ├── transport.py # A8 交通规划(自驾/包车)
│ │ ├── weather.py # A9 天气穿搭(Open-Meteo 实时 + SQLite fallback)
│ │ ├── weather_api.py # Open-Meteo 免费天气 API
│ │ ├── route_optimizer.py # A10 路线优化(算法)
│ │ ├── critic.py # A11 风险质检
│ │ └── llm_client.py # DeepSeek API 封装
│ ├── services/
│ │ ├── data_loader.py # SQLite 数据加载器 (SQLAlchemy)
│ │ └── scoring.py # 核心评分算法
│ ├── db/
│ │ ├── models.py # SQLAlchemy ORM 模型
│ │ └── gogogo.db # SQLite 数据库
│ ├── dataset/
│ │ ├── pois.json # 甘肃 POI 数据
│ │ ├── reviews.json # 用户评价
│ │ ├── ugc_guides.json # UGC 攻略
│ │ ├── users.json # 用户画像
│ │ ├── hotels.json # 酒店数据
│ │ └── weather.json # 天气数据
│ └── scripts/
│ ├── generate_data.py # 数据生成脚本
│ └── migrate_json_to_db.py # JSON 迁移到 SQLite
└── frontend/
├── package.json
├── vite.config.ts # Vite 配置 + API 代理
└── src/
├── App.tsx # 主应用(SSE 驱动 11 个 Agent 步骤)
├── types.ts # TypeScript 类型定义
├── services/
│ └── planner.ts # SSE 流式调用后端
└── components/
├── AgentProgress.tsx # 智能体进度展示
├── RouteCard.tsx # 路线详情卡片
├── MapOverview.tsx # 高德地图 + 装饰地图
├── POIDetails.tsx # POI 详情弹窗
├── PreferencesModal.tsx # 偏好设置
├── DiscoverView.tsx # 周边发现
├── HistoryView.tsx # 历史行程
├── StampsView.tsx # 旅行印记
└── ProfileView.tsx # 个人中心
| 层 | 技术 |
|---|---|
| 前端 | React 19 + Vite + Tailwind CSS 4 + Framer Motion |
| 后端 | Python FastAPI + SSE-Starlette |
| AI | DeepSeek API(OpenAI 兼容) |
| 地图 | 高德地图 JS API 2.0(无 key 时降级为装饰地图) |
| 数据 | SQLite + SQLAlchemy ORM(JSON 可重新导入) |
| 天气 | Open-Meteo 免费 API(无需 key)+ SQLite 月均 fallback |
| 通信 | Server-Sent Events (SSE) |
POI 评分:
评价可信度:
路线评分:
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/stream/plan?query=xxx&preferences=xxx |
SSE 流式规划 |
| POST | /api/plan |
非流式规划 |
| GET | /api/poi/{id} |
POI 详情 |
| GET | /api/discover |
周边发现 |
| GET | /health |
健康检查 |
Apache-2.0