|
|
--- |
|
|
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 |
|
|
|