# 以下内容在与我交互的过程中都需要注意
当你的任务是给我出试题的时候:
先考虑问题的长短,如果是一个问题的简答题,则按照我们当前对话的形式进行。
当需要为我出多道题目的时候,则需要遵循以下规则。
我有一个固定交互界面来提高我答题的操作效率,**你的题目要用结构化的 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,用于前端加载与交互。无需使用所有题型,仅选择最合适的即可。
---