Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

【2026飞猪AI旅行创新大赛】途证哨 TuzhengGuard · 旅行数字孪生守护者

Aperta
#181 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
15/100
Tipo di issue
Documentazione
Chiarezza
Da chiarire
Stato di attività
Attiva
Stack tecnologico
github-actions, python, sqlite
Ambito
documentation

Direzione di ricerca

This is a contest entry submission rather than a defined change, so the payload names no file or test to edit. The linked project's source lives in a separate GitHub repository, and its README and a commit baseline are referenced but not part of this issue. Before doing anything, check with the maintainers what a contributor is expected to change in this repository, since no done condition is stated.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

2026飞猪AI旅行创新大赛 showcase

参赛项目名称

途证哨 TuzhengGuard · 旅行数字孪生守护者——让分散订单变成可检查、可解释、可调整的旅行计划。

团队 / 作者与奖品领取人

  • 团队名称:途证哨(个人项目)
  • 主要提交人 GitHub ID(仅 1 位,必填):amazingLH
  • 其他成员(可选,仅用于署名):无

旅行场景与目标用户

作品面向已订好部分交通、酒店或活动,但需要检查整段行程能否顺利执行的自由行、多段铁路出行和家庭旅行用户。对于同行老人、儿童或有步行限制的旅客,用户也可以补充人数与体力约束,检查安排是否过于紧张。

常见痛点是:订单分别保存在 12306、酒店和活动页面里,单张订单正确,并不代表整趟行程合理。用户需要自己核对跨站交通时间、同一时段的重复安排、住宿日期、总费用和每日步行负担;普通问答还可能给出没有来源的价格与候选。

途证哨从真实截图切入,不要求用户先改写为固定模板,也不要求重新设计整趟旅行。其重点是理解已有安排、发现问题、保护不希望变动的行程,再帮助用户选择下一步。产品定位是“已有行程的核对与辅助决策”,不是通用攻略生成器,也不是售票或代订平台。

我做了什么

核心流程
  1. 导入 1–5 张车票、机票、酒店订单或行程截图,将识别结果整理为行程草稿。多图仍使用批量请求,但要求模型逐图返回,程序校验覆盖后再合并;时间相同、目的地不同的两张票不能被当作重复内容删除。漏图则停止构建并提示,不用残缺行程报告“0 风险”。
  2. 对缺失的预算、日期、地点、人数等必要信息提示人工补全;展示字段置信度与中文解释,允许校对结构化行程。已取消或退票订单明确提示失效,不作为有效计划直接构建。
  3. 用户确认后构建 TripGraph,展示时间线,并检查时间重叠、衔接缓冲、住宿日期、预算与体力等规则;有实际天气证据时检查其覆盖范围。
  4. 生成 Plan B:先尝试对现有冲突做局部调整;需要新候选时,通过百炼 Managed Agent 编排高德 MCP 和 FlyAI 工具查询,再对候选来源、价格、约束及风险变化进行校验。
  5. 支持针对当前行程提问、自动切换历史会话,以及导出 TripGraph JSON 和日历 ICS。
核心创新
  • 从“生成攻略”转向“核验已有行程”:面向已持有零散订单的用户,解决旅行执行前的核对问题,而不只是生成一段推荐文本。
  • 可计算的旅行数字孪生:TripGraph 统一表达行程事件、时间、位置、费用、依赖与受保护项目;用户修改后可以重新检查。
  • 大模型与规则分工:模型负责截图理解、工具编排和解释,显式规则负责风险判断;识别置信度与行程风险分开呈现。
  • 完整性先于风险结论:保留图片与事件的对应关系,先检查是否漏图,再检查事件结构与约束,最后计算风险;字段置信度高不代表所有图片都已识别,更不代表整个行程合理。
  • 先验证,再推荐:候选必须有本次工具查询证据与来源链接,不能只凭模型说法。局部调整方案通过结构、引用、预算与风险回放复检,并展示调整前后的差异。
  • 真实使用中的边界与成本控制:缺失信息要求补全,核验失败或证据精度不足明确说明;示例、缓存和实时调用分开标注,配合每日额度与重复问题缓存控制成本。

