Synthetic data generation using LLMs
Project description
Synthetic Data Generation PoC
Overview
This project generates synthetic data using an AI model based on a given YAML configuration file and a reference CSV file. The generated data follows the provided column structure and user-defined constraints.
Features
- Reads column definitions and user instructions from a YAML configuration file.
- Validates the structure of the YAML file.
- Validates the format of the reference CSV file.
- Generates synthetic data using Groq's Mixtral model.
- Ensures the output is in CSV format without headers or extra text.
- Enforces unique rows with consistent column counts.
Prerequisites
- Python 3.8+
- Required Python packages:
yamlpandasjsoncsvgroq
Usage
Run the script with the required YAML configuration file and reference CSV file:
python test1.py config.yaml test_data.csv [optional_api_key]
Arguments
config.yaml - YAML file specifying column definitions and generation rules. test_data.csv - Reference CSV file to guide synthetic data generation. [optional_api_key] - (Optional) Your own Groq API key. If not provided, a default API key will be used.
YAML Configuration Structure
The YAML file should define columns and the prompt:
columns:
- name: "id"
type: "integer"
- name: "name"
type: "string"
- name: "email"
type: "string"
- name: "age"
type: "integer"
- name: "city"
type: "string"
- name: "signup_date"
type: "datetime"
num_rows: 100
prompt: "Generate a dataset for user profiles."
Reference CSV File (test_data.csv)
This file provides sample data for reference.
Example test_data.csv:
id,name,age,email,city,signup_date
101,John Doe,28,john.doe@example.com,New York,2023-05-14
102,Jane Smith,34,jane.smith@example.com,Los Angeles,2022-11-21
...
Expected Output
- The generated dataset will be stored in
synthetic_data.csv. - The output will contain only comma-separated values without extra text or headers.
- The generated rows will be unique and follow the reference data pattern.
Error Handling
- If the YAML configuration is invalid, the script will display an error message and exit.
- If the reference CSV file has missing columns, the script will halt with an error.
- If no valid data is generated, an appropriate message will be displayed.
License
This project is for demonstration purposes only. Usage is subject to Groq API policies.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syn_data_csv-0.1.8.tar.gz.
File metadata
- Download URL: syn_data_csv-0.1.8.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3adb66c021d0c8e12134aada9e92d1b631420b0d9926187c93e9dbfdba3a4e2a
|
|
| MD5 |
dbcb5e544fc9ad7a2a84bc852ddb6b33
|
|
| BLAKE2b-256 |
852bb9fd1c43fe541e4ca978fdf285af7a01c84776fd500f43c4fb316a4eb3b6
|
File details
Details for the file syn_data_csv-0.1.8-py3-none-any.whl.
File metadata
- Download URL: syn_data_csv-0.1.8-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
852a703328dcbd059ff19024fa33e1f9a5bac85e6f7c1cb978f185a8ecab41ff
|
|
| MD5 |
7389a9fff1e3fef8f864f7fca31e1dc9
|
|
| BLAKE2b-256 |
5749dceb0f4aa94a92f59aa111c5b562790e73dd5d23c154ddacbf2422a0ed5a
|