--- title: Data Cleaning Env emoji: ๐Ÿงน colorFrom: blue colorTo: green sdk: docker app_file: app.py pinned: false --- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference # ๐Ÿง  AI-Powered Data Cleaning Environment (OpenEnv) ## ๐Ÿ“Œ Overview This project implements an **AI-driven data cleaning environment** following the OpenEnv specification. An LLM-based agent interacts with the environment step-by-step and performs data cleaning actions to improve dataset quality. The system evaluates: - Decision-making ability of AI - Data cleaning strategies - Efficiency (steps vs quality) --- ## ๐ŸŽฏ Objective To build an environment where an AI agent can: - Detect data issues - Apply cleaning actions - Maximize final data quality score --- ## โš™๏ธ Environment Design ### ๐Ÿ”น Observation Space Each step returns: ```json { "dataset": {...}, "shape": [rows, columns], "steps": n } ``` - `dataset`: current dataset state - `shape`: dimensions - `steps`: steps taken so far ### ๐Ÿ”น Action Space Agent can perform: | Action | Description | |--------|-------------| | `fill_nulls` | Fill missing values | | `remove_nulls` | Remove rows with nulls | | `deduplicate` | Remove duplicate rows | | `convert_types` | Fix incorrect data types | | `trim_whitespace` | Clean text formatting | | `normalize` | Normalize numeric columns | | `inspect_column` | Analyze a column | **Action Format:** ```json { "type": "action_name", "column": "column_name" } ``` ### ๐Ÿ”น Reward System - Positive reward โ†’ correct cleaning - Negative reward โ†’ unnecessary/wrong action **Example:** - Fill nulls โ†’ `+0.12` - Wrong removal โ†’ `-0.08` ### ๐Ÿ”น Episode Termination Episode ends when: - `done = True` OR - max steps reached Final score is computed using: ``` score โˆˆ [0, 1] ``` --- ## ๐Ÿงช Tasks ### โœ… Task 1: Basic Cleaning - Handle null values - Remove duplicates - Fix data types ### โœ… Task 2: Intermediate Cleaning - Better decision strategies - Column-wise reasoning ### โœ… Task 3: Full Pipeline - Complete dataset cleaning - Optimal sequence of actions --- ## ๐Ÿค– AI Agent (Inference) The agent uses an LLM to: 1. Analyze dataset summary 2. Choose next action 3. Avoid repeating actions 4. Improve data quality iteratively ### ๐Ÿ”น Strategy Used Instead of sending full dataset, we send: - Column statistics (null %, dtype, unique values) - Duplicate count - Sample rows - Action history ๐Ÿ‘‰ This improves reasoning and reduces noise. --- ## ๐Ÿ“Š Baseline Performance | Task | Score | |------|-------| | Task 1 | ~0.70 | | Task 2 | ~0.75 | | Task 3 | ~0.80 | --- ## ๐Ÿš€ Setup Instructions ### 1๏ธโƒฃ Clone Repository ```bash git clone cd data-cleaning-env ``` ### 2๏ธโƒฃ Install Dependencies ```bash pip install -r requirements.txt ``` ### 3๏ธโƒฃ Set Environment Variables **Windows (PowerShell):** ```powershell setx HF_TOKEN "your_token_here" setx MODEL_NAME "Qwen/Qwen2.5-72B-Instruct" setx API_BASE_URL "https://router.huggingface.co/v1" ``` **Linux/Mac:** ```bash export HF_TOKEN="your_token_here" export MODEL_NAME="Qwen/Qwen2.5-72B-Instruct" export API_BASE_URL="https://router.huggingface.co/v1" ``` ### 4๏ธโƒฃ Run Inference ```bash python inference.py ``` --- ## ๐Ÿ“ก API Endpoints ### ๐Ÿ”น Reset ``` POST /reset ``` ### ๐Ÿ”น Step ``` POST /step ``` **Example:** ```json { "type": "fill_nulls", "column": "city" } ``` ### ๐Ÿ”น State ``` GET /state ``` --- ## ๐Ÿณ Docker Setup **Build:** ```bash docker build -t data-cleaning-env . ``` **Run:** ```bash docker run -p 7860:7860 data-cleaning-env ``` --- ## ๐ŸŒ Hugging Face Deployment 1. Create Space โ†’ Docker 2. Push code 3. Add environment variables: - `HF_TOKEN` - `MODEL_NAME` - `API_BASE_URL` --- ## โœ… Validation ```bash openenv validate ``` ```bash bash validate-submission.sh ``` --- ## ๐Ÿ“ Project Structure ``` . โ”œโ”€โ”€ app.py โ”œโ”€โ”€ inference.py โ”œโ”€โ”€ Dockerfile โ”œโ”€โ”€ requirements.txt โ”œโ”€โ”€ README.md โ””โ”€โ”€ env/ โ”œโ”€โ”€ environment.py โ”œโ”€โ”€ actions.py โ”œโ”€โ”€ data_generator.py โ”œโ”€โ”€ issue_injector.py โ””โ”€โ”€ graders/ ``` --- ## โš ๏ธ Constraints - Runtime < 20 minutes - Compatible with: - 2 vCPU - 8GB RAM - Must follow OpenEnv spec --- ## ๐ŸŽ‰ Conclusion This project demonstrates: - AI-based decision making - Reinforcement-style environment - Automated data cleaning --- ## ๐Ÿ‘ฉโ€๐Ÿ’ป Authors - Tanushree Gupta - Disha Singla