feat: 行程卡片间显示交通路线描述和时间
- get_travel_time 解析 Amap segments 提取线路名和站数 - PlanItem 新增 transitToNext / transitDescription 字段 - finalize_plan schema 加入 transit_to_next_description - 修复 Turbopack 中文引号解析报错 - UI 连接器改为两行布局,路线描述与时长分行显示
This commit is contained in:
+12
-1
@@ -53,12 +53,15 @@ const SCHEDULE_SYSTEM_PROMPT = `你是一个周末行程规划师。根据用户
|
||||
"lat": 31.2,
|
||||
"lng": 121.5,
|
||||
"duration": 120,
|
||||
"reason": "选择这个时间和地点的简短理由"
|
||||
"reason": "选择这个时间和地点的简短理由",
|
||||
"transitToNext": 20,
|
||||
"transitDescription": "地铁2号线(6站) → 地铁9号线(3站)"
|
||||
}
|
||||
],
|
||||
"summary": "一句话总结这个行程的亮点"
|
||||
}
|
||||
|
||||
transitToNext 为从本活动结束到下一活动的预计交通时间(分钟),根据两点地理距离估算;transitDescription 为交通方式描述(如"地铁X号线"、"公交XXX路"、"步行");最后一项不填这两个字段。
|
||||
按时间顺序排列。只返回 JSON。`;
|
||||
|
||||
export interface ScheduleContext {
|
||||
@@ -222,6 +225,14 @@ ${Object.entries(ctx.candidates)
|
||||
lng: Number(item.lng) || 0,
|
||||
duration: Number(item.duration) || 60,
|
||||
reason: String(item.reason ?? ""),
|
||||
...(item.transitToNext != null && Number(item.transitToNext) > 0
|
||||
? {
|
||||
transitToNext: Math.round(Number(item.transitToNext)),
|
||||
...(item.transitDescription
|
||||
? { transitDescription: String(item.transitDescription) }
|
||||
: {}),
|
||||
}
|
||||
: {}),
|
||||
})),
|
||||
summary: String(parsed.summary ?? ""),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user