百炼使用说明(必填)

  • 百炼能力 / 模型:百炼位于作品的运行时链路,实际用于视觉解析、自由问答、Managed Agent 工具编排,不仅用于辅助写代码。代码中的文本、视觉模型默认均为 qwen3.7-flash,可通过部署环境变量覆盖;Managed Agent 的模型或智能模式由百炼控制台独立配置,不把历史证据中的 qwen3.8-flash 写成当前固定模型。
  • 调用方式(百炼 API / DashScope SDK / 百炼 CLI bl / OpenWork):Python 通过百炼兼容 Chat Completions API 执行截图解析与自由问答,通过 Managed Agents API 发起独立会话和读取工具事件。
  • 使用环节与输入输出:
    • 截图解析:输入上传图片和结构约束,输出行程草稿、字段置信度和缺失信息提示,经过人工补全确认后构建 TripGraph。
    • 自由问答:输入当前行程、风险和已验证候选,输出简短解释;不虚构未知价格、库存、天气或退改政策。
    • 实时核验与候选查询:输入当前 TripGraph 和待处理风险,Managed Agent 按需调用高德 MCP 与 FlyAI,输出路线、天气或候选证据;应用再执行确定性校验。
  • Skill 名称(如有):飞猪官方 FlyAI 旅行 Skill/CLI;仓库保留其适配版本 triptwin-flyai 和原始授权说明。飞猪查询能力属于官方工具,本项目原创部分是 TripGraph、风险引擎、受约束校验与用户交互,不将上游工具宣称为原创。
  • 其他工具 / 技术栈:Python、Gradio、Pydantic、SQLite、高德地图 MCP、FlyAI CLI、GitHub Actions、ModelScope 创空间。

效果展示

可直接体验的案例
  • 多行程正常示例:两段铁路衔接行程,已知票面费用合计 166.5 元;本地规则未检出风险,并明确这不等于整趟旅行已经实时核验或绝对安全。
  • 行程冲突异常示例:两段后续行程均于 09:54 从大连出发,检出时间重叠;提供保留秦皇岛方向或葫芦岛方向的两个局部方案,分别显示已知费用与风险变化。应用方案只修改页面计划,不操作实际车票。
  • 单行程正常示例:展示完整杭州行程及其已保存的解析、风险和候选证据。按钮名称沿用产品界面;此案例不是“零风险案例”,且缓存证据明确标注历史时间,不冒充新查询。
  • 真实双图输入复测:2026-10-14,作者确认在最新部署后重新上传两张时间重叠车票,页面保留了两段行程并检出时间重叠。此项为作者公网自测结论,不将模拟接口测试当作真实识别证据,也不据此承诺任意图片都能正确识别。
实际运行截图

以下四张为作者于 2026-10-14 提供的最新 ModelScope 页面原图,展示公开“行程冲突异常示例”的完整操作结果。此案例使用本地人工核对的脱敏车票数据,预算与人数为演示设置,没有新增视觉模型、高德或 FlyAI 调用;实时路线、天气和余票不在本组截图的验证范围内。

1. 先看完整行程,再确认识别限制。 三段交通均保留在时间线中;被遮挡车次名称的置信度为 0.65,明确要求用户核对,而不是把所有字段都标为完全可信。

三段行程时间线与字段置信度

2. 把冲突定位到具体订单和时间。 大连出发的两段交通均为 09:54,检出 1 个时间重叠风险、75 分;页面列出各段起止时间及下一步建议,已知票面总额为 ¥259.5。

时间重叠风险与对应时间证据

3. 给出可以选择的局部 Plan B。 保留秦皇岛方向的票面总额为 ¥166.5,保留葫芦岛方向为 ¥147.5;两个方案均保留受保护行程,经本地复检,风险均由 1 降至 0。巡检完成时仍可查看对比并选择方案。没有查询新车次,票面总额也不等于退款后实际支出。

两个局部方案对比与巡检后的方案选择区

4. 应用选择并重新计算风险。 应用葫芦岛方向方案后,保留票面总额为 ¥147.5,本地复检为 0 个风险、0 分。操作仅更新页面行程,不实际退票、改签或支付;外部实时信息仍保持未核验。

已应用葫芦岛方向方案与零本地风险复检

历史真实云端工具证据

以下为 2026-10-10 保存的真实百炼 Managed Agent / FlyAI 酒店查询截图,展示读取工具说明、执行查询与返回成功结果。它证明历史工具链路实际执行过,不属于上方本地案例的本次调用,也不承诺截图中的价格或房态仍有效。

百炼 Managed Agent 与 FlyAI 酒店真实查询

