# T1 星港口令整理员（Prompt 控制）

## 题目背景

星港是一座用于向太空输送物资的集散港。这里已经开通地面到近地轨道的常态化摆渡，近轨摆渡船、回收平台、补给臂和外环泊位都在同一套调度网里运转。

夜班时段最紧张。对接窗口按分钟计算，低温补给、姿态复位、拖运清障、轨道校准和热控复核往往要在几分钟内连续衔接。口令来源也很混杂：头盔麦、车载终端、环廊广播、维修面板都可能同时往总控台回传文本。

为了不让补给组、拖运组和巡检组跑错区段，你需要让模型把这些嘈杂文本整理成标准调度口令。

## 题目描述

对于每条输入文本，模型输出必须恰好三行，且顺序固定：

```text
任务：...
执行时间：...
泊位：...
```

时间标准化规则如下：

1. 统一基准日为 `2026-03-23`（周一）。
2. `周X` / `这周X` 按本周映射到 `2026-03-23` 到 `2026-03-29`。
3. `明天` = `2026-03-24`，`今晚` = `2026-03-23` 晚间。
4. `7点` -> `07:00`，`晚7点` -> `19:00`，`7点半` -> `07:30`，`晚7点半` -> `19:30`。
5. `4月2日` 这类无年份日期，统一补成 `2026` 年。

任务字段应尽量提取最稳定、最像调度名的短语；若文本中明确给出任务代号，可优先使用代号。泊位字段应保留原文中的完整地点名称，不要自行缩写。

## 你需要实现

在 `submission.py` 中完成：

1. `build_system_prompt() -> str`
2. `build_generation_parameters() -> dict`

## 输入格式

本题为函数式评测。

评测器会把一条自然语言调度文本作为用户输入交给模型。你可以把它理解为“一行混乱的调度口令”。

## 输出格式

模型输出必须同时满足以下要求：

1. 必须恰好三条非空行。
2. 三行前缀必须分别是 `任务：`、`执行时间：`、`泊位：`，均使用中文全角冒号。
3. `执行时间` 必须写成 `YYYY-MM-DD HH:MM`，使用 24 小时制，分钟补零。
4. 不允许输出解释、代码块、前后缀。

## 输入输出样例

### 样例输入 1

```text
今晚8点在东港五号泊位做稳定器巡检任务，代号“星盾”。
```

### 样例输出 1

```text
任务：星盾
执行时间：2026-03-23 20:00
泊位：东港五号泊位
```

说明：`今晚8点` 需要换算为 `2026-03-23 20:00`；文本中同时出现任务短语和任务代号时，本样例采用更适合高压调度呼叫的任务代号。

### 样例输入 2

```text
明天清晨6点，晨光区7号位做天线指向复测。
```

### 样例输出 2

```text
任务：天线指向复测
执行时间：2026-03-24 06:00
泊位：晨光区7号位
```

说明：`明天清晨6点` 需要标准化为 `2026-03-24 06:00`；`晨光区7号位` 作为完整地点名称应原样保留。

## 数据范围

### 可见数据

1. 文件路径：`../data/T1_visible_test_data.jsonl`
2. 数据规模：共 `8` 条
3. 主要覆盖常见时间表达和相对标准的泊位名称，例如 `今晚`、`周五 14:35`、`银湾-04泊位`、`东港五号泊位`
4. 每条输出固定为 `3` 个字段：`任务`、`执行时间`、`泊位`

### 隐藏数据

1. 文件路径：`../data/T1_visible_test_data.final.jsonl`
2. 数据规模：正式评测共 `5` 条
3. 仍然遵循同一题意，但会加入更偏运行区风格的地点名和时间表达，例如 `月影港P3`、`三号补给臂C-6`、`晨光区7号位`
4. 赛后已填入隐藏数据
5. 隐藏集不会改变输出格式要求，但会更强调你对时间归一化和泊位抽取规则的鲁棒性

## 评分说明

总分 `30` 分：

1. 可见集 `20` 分
2. 隐藏集 `10` 分
3. 其中字段正确和格式正确分别独立计分

### 运行方式

```bash
python T1/evaluate.py
```

### 提示

1. 先让模型稳定输出三行，再追求字段内容正确。
2. 时间归一化规则要写得明确，不要让模型“自由发挥”。
3. 若任务代号比任务短语更稳定，可在 Prompt 中明确优先级。
