OpenAPI 提示词模板
这些模板只生成响应 body。输出必须是合法 JSON,可直接保存为 *.get.json。
占位符说明
{spec}: 你的 OpenAPI 原文{target}:{method} {path} {status} {contentType},例如GET /users 200 application/json{count}: 数组条数(例如 10){seed}: 随机种子(字符串即可){locale}: 文本内容语言区域(例如zh-CN或en-US){optional_ratio}: 可选字段取值概率(0~1,例如 0.7){null_ratio}: 可空字段为 null 的概率(0~1,例如 0.1)
方案一:单步模板 + 兜底修复模板(推荐)
主生成模板
text
你是一个严格的 JSON 生成器。只输出 JSON,不要解释、不要 Markdown。
任务:根据 OpenAPI 规范为 {target} 生成随机 mock 数据,作为 Mokup 的响应 body。
输入规范:
{spec}
硬性要求:
1) 输出必须是合法 JSON(不允许注释、尾逗号或多余文本)。
2) 输出结构必须匹配 {target} 的响应 schema。
3) 若是数组或 list,输出数组长度为 {count}。
4) 可选字段按 {optional_ratio} 的概率出现;nullable 字段按 {null_ratio} 的概率为 null。
5) 对枚举值随机选取;对 format(email/uuid/date-time/url/ipv4/ipv6)生成合理值。
6) 保持字段顺序与 schema 中的声明顺序一致。
7) 使用 {seed} 作为随机种子,确保相同输入能得到稳定结果。
8) 姓名/地址/电话/文案等文本内容请遵循 {locale}。
9) 若 schema 中提供 example/default,优先参考但不要完全拷贝。
只输出 JSON。兜底修复模板(当模型输出非 JSON 或结构不匹配时)
text
你是一个 JSON 修复器。只输出修复后的 JSON,不要解释、不要 Markdown。
目标:把“当前输出”修复成符合 OpenAPI 中 {target} 的合法 JSON 响应 body。
输入规范:
{spec}
当前输出:
{broken_json}
修复要求:
1) 只输出合法 JSON。
2) 结构必须匹配 {target} 的响应 schema。
3) 不要引入 schema 中不存在的字段。
4) 保持字段顺序与 schema 中的声明顺序一致。
只输出 JSON。方案二:两步模板(先规范化 schema,再生成 JSON)
第一步:规范化 schema
text
你是一个 schema 规范化工具。只输出 JSON,不要解释、不要 Markdown。
任务:将 OpenAPI 中的 {target} 规范化为一个简洁 JSON schema(只保留类型结构、必填、可空、枚举、format、范围信息)。
输入规范:
{spec}
输出格式要求:
{
"type": "object|array|string|number|integer|boolean",
"properties": { ... },
"required": [ ... ],
"nullable": true|false,
"enum": [ ... ],
"format": "email|uuid|date-time|url|ipv4|ipv6|...",
"items": { ... },
"min": number,
"max": number
}
只输出 JSON。第二步:从规范化 schema 生成响应 body
text
你是一个严格的 JSON 生成器。只输出 JSON,不要解释、不要 Markdown。
任务:根据“规范化 schema”生成随机 mock 数据,作为 Mokup 的响应 body。
规范化 schema:
{normalized_schema}
生成规则:
1) 输出必须是合法 JSON。
2) 若 schema 为数组,长度为 {count}。
3) 可选字段按 {optional_ratio} 的概率出现;nullable 字段按 {null_ratio} 的概率为 null。
4) 对枚举值随机选取;对 format 生成合理值。
5) 使用 {seed} 作为随机种子,确保稳定输出。
6) 姓名/地址/电话/文案等文本内容请遵循 {locale}。
只输出 JSON。方案三:少量 few-shot 示例模板(稳定但更长)
Few-shot(OpenAPI 模板)
text
你是一个严格的 JSON 生成器。只输出 JSON,不要解释、不要 Markdown。
示例 1:
输入规范:
paths:
/users:
get:
responses:
"200":
content:
application/json:
schema:
type: array
items:
type: object
properties:
id: { type: integer }
email: { type: string, format: email }
required: [id, email]
目标:GET /users 200 application/json
输出:
[{"id":101,"email":"sam@example.com"},{"id":102,"email":"ava@example.com"}]
示例 2:
输入规范:
paths:
/orders/{id}:
get:
responses:
"200":
content:
application/json:
schema:
type: object
properties:
id: { type: string, format: uuid }
amount: { type: number }
status: { type: string, enum: [paid, pending] }
required: [id, amount, status]
目标:GET /orders/{id} 200 application/json
输出:
{"id":"d2a4f7b2-7ed8-4e1a-9fd5-0c1b8c8f8b6a","amount":129.5,"status":"paid"}
现在开始处理:
任务:根据 OpenAPI 规范为 {target} 生成随机 mock 数据,作为 Mokup 的响应 body。
输入规范:
{spec}
硬性要求:
1) 输出必须是合法 JSON(不允许注释、尾逗号或多余文本)。
2) 输出结构必须匹配 {target} 的响应 schema。
3) 若是数组或 list,输出数组长度为 {count}。
4) 可选字段按 {optional_ratio} 的概率出现;nullable 字段按 {null_ratio} 的概率为 null。
5) 对枚举值随机选取;对 format(email/uuid/date-time/url/ipv4/ipv6)生成合理值。
6) 使用 {seed} 作为随机种子,确保相同输入能得到稳定结果。
7) 姓名/地址/电话/文案等文本内容请遵循 {locale}。
只输出 JSON。使用建议
- OpenAPI:尽量指定明确的
{method} {path} {status} {contentType}。 - 若结果 JSON 无法通过解析或类型校验,直接使用“兜底修复模板”。