补充工具证据:[POI 查询截图](https://github.com/amazingLH/tuzhengguard-travel-guardian/blob/71cabe2a3e13a93a4d0ae21ba0969d5c75a8bbfa/docs/evidence/stage2-flyai/02-poi-tool-call-success.png)、[[高德核验记录](https://github.com/amazingLH/tuzhengguard-travel-guardian/blob/71cabe2a3e13a93a4d0ae21ba0969d5c75a8bbfa/docs/evidence/stage6-amap/inspection.json)](https://github.com/amazingLH/tuzhengguard-travel-guardian/blob/71cabe2a3e13a93a4d0ae21ba0969d5c75a8bbfa/docs/evidence/stage6-amap/inspection.json)。

已验证范围

截至 2026-10-14,应用代码基线为 5a23154b2c0525de375ec0832b1ef17a8fef4ffd,本地自动化测试 171 项通过、离线评测 2 个案例通过,静态和编译检查通过。桌面及 390px 手机宽度回归覆盖未应用方案在巡检后保留、当前选择恢复、局部加载条秒数递增、错误提示、失败重试及历史刷新;新实时核验分支使用模拟结果验证,不冒充新付费调用。历史版本另完成会话切换、截图预览、行程、风险、Plan B、对话恢复及服务重启后的历史读取。多图修复通过模拟 HTTP 覆盖“请求→逐图结果→合并→补全→风险与局部 Plan B”;作者确认 a3c624e 真实双图均显示且检出重叠。2026-10-14 作者进一步确认最新补丁已重新部署、本轮复测未发现 bug,并提供上方四张当前功能示例截图;不将作者核心流程自测或静态截图扩大为代理独立核验全部云端能力、计时动画或所有边界。

历史黄金图片评测中,47 个可见字段有 46 个与标准答案一致;这是单一样例结果,不将其写成所有车票的总体识别准确率。最新公网部署与验收结果以作者最终测试为准。

项目链接与复现方式

评委快速体验
  1. 打开在线应用,在第 1 步展开“行程功能示例”,选择“行程冲突异常示例”。
  2. 点击第 2 步“解析行程截图”,查看时间线和置信度;核对第 3 段车次被遮挡的说明并确认低置信字段。
  3. 点击“检查风险”,查看两段行程同一时刻出发的证据。
  4. 点击“生成 Plan B”,比较两个局部方案;选择一个并“应用到当前行程”,查看更新后的时间线与风险。
  5. 新建独立会话,再选择原历史会话,检查已保存结果恢复;可导出 JSON 和 ICS。

该快速体验使用本地功能示例,不产生新的模型或高德/FlyAI 调用。需要检验真实输入时,可在独立会话上传已遮挡敏感信息的当前有效订单截图,解析后补全必要参数;实时工具核验须在构建后显式执行,受公开站点费用额度限制。

应用也可本地复现:按 README 创建并激活项目虚拟环境,安装固定版本依赖并配置自己的凭据,运行 python app.py,访问 http://127.0.0.1:7860/。仅体验公开功能示例无需自行配置云端凭据。

踩坑记录(可选)

  • 普通车票往往不包含整趟旅行预算或同行约束,因此不再用演示行程补空,而是生成待确认草稿,要求用户补齐必要信息。
  • 车票截图中的酒店广告、下单日期和退票状态不能混成有效行程;解析提示与校验分别处理这些情况。
  • 高德结果可能只有行政区坐标,天气也可能未覆盖出行日期;精度或覆盖不足时保留未核验状态,不编造结论。
  • 大模型输出的候选需与实际工具返回的名称、链接、单一价格绑定,再进行预算和风险复检。
  • 新版 Gradio 聊天组件使用文本块列表,原来的字符串过滤会丢掉历史回答;已补充真实组件格式回归测试,同时修复历史自动切换和本地重启换钥问题。
  • 多图汇总曾遗漏一张车票,导致引擎只检查剩余单段并显示 0 风险。修复重点不是硬加一个风险,而是逐图返回、覆盖校验和程序合并;旧多图会话缺少覆盖记录时要求重新解析,不沿用原来的无风险结论。
产品边界与后续价值

本版本是可公开体验的行程核对与辅助决策工具,不是自动预订、支付或退改系统。用户仍需自行确认库存、最终价格、退改规定和实际订单状态。历史按浏览器隔离,不提供跨设备账户同步;原图临时清理,浏览器仅保留小尺寸预览和已解析内容。网页不为每位用户后台自动定时巡检。

应用通过问答缓存、本地规则与每日调用额度控制公开体验成本;额度不是匿名用户的强身份认证,也不是云账单的硬止损。商业化方向可从旅行前订单核对、家庭约束检查和行程变更辅助切入,但尚未验证付费意愿、用户规模或商业收入,不虚构这些数据。

后续可围绕旅行前订单核对、行中变更提醒和家庭出行约束持续优化,并探索与旅行平台售后或行中服务结合;这些属于演进方向,不宣称已经上线或获得商业验证。

项目使用 AI 编程辅助完成部分代码、测试与文档;作者负责场景选择、产品决策、平台配置、实际验收和最终提交。

Lingua principale
HTML
Stelle
11
Fork
3
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di modelstudioai/modelstudioai.github.io

Tutte le issue di modelstudioai/modelstudioai.github.io

Issue simili

Altre issue su Documentation

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.