# 规则卡 · 交稿说明

作品名：规则卡  
队名：不鸣则已  
赛题：赛题二 · 旅行体验创新  
仓库：https://github.com/TinjiYDon/trip-rule-card（私有，已邀队友）  
一句话：在「立即预订」之前，把票务散文编译成可执行规则，告诉同一个人今天算什么票。

## 报名表「参赛想法简述」（已用）

思考：旅行里最容易卡单的往往不是「去哪玩」，而是付款前那几秒——这个人今天算免票还是半票、种草和条款是否一致、何时放票、优惠能否叠加。我们做交易前的规则澄清，而不是再做一个行程聊天机器人。

目标：面向即将点「立即预订」的用户（尤其亲子），解决「同一个人、同一天、同一景区，条款到底怎么算」。成功标准：留出样本上，编译执行明显优于「看见免票就当真」和「只读第一个数字」；可当场改官网原文跑通。

价值与创新：预订前四格把不确定变成可核对结论。创新在编译成可执行结构再符号判定、朴素读法对照与错因、结构校验挡住残缺规则；模型草案可选且过不了校验就丢弃。

实现：必做①离线六步编译执行与四格；②三路对照评测与报告；③可改原文的门票页演示。选做：模型草案对照、嵌真实门票页。技术思路：自然语言只提议结构，符号规则才下结论，默认离线可复现。

## 评委三问

1. **解决什么问题**  
   阻断下单的不是「去哪」，而是这个人今天能不能优惠、种草是否骗人、何时放票、优惠能否叠加。

2. **凭什么值得做**  
   儿童票身高/年龄不统一；短视频种草与在售条款常不一致。本仓库用公开官网页 + 种草对照句，报告见 `docs/report.html`。

3. **技术强在哪**  
   不是聊天套壳。六步：分句 → 抽槽 → 结构校验 → 修补 → 符号执行 → 对照朴素读法（只看种草 / 只读第一个数字 / 合取消融）。模型草案可选，过不了校验就丢掉。

## 现场演示（约 2 分钟）

```powershell
cd rule-card
python demo/server.py
```

打开 http://127.0.0.1:8765

1. 选「中国科学技术馆」：种草说免票，编译为半票（10 岁超过免票线，仍买优惠票）。  
2. 选「［留出］东方明珠」：1.25 米 / 7 岁 → 半票；把种草改成「全部免票」看冲突。  
3. 改票务原文任意几字，预存答案消失，证明不是写死馆名。  
4. 打开 `docs/report.html`：三路准确率与错因分布。

## 怎么跑全套

```powershell
python eval/check_corpus.py
python -m unittest tests.test_pipeline
python eval/run_eval.py
python eval/render_report.py
```

## 诚实边界（答辩必说）

- 准确率只对应当前语料，不是全国投诉统计。  
- 未标 `verified: true` 的是规则类型例句，不是现行票价。  
- 未接携程库存，不下单。  
- 默认离线可复现；大模型不是现场唯一路径。

## 飞书作品提交三项（审批质量）

| 表单项 | 填写 / 上传 |
|---|---|
| 作品简介 | 见 `docs/作品简介.md`（问题 / 用户 / 核心能力已分条） |
| LIVE DEMO | https://tinjiydon.github.io/trip-rule-card/live/ |
| 产品介绍附件 | `docs/产品介绍.html` 或整包 zip |

入口页：https://tinjiydon.github.io/trip-rule-card/

## 打包内容

运行 `python tools/pack_submission.py` 得到桌面旁的 zip：源码、语料、评测报告、本说明、LIVE 静态页。不含 `.git` 与缓存。
