Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoGoGo,出发咯

基于多智能体的 AI 甘肃丝路旅行规划系统

用户只需说一句"我想去敦煌看莫高窟",系统通过 12 个专业智能体协同工作,结合消费画像、UGC 攻略、POI 数据、实时天气、交通和交易服务,自动生成可直接执行的甘肃深度游路线。

核心特性

  • 12 个智能体协同 — 意图理解 → 消费画像 → 攻略挖掘 → POI 召回 → 评价可信度过滤 → 餐饮决策 → 住宿推荐 → 交通规划 → 天气穿搭 → 路线优化 → 风险质检
  • SSE 实时进度 — 每个智能体的执行状态实时推送到前端,所见即所得
  • 3 套路线方案 — 景观优先 / 摄影优先 / 经典环线,一键切换
  • 核心评分算法 — POI 综合评分、评价可信度(TrustScore)、路线优化目标函数
  • 真实地图 — 高德地图集成,POI 标记 + 路线连线
  • 甘肃数据集 — 76 个核心景点、74 家餐饮、15 个摄影点、52 家酒店、2433 条评价、29 篇 UGC 攻略,覆盖甘肃 15 个地市州

快速开始

1. 配置环境变量

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=3030

2. 一键启动

python start.py

或分别启动:

# 终端 1 - 后端
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

# 终端 2 - 前端
cd frontend
npm install
npm run dev

3. 访问

打开 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 评分: $$Score(p) = w_1 M_p + w_2 Q_p + w_3 T_p + w_4 U_p + w_5 L_p - w_6 R_p - w_7 C_p - w_8 D_p$$

评价可信度: $$TrustScore = DetailScore \times RecencyScore \times UserSimilarity \times (1 - IncentiveRisk)$$

路线评分: $$RouteScore = \alpha \cdot Pref + \beta \cdot Quality + \gamma \cdot Trust + \delta \cdot Conv - \lambda \cdot Time - \mu \cdot Cost - \theta \cdot Queue - \eta \cdot Detour$$

API 端点

方法 路径 说明
GET /api/stream/plan?query=xxx&preferences=xxx SSE 流式规划
POST /api/plan 非流式规划
GET /api/poi/{id} POI 详情
GET /api/discover 周边发现
GET /health 健康检查

License

Apache-2.0

About

GoGoGo,出发咯

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages