| --- |
| title: Reflection With Code Execuation Chart Generation |
| emoji: π |
| colorFrom: green |
| colorTo: green |
| sdk: gradio |
| sdk_version: 6.5.1 |
| app_file: app.py |
| pinned: false |
| license: apache-2.0 |
| --- |
| |
| # Chart Generation with LLM Agents |
|
|
| A Gradio app that uses LLM agents with reflection pattern to generate and improve data visualizations. |
|
|
| ## Features |
|
|
| - π€ **LLM-Powered Chart Generation**: Uses GPT-4 or Claude to generate matplotlib code |
| - π **Reflection Pattern**: Automatically improves charts by analyzing V1 and generating V2 |
| - π **Coffee Sales Dataset**: Pre-loaded dataset for demonstration |
| - π¨ **Clean UI**: User-friendly Gradio interface |
|
|
| ## How It Works |
|
|
| 1. **Generate V1**: LLM creates initial chart code based on your instruction |
| 2. **Execute V1**: Code runs and generates first chart |
| 3. **Reflect**: LLM analyzes V1 chart image and original code |
| 4. **Generate V2**: LLM creates improved code based on feedback |
| 5. **Execute V2**: Improved code runs and generates final chart |
|
|
| ## Setup |
|
|
| ### Local Development |
|
|
| 1. Install dependencies: |
| ```bash |
| pip install -r requirements.txt |
| ``` |
|
|
| 2. Set up environment variables: |
| ```bash |
| export OPENAI_API_KEY="your-key-here" |
| # OR |
| export ANTHROPIC_API_KEY="your-key-here" |
| ``` |
|
|
| 3. Run the app: |
| ```bash |
| python app.py |
| ``` |
|
|
| ### HuggingFace Spaces Deployment |
|
|
| 1. Create a new Space on HuggingFace |
| 2. Upload all files: |
| - `app.py` |
| - `utils.py` |
| - `coffee_sales_local.csv` |
| - `requirements.txt` |
| - `README.md` (this file) |
|
|
| 3. Add secrets in Space settings: |
| - `OPENAI_API_KEY` (if using OpenAI models) |
| - `ANTHROPIC_API_KEY` (if using Anthropic models) |
|
|
| 4. Set Space SDK to **Gradio** |
|
|
| 5. The app will automatically deploy! |
|
|
| ## Usage |
|
|
| 1. Enter your chart instruction (e.g., "Create a plot comparing Q1 coffee sales in 2024 and 2025") |
| 2. Select models for generation (V1) and reflection (V2) |
| 3. Click "Generate Charts" |
| 4. Compare V1 and V2 charts side by side |
| 5. Review the reflection feedback and code |
|
|
| ## Dataset Schema |
|
|
| The coffee sales dataset includes: |
| - `date` (M/D/YY) |
| - `time` (HH:MM) |
| - `cash_type` (card or cash) |
| - `card` (string) |
| - `price` (number) |
| - `coffee_name` (string) |
| - `quarter` (1-4) - auto-derived |
| - `month` (1-12) - auto-derived |
| - `year` (YYYY) - auto-derived |
|
|
| ## Model Recommendations |
|
|
| - **Generation (V1)**: Fast models like `gpt-4o-mini` or `gpt-4o` |
| - **Reflection (V2)**: Strong reasoning models like `o1-mini`, `o1-preview`, or `claude-3-5-sonnet-20241022` |
|
|
| ## Requirements |
|
|
| - Python 3.8+ |
| - OpenAI API key OR Anthropic API key |
| - See `requirements.txt` for full dependency list |
|
|
| ## License |
|
|
| Educational project for demonstrating LLM agents with reflection pattern. |
|
|
| Note: |
| The code is from Deepleraning.ai Agnetic AI Course |
|
|