CoolFace
Apppublic

Nantha997/Zero-ETL

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
App README

Zero-ETL · AI Data Transformation Engine

Type a plain-English command → AI generates and executes the data transformation instantly.

Tech Stack LLM Frontend


🚀 Quick Start

1. Get a Groq API Key

Go to Groq Console and create a free API key to access fast, open-source models like Llama 3.3.

2. Configure .env

Open .env and replace the placeholder:

GROQ_API_KEY=your_actual_key_here

3. Run

bat
run.bat

The browser will open automatically. The backend runs at http://localhost:8000.


💬 Example Commands

You can chain commands natively! Once a file is created (like a Parquet file), you can immediately run transformations on it.

CommandWhat it does
load sales.csv and convert to parquetReads CSV, writes sales.parquet
show first 20 rows of sales.parquetSeamlessly reads and previews the new Parquet file
join customers.csv with orders.csv on customer_idMerges two datasets
filter sales.parquet where status is CompletedApplies row filter to a Parquet file
fill nulls in age column with medianImputes missing values
show summary statisticsRuns .describe() on the dataset
run SQL: SELECT * FROM data.csv LIMIT 5DuckDB SQL query
calculate total revenue by product_category in sales.csvPerforms groupby and aggregation
list all files in workspaceShows available files in backend/data/

🏗 Architecture

frontend/
├── index.html        ← Dark-mode chat UI
├── style.css         ← Glassmorphism styling
└── app.js            ← API calls, table rendering

backend/
├── main.py           ← FastAPI server (REST API)
├── requirements.txt  ← Python deps
├── data/             ← Your data files (auto-created)
└── engine/
    ├── nl_parser.py  ← Groq LLM → Python code
    ├── executor.py   ← Safe code execution
    └── file_manager.py ← File ops (upload/list/delete)

🔌 API Endpoints

MethodEndpointDescription
POST/executeRun a NL command
GET/filesList workspace files
POST/uploadUpload a data file
GET/preview/{filename}Preview first N rows
GET/download/{filename}Download a file
DELETE/files/{filename}Delete a file
GET/historySession command history

📦 Dependencies

PackagePurpose
fastapi + uvicornREST API server
groqGroq LLM inference (Llama-3.3)
pandasDataFrame operations
pyarrowParquet read/write
duckdbIn-process SQL engine
openpyxlExcel support

🔒 Safety Notes

  • —LLM-generated code runs in a controlled namespace with only safe imports.
  • —All file I/O is restricted to the /backend/data/ folder.
  • —No network calls from within generated code.