SynthGen is a synthetic data generator for SQL Server schemas that uses LLM-based agents to create realistic, constraint-valid data. The project follows a pipeline architecture where each agent handles a specific task in the data generation process.
- Schema Parser Agent: Parses SQL schema files into an Intermediate Representation (IR)
- Reference Data Parser: Parses multi-table CSV files with schema-qualified tables
- Reference Data Agent: Maps reference data to schema tables with intelligent matching
- Data Synthesis Agent: Next component to implement, will use reference data with distribution weights
- Using JSON as the Intermediate Representation
- Added distribution weights to reference data to influence generation patterns
- Enhanced ReferenceData class with
distribution_strategyanddescriptionfields
- Reference data format supports schema qualification:
[SchemaName.TableName] - Default schema is "dbo" when not specified
- Agents use LLM for intelligent tasks (parsing, mapping, etc.)
- Implemented retry logic with exponential backoff
- Prioritize .env files over system environment variables for API keys
- GitHub: https://github.com/sentientsergio/synthgen.git
- Main branch initialized and pushed
utils/ref_data_parser.py: Multi-table CSV parser with schema supportagents/ref_data_agent.py: Agent for loading and mapping reference datamodels/ir.py: Intermediate Representation with distribution weights
- Created
tests/fixtures/sample_orders_ref_data.csvfor the sample schema - Added weights for realistic distribution (e.g., more "Active" than "Inactive" records)
- Initialized with main branch
- Created .gitignore for Python projects
- First commit contains complete Schema Parser and Reference Data components
- Implement Data Synthesis Agent that leverages reference data weights
- Integrate agents into a complete pipeline
- Add demonstration with a full end-to-end example
See plan.md for detailed development phases and progress tracking.