Skip to content

DTS Prompt Templates ​

These templates generate response bodies only. The output should be valid JSON that can be saved directly as *.get.json.

Placeholders ​

  • {spec}: Your DTS source
  • {target}: TypeName or a type alias description
  • {count}: Array length (for example, 10)
  • {seed}: Random seed (string)
  • {locale}: Locale for text fields (for example, zh-CN or en-US)
  • {optional_ratio}: Probability for optional fields (0~1)
  • {null_ratio}: Probability for nullable fields to be null (0~1)

Main generation template ​

text
You are a strict JSON generator. Output JSON only. No explanations, no Markdown.

Task: Generate random mock data for {target} from the DTS spec below, as a Mokup response body.
Input spec:
{spec}

Hard requirements:
1) Output must be valid JSON (no comments, no trailing commas, no extra text).
2) Output structure must match the {target} type definition.
3) If the target is an array or list, output length must be {count}.
4) Optional fields appear with probability {optional_ratio}; nullable fields are null with probability {null_ratio}.
5) Pick enum values randomly; generate realistic values for common formats (email/uuid/date-time/url/ipv4/ipv6).
6) Keep field order the same as the type declaration order.
7) Use {seed} as the random seed for stable output.
8) Use {locale} for names, addresses, phone numbers, and free-text fields.
9) If JSDoc examples or hints exist, prefer them but do not copy verbatim.

Output JSON only.

Repair template (when output is invalid JSON or mismatched) ​

text
You are a JSON repair tool. Output the fixed JSON only. No explanations, no Markdown.

Goal: Fix the "current output" so it becomes a valid JSON response body for {target} in the DTS spec.
Input spec:
{spec}

Current output:
{broken_json}

Repair rules:
1) Output valid JSON only.
2) Structure must match the {target} type definition.
3) Do not add fields that are not in the type.
4) Keep field order the same as the type declaration order.

Output JSON only.

Approach 2: Two-step (Normalize schema, then generate JSON) ​

Step 1: Normalize to a compact schema ​

text
You are a schema normalization tool. Output JSON only. No explanations, no Markdown.

Task: Normalize {target} in the DTS spec into a compact JSON schema that preserves structure, required/optional, nullable, enums, formats, and ranges.
Input spec:
{spec}

Output format:
{
  "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
}

Output JSON only.

Step 2: Generate from normalized schema ​

text
You are a strict JSON generator. Output JSON only. No explanations, no Markdown.

Task: Generate random mock data from the normalized schema as a Mokup response body.
Normalized schema:
{normalized_schema}

Rules:
1) Output must be valid JSON.
2) If schema is an array, length must be {count}.
3) Optional fields appear with probability {optional_ratio}; nullable fields are null with probability {null_ratio}.
4) Pick enum values randomly; generate realistic values for formats.
5) Use {seed} as the random seed for stable output.
6) Use {locale} for names, addresses, phone numbers, and free-text fields.

Output JSON only.

Approach 3: Few-shot (Stable but longer) ​

Few-shot template ​

text
You are a strict JSON generator. Output JSON only. No explanations, no Markdown.

Example 1:
Input spec:
type User = {
  id: string
  name: string
  age?: number
  role: 'admin' | 'user'
}
Target: User
Output:
{"id":"user_9f3","name":"Li Wei","age":24,"role":"admin"}

Example 2:
Input spec:
type Paging<T> = {
  total: number
  items: T[]
}
type Product = { id: number; title: string; price: number }
Target: Paging<Product>
Output:
{"total":2,"items":[{"id":101,"title":"Canvas Bag","price":129},{"id":102,"title":"Desk Lamp","price":89}]}

Now process:
Task: Generate random mock data for {target} from the DTS spec below, as a Mokup response body.
Input spec:
{spec}

Hard requirements:
1) Output must be valid JSON (no comments, no trailing commas, no extra text).
2) Output structure must match the {target} type definition.
3) If the target is an array or list, output length must be {count}.
4) Optional fields appear with probability {optional_ratio}; nullable fields are null with probability {null_ratio}.
5) Pick enum values randomly; generate realistic values for common formats (email/uuid/date-time/url/ipv4/ipv6).
6) Use {seed} as the random seed for stable output.
7) Use {locale} for names, addresses, phone numbers, and free-text fields.

Output JSON only.

Usage tips ​

  • Provide the full type definitions around {target} to avoid ambiguity.
  • If the result fails JSON parsing or type validation, use the repair template immediately.