# 你分得出吗？

一个适合课堂使用的局域网互动游戏：学生用手机进入答题页，主持人在大屏上控制题目、倒计时和揭晓。题目可以是图片、视频、音频、文字、代码或一个产品原型。

它的重点不是测出谁最会识别 AI，而是让学生说出判断依据，知道哪些线索还不够，并学会回到出处、制作记录和可复核证据。

## 功能

- 学生手机扫码或打开局域网地址，用代号加入
- 主持人后台编辑、导入、排序和删除题目
- 支持图片、视频、音频、文字、代码、网页嵌入和产品链接
- 同步开始、倒计时、提交、揭晓和排名
- 主持人投屏视图自动显示学生入口二维码
- 所有数据保存在本机 SQLite，不依赖云端账号

## 安装与运行

需要 Python 3.9 或更高版本，不需要额外 Python 包。

```powershell
cd warmup-ai-or-human
Copy-Item .env.example .env
# 编辑 .env，将 ADMIN_PASS 改成课堂专用密码
python server.py
```

启动后，终端会显示两个地址：

- 观众页：`http://本机IP:8000/`
- 主持人页：`http://本机IP:8000/host`

电脑和学生手机需要连接同一个 Wi-Fi。若自动探测到的地址不适合课堂，可在 `.env` 中填写 `HOST_IP`；使用反向代理时填写 `PUBLIC_URL`。首次运行会创建 `data.db`，保存题库、设置和本轮作答数据。

## 主持人操作

1. 打开 `/host`，使用 `.env` 中的管理员账号和密码登录。
2. 在“题库”中检查题目顺序、媒体地址、正确答案和揭晓说明。
3. 点击“投屏”，让学生扫码进入观众页。
4. 设置本轮时长并开始；学生提交后打开逐题揭晓。
5. 课堂结束后停止服务。若要清空成绩而保留题库，可在后台重置本轮。

不要把管理员密码放进投影、课件或公开网页。若公开部署，建议只在教师可信网络中运行，不把这个小工具直接暴露到公网。

## 如何准备题目

每道题包含以下字段：

| 字段 | 说明 |
|-|-|
| `kind` | `image`、`video`、`audio`、`text`、`code`、`embed` 或 `product` |
| `round` | 题目分组标签，例如“图像 · 影像” |
| `prompt` | 给学生看的问题 |
| `body` | 文字、代码或补充说明 |
| `media` | `/media/文件名` 或经过核对的在线地址 |
| `link` | 产品或嵌入题的外部链接，可选 |
| `answer` | `h`（人）、`a`（AI）或 `b`（人和 AI 一起） |
| `reveal` | 揭晓时展示的出处、过程和限制 |

可以在后台逐题新增，也可以导入 JSON：

```json
{
  "questions": [
    {
      "ord": 0,
      "kind": "image",
      "round": "图像 · 影像",
      "prompt": "这张图来自实拍还是生成？",
      "body": "先说一个判断线索。",
      "media": "/media/example.jpg",
      "link": "",
      "answer": "a",
      "reveal": "回到作者说明和原始出处，不把视觉直觉当成证据。"
    }
  ]
}
```

素材放入 `media/` 后，在后台填入 `/media/文件名`。每个文件都应有明确来源、授权范围和课堂用途说明；未经许可的新闻视频、学生照片和第三方作品不要放进公开仓库。

## 推荐玩法（15—25 分钟）

1. 先让学生独立判断，不公布标准答案。
2. 每题请一位学生说“我依据了什么”。
3. 再问“这个线索可靠吗？如果要确认，下一步查什么？”
4. 打开揭晓，展示来源和制作记录，说明仍然不知道的部分。
5. 最后让学生自己出一道题，或把一道题改得更难核验。

不按分数给学生贴标签。允许学生改选，允许“暂时无法判断”，也允许答案是“人和 AI 一起”。

## 隐私与安全

- 课堂只要求代号，不要求真实姓名、手机号或邮箱。
- `data.db` 包含题库、代号和作答记录，不应提交到公开仓库。
- `.env` 包含管理员密码，不应提交到公开仓库。
- 上传接口只应在教师可信局域网使用；公开部署前请增加反向代理认证、HTTPS、上传大小限制和访问控制。
- 公开课程材料应单独整理，删除学生可识别信息、未授权媒体和内部路径。

## 许可

本目录中的 AHALab 自有代码采用 **Apache License 2.0**，详见 `LICENSE`。允许复制、修改、分发和商用，并提供明确的专利授权；再分发时请保留许可证、版权和来源说明，并在修改文件中标注修改。

课程文档和教学材料可按 AHALab 课程页面标注的 **CC BY 4.0** 使用。两种许可分别适用于代码与课程内容，不要把第三方库或媒体误认为 AHALab 自有内容。

`qrcode.js` 保留其原作者与 MIT 许可证声明。媒体文件、字体、图像和视频需要分别核对作者、来源与再分发授权。

第三方文件（例如 `qrcode.js`）保留其原许可证；媒体文件不因代码许可自动获得再分发权。使用者应分别核对每个素材的作者、来源和授权。
