Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

【2026飞猪AI旅行创新大赛】别白跑 · AI 旅行攻略体检官

オープン
#211 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
1/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
活発
技術スタック
css, html, javascript, json, playwright, python
領域
ai, tooling, web-dev

調査の方向性

The issue describes a completed travel itinerary auditing prototype and links its source repository, but does not identify a change to make in this repository. For a contribution, first inspect the repository and the linked project’s validator.py, tests/, and report.html to find a concrete open task. The issue gives no acceptance criteria for additional work.

索引モデルが issue の本文から書いたものです。

説明

2026飞猪AI旅行创新大赛 showcase

参赛项目名称

别白跑 · AI 旅行攻略体检官

Slogan:让每一份攻略,都真正走得通。

普通 AI 帮你生成旅行攻略,「别白跑」帮你发现攻略里的隐藏风险:交通能否衔接?景点是否开放?返程来不来得及?哪些数据有证据,哪些只是估算?

本作品基于 阿里云百炼 Managed Agent、飞猪 FlyAI 旅行查询能力、Python 确定性校验器及卡片式交互报告,探索一种更可信的 AI 旅行规划方式。

团队 / 作者与奖品领取人

  • 团队名称: HansTeam
  • 主要提交人 GitHub ID: wuhanwoaini521

旅行场景与目标用户

谁需要「别白跑」?

面向以下旅行者:

  • 无车自由行用户: 依赖高铁、地铁、公交和打车,对交通衔接更加敏感。
  • 周末短途旅行者: 两三天时间有限,任何换乘失误都可能影响后续安排。
  • AI 攻略使用者: 通过 AI、社交平台获得行程,希望出发前检查是否合理。
  • 历史文化与自然旅行爱好者: 不希望因为错误的开放时间、接驳方式而白跑一趟。
真实需求场景:宁波两日无车旅行

时间: 2026 年 11 月 14–15 日
人数: 2 名成年人
出行方式: 不自驾
硬性约束: 第二天 19:00 前必须返回宁波站

原始攻略:

  • DAY 1: 下午抵达宁波站 → 天一阁 → 月湖 → 南塘老街
  • DAY 2: 上午东钱湖 → 下午前童古镇 → 返回宁波站

表面上,这是一份常见的两日游攻略。

但它可能存在跨区域交通衔接、景点开放窗口、列车预售与换乘缓冲等问题。单纯让 AI 生成更漂亮的行程,并不能解决这些问题。

「别白跑」要做的是:先体检,再修订。

我做了什么

1. 识别并保留用户约束

解析旅行日期、人数、交通方式、目的地及返程时间。

特别避免 AI 擅自更改用户已经确定的条件,例如把「下午抵达」改成「上午抵达」,或忽略 19:00 前返程的要求。

2. 使用百炼与飞猪旅行查询能力辅助核验

通过百炼 Agent 会话,结合飞猪 FlyAI 景点、列车查询及公开资料,整理景点位置、开放时间、参考车次、交通方式等信息。

为每条事实记录来源与查询时间,并区分:

  • 已核实
  • 部分核实
  • 待核验
3. 识别攻略中的隐藏风险

本次宁波案例重点发现:

风险 A:跨区域交通衔接困难

原计划上午东钱湖、下午前童古镇,需要跨区域移动和多次换乘。对于无车游客,交通耗时可能明显挤占游览时间。

风险 B:返程列车选择受限制

飞猪查询返回的参考班次存在较大的时刻间隔。但查询时目标日期尚未进入铁路常规预售期,因此不能将参考班次视为已确认可购买的车次。

体验提醒:景点内部设施开放情况

前童古镇童氏宗祠有修缮暂停开放信息。古镇并非因此整体关闭,需要调整参观预期,而不是直接取消旅行。

4. 尽可能保留景点,最小修改攻略

AI 提出调整第二天游览顺序:

原计划:

东钱湖 → 前童古镇 → 宁波站

建议方案:

前童古镇 → 东钱湖 → 宁波站

尝试采用「先远后近」的方式,减少返程前的跨区域交通压力。

这一方案属于基于现有证据的候选修订方案,并非已经确认所有换乘和返程班次都可执行;未核实的交通时间仍然标记为待审核。

5. 使用 Python 确定性规则校验

仅依靠大模型判断「应该能赶上」并不可靠。

因此项目增加了 Python 校验器,覆盖以下检查:

  • 火车票预售日期计算
  • 错过车次后的备选班次时间方向
  • 行程节点时间顺序与区间重叠
  • 交通接驳与候车时间记录
  • 用户原始约束是否被修改
  • 证据 ID、来源类型及支持范围
  • 返程时间与截止时间的计算一致性
  • 未确认结论是否被错误标注为已核实

如果证据无法支持某项结论,系统保留「待审核」状态,不把计算一致性等同于实际可达性。

6. 生成可交互的卡片式报告

将体检结果展示为网页,支持:

  • 不同风险等级筛选
  • 原始攻略与修订攻略切换
  • 行程时间轴
  • 交通风险提醒
  • 证据和查询来源展开
  • 桌面端及移动端适配

核心创新:不是让 AI 再写一份攻略,而是在攻略交付前增加可追溯、可复核的检查环节。

应用前景

未来可作为旅行平台、攻略社区、行程规划助手的「出发前体检」模块,帮助用户在预订和出行前发现潜在冲突,减少行程调整成本与旅行体验损失。

当前交付的是离线可复现参赛原型,尚未实现面向任意新攻略的全自动实时服务。

百炼使用说明(必填)

