Synthetic Data Generation
Generate a structured support Q&A dataset from a column schema, with no code.
Define a column schema with types, constraints, and categorical distributions, then generate a structured synthetic dataset from the Future AGI dashboard. Review the output, iterate on the schema, and run quality evals on the generated rows.
| Time | Difficulty | Package |
|---|---|---|
| 10 min | Beginner | Dashboard only |
- Future AGI account → app.futureagi.com
Tutorial
Start the synthetic data wizard
- Go to app.futureagi.com, then Dataset, then Add Dataset
- Select Create Synthetic Data
You should see the Create Synthetic Data wizard open, prompting for a dataset name and description.
Add details
| Field | Value |
|---|---|
| Name | support-qa-synthetic |
| Description | Customer support Q&A pairs for an e-commerce company covering returns, shipping, billing, and account issues |
| Objective | Fine-tuning a support chatbot |
| Pattern | Questions phrased naturally as a customer would ask. Answers professional, concise, and actionable. |
| Enter No. of rows | 20 |
Select knowledge base (optional): select a Knowledge Base to ground the generated rows in your own documents instead of the schema alone. Leave it empty to generate without domain grounding. Give the generated rows a skim before you rely on them; column properties aren’t hard validation on the result.
To set up a KB first, see the Knowledge Base cookbook. You can also start directly from the KB detail view: click Create Synthetic data in the action bar, and the wizard opens with your KB pre-selected.
Click Next.
You should see the wizard advance to the column configuration step.
Add column properties
Add three columns using the Add columns button.
Column 1: question
- Column Type: Text
- Properties:
Min Length=20,Max Length=200
Column 2: answer
- Column Type: Text
- Properties:
Min Length=50,Max Length=500
Column 3: category
- Column Type: Text
- Properties: set Value to
Categoricalwith:shipping: 25%billing: 25%returns: 25%account: 25%
Note
Category percentages must sum to 100%. Use Add more properties to add constraints per column. See Limits & Data Types for supported column types and Synthetic Data for the property editor.
Click Next.
You should see the wizard advance to the column description step, with an input for each column you added.
Add descriptions
Write a description for each column. Use {{column_name}} to reference other columns: this creates dependencies so generated values are contextually related.
Column 1: question
A realistic customer support question about {{category}} issues.
Phrased as a real customer would type it in a chat widget.Column 2: answer
A professional support response to {{question}} about {{category}}.
Directly addresses the concern with a clear next step.Column 3: category
The support category this Q&A pair belongs to.You should see all three description fields filled in, with the Create Dataset button now active.
Generate
Click Create Dataset. Generation runs in the background and the platform redirects you to the new dataset, which shows a Generating state until the rows land.
You should see the support-qa-synthetic dataset move from Generating to 20 rows across the question, answer, and category columns.
Review and iterate
- Sort or filter rows to inspect quality
- To re-generate or modify: click Configure Synthetic Data in the dataset toolbar. The Synthetic Data Details drawer opens
Warning
Regenerating wipes the dataset’s current rows and columns and rebuilds them from the config. If you want to keep the existing rows, use Edit Configuration and save instead: that’s the non-destructive path.
- Re-Generate same Configuration: rebuild every row from the same settings (destructive)
- Edit Configuration: modify the schema, then choose:
- Replace the current dataset: overwrite with new rows
- Create as new dataset: keep the original, generate a separate dataset
- Add it to existing dataset: append new rows
You should see the dataset either regenerate in place or a new dataset appear, depending on the option you chose.
Run evals on the generated data
- Click Evaluate in the dataset toolbar
- Add Evaluations then select
completeness - Map keys:
outputtoanswer,inputtoquestion - Click Add & Run
You should see a completeness score column appear next to the generated rows. A row like this scores low (illustrative example):
| question | answer | completeness |
|---|---|---|
| ”My order #4471 arrived damaged, what do I do?" | "We’re sorry to hear that. Please reach out to our team for help.” | 0.3: doesn’t say how to reach the team or what happens next |
The answer column description only says “Directly addresses the concern with a clear next step,” but nothing in the Pattern or description forces a concrete action (a link, a timeframe, a next step). To fix it, go back to Step 6, open Edit Configuration, and tighten the answer description to something like “State the specific next step the customer should take (e.g., the exact page to visit, or that a refund will process within N business days).” Regenerate and re-run completeness: a typical before/after on a tightened description moves scores from the 0.3-0.5 range up to 0.8+ (illustrative; your numbers will vary by run). Filter out any rows still scoring low before using the dataset for fine-tuning.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Next stays disabled on the column properties step | Categorical percentages for a column don’t sum to 100% | Adjust each category’s percentage so the column’s values add up to 100% |
| Generated rows read as generic Q&A, not tied to a category | Column descriptions don’t reference {{category}} | Use {{column_name}} in a column’s description to pull in another column’s value as context |
| Select knowledge base dropdown is empty | No Knowledge Base exists in the project, or its documents are still processing | Create a KB and wait for its documents to finish processing, then reopen the wizard |
| Create Dataset appears to hang after you click it | Generation runs in the background; larger row counts take longer | Wait for the Generating state to resolve into rows. Don’t resubmit or navigate away |
| Re-Generate same Configuration produces near-duplicate rows | The schema, Pattern, and column descriptions are unchanged from the original run | Edit the Pattern or a column description under Edit Configuration before regenerating |
| Evaluate step shows no score column after Add & Run | output or input mapped to the wrong dataset column | Confirm output maps to answer and input maps to question before running |
Next
To score the generated dataset at scale from code instead of the dashboard, see Dataset SDK: Batch Evaluation.
Questions & Discussion