选影院、影厅与座位
给用户一个能直接购票的结论,同时保留影片版本、具体影厅、场次、证据和搜索覆盖边界。不要把影院品牌、影厅理论能力或社交热度直接当成影片在当前场次中的真实体验。
核心边界
- 不依赖付费 API。
- 不要求登录态。
- 不要求用户提供选座截图。
- 不维护或假设存在预建的全国影院、影厅事实库;每次从公开来源搜索。
- 不要求 Cookie、密码或 token,不绕过登录、验证码或反爬限制。
- 不执行购票、锁座、点赞、收藏、关注、评论或发布。
- 影片版本、影院、具体影厅、场次是四个不同对象;上层能力不能自动传递给下层。
只要已有“影片名称”和能限定城市的“位置”,就开始核心流程。日期缺失时搜索下一批可公开确认的场次并标明时间窗口;偏好缺失时采用画面、声音、交通和证据质量平衡的模式。只有影片重名、城市不明或限制条件会实质改变结论时才追问。
按需读取参考资料
每次运行先读取:
references/film-version-card.md:建立带地区和日期边界的影片版本卡。references/source-and-evidence-policy.md:给字段和结论分级,处理冲突与时效。references/search-playbook.md:从全城发现候选并执行覆盖审计。references/hall-and-screening.md:核验影院、具体影厅和场次。references/format-taxonomy.md:区分所有效果型格式、购票标签和普通用户选择逻辑。references/decision-and-output.md:过硬门槛、排序并生成用户结果。
进入选座步骤时读取 references/seat-selection.md。只有维护或验收本 Skill 时读取 references/requirements-traceability.md。
工作流
1. 解析请求
提取影片、位置、日期、最大通勤时间、人数和偏好。识别避免 3D、动感、喷水、眩晕、强音量、字幕仰视等限制。截图和用户链接只作为可选补充。
把场次状态统一标为:
当前可确认:可重新打开的官方/票务排片在同一影片区块内同时定位到日期、影院、影厅和版本标注。条件式候选:影厅能力可确认,但当前排片或影片版本仍待核验。理论最佳:只说明能力上限,不暗示当前可购。
2. 建立影片版本卡
先查影片端,再查影院端。区分拍摄/创作格式、专用后期或母版、当地发行版本、当前场次实际可取得的版本。对每个字段写明“已确认/合理推断/未知”,并记录地区、日期和来源。
3. 划分发现范围与推荐范围
默认在整个城市发现优质候选,不因用户只给出区县而停止在区县内。日常推荐以约 45 分钟交通为参考;体验能力发生显著跃迁时可扩展到约 90 分钟;本地不存在的稀缺格式才进入跨城增强建议。路线不可得时使用距离或行政区近似并明确标注。
4. 多入口召回候选
先按 references/search-playbook.md 建立全城“效果优先候选全集”:逐项搜索 IMAX、Dolby、CINITY、CGS、影院 LED、ScreenX、动感/环境效果、沉浸声和其他 PLF 九个家族,并覆盖城市下辖区县、县级市和新区。不能用一次宽泛搜索代表全部家族已经覆盖,也不能因影片暂时没有某格式就跳过本地候选发现。
再执行影片/格式官方入口、口碑、近期升级和候选滚雪球。普通网页和公开社交页面承担发现与补漏;不让单一社交帖子证明技术规格。固定检查“院线电影资料库”时只使用其微博渠道,不重复检查同一运营者的小红书渠道。
去重影院别名、旧名和同址名称。候选进入深入核验层后,再搜索影院全名、厅号、设备、银幕、升级、排片和负面体验,避免对全市普通影院做无差别穷举。
5. 核验具体影厅与场次
为每个候选建立字段级事实表。首选必须尽可能落到具体影厅;无法确认厅号时明确暴露,不把同一影院其他厅的能力继承过来。核对公告日期、改名、改厅号、设备升级和过期排片。
票务页混排多部影片时,把目标影片标题到下一影片标题之间视为一个影片区块。日期、时间、影院、厅号和购票标签必须来自同一区块;搜索摘要、页面其他影片或页面级推荐位中的字段不得跨区块拼接。只有搜索引擎索引快照而原始页无法重新核对时,降为条件式候选。
营销名称只产生待核验线索。按 references/format-taxonomy.md 拆成投影、光源、分辨率、机型数量、有效画幅、银幕、声音、影片专用版本和认证状态。
对任何格式家族都不能只输出品牌名。把购票标签翻译成普通用户能采取行动的差异:具体类型、它保证什么、不保证什么、本片实际增量、银幕与遮幅是否匹配,以及为什么选它而不是同品牌或其他格式候选。
6. 过硬门槛并排序
先应用四个门槛:
- 当地有该影片版本,或明确标为待确认。
- 具体影厅能呈现决定推荐的增量。
- 有对应场次,或明确输出为条件式候选。
- 决定性字段证据足够且未被更新信息推翻。
门槛通过后,再比较影片增量、画面、声音、观看几何、当前可用性、交通、价格、用户偏好和证据风险。证据风险足以改变结论时降级排名或改成条件式建议;不要用品牌总分覆盖门槛。
7. 给出选座建议
没有截图也继续。优先取得银幕方向、总排数、座位图、银幕尺寸和座位距离;数据允许时可运行:
python -X utf8 scripts/decision_support.py seat --screen-width-m 20 --seat-distance-m 20 --lateral-offset-m 0 --screen-top-delta-m 5
输出平衡首选区、更沉浸区、更舒适区和应避开的风险区,并标明是计算、可靠推断还是通用经验。没有足够几何和余座信息时不精确到具体座号。
用户自愿提供清晰选座截图时,才识别当前可售座位并给首选、前后排备选和多人连座备选。截图模糊、裁切或状态不明时降低精度;注明核查时间,不承诺座位仍可售。
8. 执行证据与覆盖审计
决定首选前检查每个决定性事实。可把事实包传给:
python -X utf8 scripts/decision_support.py evidence --input evidence.json
所有声称有具体排片的候选先保留同区块字段绑定,再运行:
python -X utf8 scripts/decision_support.py screenings --input screenings.json
有无效绑定时删除错误场次并重新核验;只有搜索索引快照时按脚本结果降为条件式。把场次绑定审计结果放入覆盖包。
搜索停止前记录入口、格式家族、新增候选、候选状态和受阻来源,并可运行:
python -X utf8 scripts/decision_support.py coverage --input coverage.json
只有官方相关入口已检查、九个效果型格式家族逐项完成、规定入口已执行、连续两个独立补漏入口零新增、其余候选均已核验或标为未解决,且场次绑定审计没有跨影片/跨区块错误时,才写“本轮优质候选搜索达到饱和”。永远不要声称所有影院零遗漏。
默认输出
按以下顺序给结果,开头先说用户下一步该买什么:
- 直接结论:影院、具体影厅、日期/场次状态、推荐格式。
- 首选及取舍:本片实际多得到什么,交通、价格或舒适上付出什么。
- 更近/更稳/更便宜的备选:只列真正合格的方案。
- 格式差异翻译:用户在票务页会看到什么标签、候选实际是哪一代/哪种能力、为什么不是“都一样”。
- 选座:平衡、沉浸、舒适和避雷区域;有截图时再给当前具体座位。
- 关键依据:决定性事实、来源链接、发布日期或核查日期、证据等级和置信度。
- 覆盖说明:九个效果型格式家族、搜索入口、停止原因、受阻来源、未确认项和购票前复核动作。
只有高热度候选容易让用户误选时才列“不推荐”,并给出可验证原因。没有合格方案时直接说明,不为凑数量编造三个推荐。
失败降级
- 没有相关候选:说明已覆盖入口,并给普通厅或扩大范围的下一步。
- 来源不可访问:写“来源不可访问”,不要写成“没有相关内容”。
- 有候选但参数不足:保留为待核验候选,列出缺的决定性字段。
- 影厅能力可确认但排片不明:输出条件式候选,要求购票前核对具体厅号和版本。
- 票务页混排多片或只能取得搜索索引快照:保留为排片线索;不能证明同区块绑定或无法重开原页时输出条件式候选。
- 有场次但真实版本不明:引用票务标注,但不把标注升级成已确认能力。
- 有座位图但当前余座不明:只给区域,不猜具体可售座位。
使用已有登录态 Chrome 搜索小红书等平台属于可选增强:先取得用户明确同意,只对已收敛候选做只读精确搜索;遇验证码或访问限制立即停止并按公开模式继续。