使用的百炼智能体
  • 平台: 阿里云百炼(Model Studio)
  • 智能体形态: Managed Agent
  • 作品角色: 「别白跑」AI 旅行攻略体检官
  • 模型配置: 初始配置采用 AUTO 模式
  • 任务: 理解用户攻略、调用可用旅行查询能力、分析风险、生成结构化攻略体检结果

本作品在既有旅行助手的基础上,将系统提示词调整为面向无车旅行的「攻略核验与修订」工作方式。

百炼参与了哪些环节?
环节 百炼 / FlyAI 的作用
需求理解 提取日期、景点、人数、交通方式和返程约束
旅行信息查询 利用已有会话中的 FlyAI 景点、列车查询结果
风险分析 分析景点顺序、接驳风险、开放时间和返程条件
行程修订 提出最小修改方案,并标注未确认信息
结构化产出 在 Agent 会话中整理报告数据及初版文件

在此基础上,使用本地 Python 校验器检查结构化数据,再由 HTML 页面展示卡片式报告。

工具与调用记录
  • 飞猪 FlyAI: 旅行景点查询 search-poi、火车票查询 search-train
  • 百炼内置工具: bash、web_search、文件读写等
  • 报告记录: search-poi 4 次、search-train 2 次、web_search 8 次

以上调用次数来自百炼 Agent 历史报告及结构化摘要,仓库未提供可独立核验的 FlyAI 原始工具响应日志,因此不将这些数字宣传为已经完成独立审计的调用统计。

百炼 Agent 操作截图

以下为已有百炼 Agent 会话或控制台操作截图,用于展示本作品的百炼使用过程:

百炼 Agent 操作截图

其他技术栈
  • Python 3 标准库:确定性校验器
  • JSON:结构化旅行数据及校验结果
  • HTML / CSS / JavaScript:可交互攻略报告
  • Playwright + Chromium:离线浏览器与响应式测试
  • GitHub:源码、测试记录及演示材料托管

实现边界: 本次是百炼 Agent 参与分析、整理数据,再由本地工具完成校验和展示的原型。各阶段需要人工触发,尚未实现「输入新攻略后自动完成所有查询、校验和网页发布」的完整在线闭环。

效果展示

桌面端 · 攻略体检报告

别白跑桌面端界面

移动端 · 响应式攻略卡片
别白跑移动端界面
更多效果截图
📱 点击展开:移动端其他界面 别白跑移动端其他界面
🖥️ 点击展开:桌面端完整长图

别白跑桌面端完整报告

本地测试与验证

当前参赛包记录:

测试范围 结果
原项目自带测试 15/15 通过
独立回归测试 14/14 通过
Chromium 页面渲染、交互与安全检查 33/33 通过

浏览器测试覆盖桌面与手机布局、风险筛选、行程切换、证据展开、数据加载失败和脚本注入防护。

浏览器检查运行了真实 HTML/JavaScript,并在测试中模拟 JSON Fetch 响应;由于执行环境限制,不将其等同于已完成线上部署端到端测试。

相关记录保存在源码仓库的 evidence/、tests/ 和 screenshots/ 目录中。

项目链接与复现方式

GitHub 源码仓库

https://github.com/wuhanwoaini521/biebai-travel-auditor

在线演示

https://wuhanwoaini521.github.io/biebai-travel-auditor/demo_offline.html

在线地址依赖 GitHub Pages 发布状态。也可以从源码仓库下载 demo_offline.html 后直接在浏览器打开。

演示页面使用封存的宁波案例,不需要百炼 API Key,也不会发起新的付费模型调用。

本地复现

下载或克隆源码仓库后,在项目目录执行:

python validator.py report.json --output validation.json
python validator.py --test
python -m unittest discover -s tests -p test_validator.py -v
python -m http.server 8765

浏览器打开:

http://localhost:8765/report.html

可以筛选风险、切换行程、查看修订前后差异及核验依据。

不希望安装 Python 的体验者可以直接打开 demo_offline.html。

已知限制
  • 2026 年 11 月 15 日的火车班次在原查询时间尚未进入常规预售期,属于参考信息,不保证实际车次、票价及库存。
  • 小普陀返回宁波站的约 65 分钟属于估算,实际接驳及候车时间尚未确认。
  • 部分门票价格、公交发车间隔和打车等候时间需要进一步核实。
  • 当前规则校验器验证数据内部一致性和已定义的约束,不保证所有外部旅行事实均正确。
  • 尚未实现完全自动的百炼实时查询与报告生成工作流。

踩坑记录(可选)

开发过程中发现了几类典型的 AI 旅行规划问题:

  1. 日期计算错误: 曾将尚未进入预售期的火车票误判为已经开售。
  2. 车次时间倒序: 曾在错过 11:22 的车次后,错误推荐 10:34 的更早车次。
  3. 交通时间遗漏: 曾忽略地铁站到景区之间的公交接驳。
  4. 用户约束丢失: 曾将用户「下午抵达」擅自改为「上午抵达」。
  5. 时间轴与报告不一致: 曾出现跨天分组、时间重叠和返程时间不一致。
  6. 证据过度解读: 曾将参考班次和估算耗时直接描述为已核实可行。

针对这些问题,项目引入结构化时间字段、Python 确定性校验、反向测试和证据分级。

我们希望验证一个简单但重要的思路:

AI 不仅需要告诉用户「可以怎么玩」,还应该告诉用户「为什么这样安排、有哪些风险,以及哪些事情它还不能确认」。


别白跑 · 让每一份攻略,都真正走得通。

主要言語
HTML
スター
11
フォーク
3
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

modelstudioai/modelstudioai.github.io のほかの issue

modelstudioai/modelstudioai.github.io の issue をすべて見る

似ている issue

AI Infra & Agents の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。