# 工作流程

### 前置步骤：安装/升级 FlyAI CLI

在执行任何搜索之前，**必须先执行安装命令**（无论是否已安装，确保为最新版本）：

```bash
npm install -g @fly-ai/flyai-cli@latest --registry=https://registry.npmjs.org
```

> 💡 此命令会自动处理首次安装和版本升级，无需手动判断是否已安装。**安装后验证：**
```bash
flyai --help
```

**安装失败处理：**
| 情况 | 处理方式 |
|-----|---------|
| npm 未安装 | 提示用户先安装 Node.js (https://nodejs.org/) |
| 权限不足 | 建议使用 `sudo npm install -g @fly-ai/flyai-cli@latest --registry=https://registry.npmjs.org` 或使用 nvm 管理 Node |
| 网络问题 | 建议用户检查网络或使用国内镜像 `npm config set registry https://registry.npmmirror.com` |

**注意：** 此步骤只在首次使用时执行，后续调用会直接跳过已安装的情况。

### 第1步：收集用户信息

使用 `ask_user_question` 工具收集必要信息。

**必须收集的信息**：
1. **总预算** - 如"两个人一共6000块"、"人均3000"
2. **出发城市** - 用户从哪里出发
3. **可出行天数** - 如"5天"、"周末2天"

**可选收集的信息**：
4. **同行人数** - 几个人
5. **硬性要求** - 如"必须有海"、"必须出境"、"不要爬山"

**提问示例**：

```json
{
  "questions": [
    {
      "question": "你的总预算大概是多少？",
      "header": "总预算",
      "options": [
        { "label": "2000以内", "description": "经济实惠，周边短途" },
        { "label": "3000-5000", "description": "舒适出行，国内中短途" },
        { "label": "5000-8000", "description": "品质旅行，国内长途或出境" },
        { "label": "8000以上", "description": "豪华体验，境内外皆可" }
      ]
    },
    {
      "question": "你从哪个城市出发？",
      "header": "出发城市",
      "options": [
        { "label": "杭州", "description": "长三角地区" },
        { "label": "上海", "description": "长三角地区" },
        { "label": "北京", "description": "华北地区" },
        { "label": "深圳", "description": "珠三角地区" }
      ]
    },
    {
      "question": "计划玩几天？",
      "header": "出行天数",
      "options": [
        { "label": "2-3天", "description": "周末短途" },
        { "label": "4-5天", "description": "小长假" },
        { "label": "6-7天", "description": "一周假期" },
        { "label": "7天以上", "description": "长途深度游" }
      ]
    },
    {
      "question": "有什么硬性要求吗？",
      "header": "偏好",
      "multiSelect": true,
      "options": [
        { "label": "必须有海 🏖", "description": "海滨度假" },
        { "label": "必须出境 ✈️", "description": "异国体验" },
        { "label": "不要爬山 🚫🏔", "description": "轻松行程" },
        { "label": "都可以，帮我推荐", "description": "灵活选择" }
      ]
    }
  ]
}
```

### 第2步：反向搜索目的地

根据用户预算，调用 FlyAI 反向搜索可能的目的地。

**2.1 自然语言广泛搜索**
```bash
NODE_TLS_REJECT_UNAUTHORIZED=0 flyai keyword-search --query "[出发城市]出发 [天数]天 人均[预算/人数]以内 [偏好]"
```

**2.2 对每个候选目的地搜索机票**
```bash
NODE_TLS_REJECT_UNAUTHORIZED=0 flyai search-flight \
  --origin "[出发城市]" --destination "[候选目的地]" \
  --dep-date [出发日期] --back-date [返回日期] \
  --sort-type 3
```

**2.3 搜索对应酒店**
```bash
NODE_TLS_REJECT_UNAUTHORIZED=0 flyai search-hotel \
  --dest-name "[目的地]" \
  --check-in-date [入住日期] --check-out-date [退房日期] \
  --max-price [预算/晚数/60%] --sort rate_desc
```

**2.4 搜索景点门票**
```bash
NODE_TLS_REJECT_UNAUTHORIZED=0 flyai search-poi --city-name "[目的地]"
```

### 第3步：计算并筛选方案

**预算分配参考**（可根据实际调整）：
| 项目 | 占比 | 说明 |
|------|------|------|
| 机票往返 | 25-35% | 根据距离浮动 |
| 酒店住宿 | 25-35% | 根据档次浮动 |
| 景点门票 | 5-15% | 部分景点免费 |
| 餐饮美食 | 15-20% | 按人均100-200/天估算 |
| 当地交通 | 10-15% | 地铁/打车/包车 |

**筛选逻辑**：
1. 计算每个目的地的总花费
2. 筛选出能装进预算的目的地
3. 按"省钱程度"排序，选出3档：
   - 🥉 **省钱极限版**：最便宜的方案，能剩最多钱
   - 🥈 **舒适版**：刚好花完预算，体验平衡
   - 🥇 **极限拉满版**：把预算花到极致，体验最好

### 第4步：输出3档方案

**输出格式模板**：

```markdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💰 [总预算]·[人数]人·[天数]天[晚数]晚·能去哪？

━━━ 🥉 省钱极限版：[目的地]（还能剩钱！）━━━

  💸 总花费预估：¥[金额]（剩 ¥[剩余] ）

  ┌───────────────────────────────────────┐
  │ 预算拆解（[人数]人合计）                │
  │                                        │
  │ ✈️ 机票往返   ¥[金额]   [出发]⇄[目的地] │
  │    去 [航班] ¥[价格]/人                 │
  │    回 [航班] ¥[价格]/人                 │
  │                                        │
  │ 🏨 酒店[晚数]晚  ¥[金额]   [酒店名称]    │
  │    ¥[单价]/晚 ⭐[评分] [亮点]           │
  │                                        │
  │ 📍 景点门票   ¥[金额]   [免费/收费说明]  │
  │    [景点列表及价格]                     │
  │                                        │
  │ 🍜 餐饮预估   ¥[金额]  [天数]天×[人数]人 │
  │    [当地美食特点]                       │
  │                                        │
  │ 🚕 当地交通   ¥[金额]   [交通方式]       │
  └───────────────────────────────────────┘
  
  📍 能玩到：[景点1] | [景点2] | [景点3] | [景点4]
  💡 为什么推荐：[推荐理由，突出性价比]

━━━ 🥈 舒适版：[目的地]（刚好花完！）━━━
（同上格式，突出体验平衡）

━━━ 🥇 极限拉满版：[目的地]（体验拉满！）━━━
（同上格式，突出极致体验）

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📊 一张图对比：
         [目的地A]    [目的地B]    [目的地C]
花费     ¥[金额]      ¥[金额]      ¥[金额]
剩余     ¥[金额]      ¥[金额]      ¥[金额]
风格     [风格]       [风格]       [风格]
体力     ⭐⭐         ⭐⭐⭐⭐       ⭐⭐⭐
出片率   ⭐⭐⭐        ⭐⭐⭐⭐⭐      ⭐⭐⭐⭐

👉 选一个？我帮你展开完整行程
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

---
