Skip to content

DTS 提示词模板

这些模板只生成响应 body。输出必须是合法 JSON,可直接保存为 *.get.json

占位符说明

  • {spec}: 你的 dts 原文
  • {target}: TypeName 或类型别名描述
  • {count}: 数组条数(例如 10)
  • {seed}: 随机种子(字符串即可)
  • {locale}: 文本内容语言区域(例如 zh-CNen-US
  • {optional_ratio}: 可选字段取值概率(0~1,例如 0.7)
  • {null_ratio}: 可空字段为 null 的概率(0~1,例如 0.1)

方案一:单步模板 + 兜底修复模板(推荐)

主生成模板

text
你是一个严格的 JSON 生成器。只输出 JSON,不要解释、不要 Markdown。

任务:根据 dts 规范为 {target} 生成随机 mock 数据,作为 Mokup 的响应 body。
输入规范:
{spec}

硬性要求:
1) 输出必须是合法 JSON(不允许注释、尾逗号或多余文本)。
2) 输出结构必须匹配 {target} 的类型定义。
3) 若是数组或 list,输出数组长度为 {count}。
4) 可选字段按 {optional_ratio} 的概率出现;nullable 字段按 {null_ratio} 的概率为 null。
5) 对枚举值随机选取;对常见格式(email/uuid/date-time/url/ipv4/ipv6)生成合理值。
6) 保持字段顺序与类型声明顺序一致。
7) 使用 {seed} 作为随机种子,确保相同输入能得到稳定结果。
8) 姓名/地址/电话/文案等文本内容请遵循 {locale}。
9) 若类型中提供 JSDoc 示例或注释提示,优先参考但不要完全拷贝。

只输出 JSON。

兜底修复模板(当模型输出非 JSON 或结构不匹配时)

text
你是一个 JSON 修复器。只输出修复后的 JSON,不要解释、不要 Markdown。

目标:把“当前输出”修复成符合 dts 中 {target} 的合法 JSON 响应 body。
输入规范:
{spec}

当前输出:
{broken_json}

修复要求:
1) 只输出合法 JSON。
2) 结构必须匹配 {target} 的类型定义。
3) 不要引入类型中不存在的字段。
4) 保持字段顺序与类型声明顺序一致。

只输出 JSON。

方案二:两步模板(先规范化 schema,再生成 JSON)

第一步:规范化 schema

text
你是一个 schema 规范化工具。只输出 JSON,不要解释、不要 Markdown。

任务:将 dts 中的 {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(dts 模板)

text
你是一个严格的 JSON 生成器。只输出 JSON,不要解释、不要 Markdown。

示例 1:
输入规范:
type User = {
  id: string
  name: string
  age?: number
  role: 'admin' | 'user'
}
目标:User
输出:
{"id":"user_9f3","name":"Li Wei","age":24,"role":"admin"}

示例 2:
输入规范:
type Paging<T> = {
  total: number
  items: T[]
}
type Product = { id: number; title: string; price: number }
目标:Paging<Product>
输出:
{"total":2,"items":[{"id":101,"title":"Canvas Bag","price":129},{"id":102,"title":"Desk Lamp","price":89}]}

现在开始处理:
任务:根据 dts 规范为 {target} 生成随机 mock 数据,作为 Mokup 的响应 body。
输入规范:
{spec}

硬性要求:
1) 输出必须是合法 JSON(不允许注释、尾逗号或多余文本)。
2) 输出结构必须匹配 {target} 的类型定义。
3) 若是数组或 list,输出数组长度为 {count}。
4) 可选字段按 {optional_ratio} 的概率出现;nullable 字段按 {null_ratio} 的概率为 null。
5) 对枚举值随机选取;对常见格式(email/uuid/date-time/url/ipv4/ipv6)生成合理值。
6) 使用 {seed} 作为随机种子,确保相同输入能得到稳定结果。
7) 姓名/地址/电话/文案等文本内容请遵循 {locale}。

只输出 JSON。

使用建议

  • dts:优先给出类型定义原文与目标类型名,避免歧义。
  • 若结果 JSON 无法通过解析或类型校验,直接使用“兜底修复模板”。