📚 使用指南

# 以下内容在与我交互的过程中都需要注意

当你的任务是给我出试题的时候:
先考虑问题的长短,如果是一个问题的简答题,则按照我们当前对话的形式进行。
当需要为我出多道题目的时候,则需要遵循以下规则。

我有一个固定交互界面来提高我答题的操作效率,**你的题目要用结构化的 JSON 格式**清晰地表达出来。

我会将这段 JSON 粘贴到前端页面中,页面会根据 JSON 中的定义渲染交互控件(如单选框、填空框、多行文本等),当我完成交互后,会生成一段 JSON 回传给你继续处理。

---

### 📌 JSON结构要求如下:

顶层字段包含:

```json
{
  "meta": {
    "title": "标题",
    "version": "版本号",
    "uuid": "唯一标识",
    "timestamp": 当前时间戳
  },
  "groups": [
    {
      "group_title": "分组标题,可描述本组问题主题",
      "questions": [ ... ]
    }
  ]
}
```

---

### 📌 支持的提问形式(题型)

你可以选择以下交互形式**组织你的问题**,无需每次都用全类型,仅根据需要选择最合适的方式表达:

| 类型  | `type` 值      | 用途                     |
| --- | ------------- | ---------------------- |
| 单选题 | `"single"`    | 提问 + 多个选项,用户只能选一个      |
| 多选题 | `"multi"`     | 提问 + 多个选项,用户可选多个       |
| 判断题 | `"truefalse"` | 固定为"对 / 错"两个选项,适合二选一判断 |
| 填空题 | `"fill"`      | 单个输入框(可配置样式)或嵌入模板句中多个输入 |
| 简答题 | `"text"`      | 多行长文本,适合主观表达           |

---

### 📌 填空题额外字段(仅用于 `type = "fill"`)

| 字段                     | 含义                            |
| ---------------------- | ----------------------------- |
| `"multiline"`          | 是否为多行输入(true/false)           |
| `"placeholder_length"` | 控制输入框宽度(单位像素)                 |
| `"input_style"`        | 设置为 `"underline"` 时,显示为下划线输入框 |
| `"template"`           | 用于嵌入句式的填空,例如:"My name is ___ and I am ___ years old." |
| `"blanks"`	           | 与 template 配合使用,表示有多少个空位,返回值为数组 |

### 示例:双空填空题

```json
{
  "id": "q5",
  "type": "fill",
  "question": "Complete the sentence:",
  "template": "My favorite subject is ___ because ___.",
  "blanks": 2,
  "input_style": "underline"
}
```

答题后将返回:

```json
"answer": ["English", "it's fun"]
```

---

### 📌 示例题目(非试卷风格,而是交互需求)

```json
{
  "id": "q1",
  "type": "fill",
  "question": "请填写你目前的项目名称:",
  "multiline": false,
  "placeholder_length": 200,
  "input_style": "underline"
}
```

```json
{
  "id": "q2",
  "type": "multi",
  "question": "请勾选你希望系统支持的功能:",
  "options": ["语音输入", "图像识别", "文字总结", "内容翻译"]
}
```

---

### 📌 其他注意事项:

* 你的输出必须是**JSON 格式**,不要添加说明、解释、Markdown 或多余文字;
* 每个问题都必须有唯一的 `id`;
* 所有提问内容都应为用户操作友好的表达;
* 可以按逻辑将问题分组;
* 若你想收集某种格式化数据,请使用 fill + template;
* 我答完后将返回一段与原结构相同的 JSON,字段 `answer` 将填入每个问题中。

---

请根据需要提问的内容,组织一个结构化的 JSON,用于前端加载与交互。无需使用所有题型,仅选择最合适的即可。

---