# 行程体检评分规则与失败处理

## 评分规则

### 维度分布（总分 100）

| 维度 | 满分 | 扣分规则 |
|-----|-----|--------|
| 价格 | 20分 | 机票贵10%以上 -5分，贵30%以上 -12分；酒店同理 |
| 路线 | 20分 | 每发现一处折返/绕路 -5分，严重绕路 -10分 |
| 时间 | 20分 | 单日超载 -8分，严重超载 -15分 |
| 完整性 | 20分 | 遗漏热门景点每个 -3分，缺少预约提醒 -5分 |
| 风险 | 20分 | 闭馆日冲突 -5分，行李搬运频繁 -3分，签证风险 -5分 |

### 评分等级

| 分数范围 | 等级 | 评语 |
|---------|------|------|
| 90-100 | 🎉 完美 | 几乎不需要修改 |
| 80-89 | 😊 很好 | 有小优化空间 |
| 70-79 | 🤔 还不错 | 建议调整几处 |
| 60-69 | 😅 问题较多 | 需要优化 |
| <60 | 😱 需重新规划 | 建议重新规划 |

## 现实约束与失败处理

| 场景 | 处理方式 |
|-----|--------|
| 用户行程描述太模糊 | 追问关键信息："Day2住哪？机票买的几点的？" |
| 无法验证用户的机票价格（非飞猪购买） | 仅与当前 search-flight 最低价对比，标注"参考对比" |
| 用户已经不能退改机票/酒店 | 在该项标注"已锁定不可改"，优化方案在此约束下进行 |
| 景点闭馆信息不确定 | 标注"建议出发前在官网确认开放时间" |
| 用户不接受优化建议 | 尊重用户选择，标注"已知风险"即可 |
| FlyAI 搜索无结果 | 尝试调整搜索条件，或说明数据限制 |
| 境外目的地数据不全 | 说明可能存在数据覆盖问题，基于已有信息分析 |
| 用户未提供价格 | 只做路线和时间分析，跳过价格体检 |
| SSL证书验证失败 | 使用 NODE_TLS_REJECT_UNAUTHORIZED=0 绕过验证 |

## 诊断状态判定

### 价格诊断

```
如果 (用户价格 - 最低价) / 最低价 < 5%:
    状态 = ✅ 便宜/合理
    
如果 5% ≤ (用户价格 - 最低价) / 最低价 < 20%:
    状态 = ⚠️ 偏高
    
如果 (用户价格 - 最低价) / 最低价 ≥ 20%:
    状态 = 🔴 贵了
```

### 时间诊断

```
单日行程时间（含交通）:
  ≤ 8小时: ✅ 合理
  8-10小时: ⚠️ 较满
  10-12小时: 🟡 超载
  > 12小时: 🔴 严重超载
```

### 路线诊断

```
折返判定：
  · 当日行程中，后一个景点距离起点更近 → 折返
  · 相邻两天的酒店不在同一区域，但行程有交叉 → 绕路
```
