File size: 1,050 Bytes
4fc79a4
ff768e2
 
4fc79a4
 
29f87f1
4fc79a4
 
69a028d
 
 
4fc79a4
69a028d
 
 
 
 
 
 
 
 
 
 
 
 
 
29f87f1
69a028d
 
 
 
4fc79a4
69a028d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import gradio as gr
import pandas as pd
import matplotlib.pyplot as plt
import io
import google.generativeai as genai
from PIL import Image

def process_file(api_key, file, instructions):
    # Configure Gemini API
    genai.configure(api_key=api_key)
    model = genai.GenerativeModel('gemini-2.5-pro-latest')

    # File handling with error prevention
    try:
        if file.name.endswith('.csv'):
            df = pd.read_csv(file.name)
        else:
            df = pd.read_excel(file.name)
    except Exception as e:
        return [f"File Error: {str(e)}"] * 3

    # Enhanced prompt template
    prompt = f"""Generate exactly 3 distinct matplotlib visualizations for:
    Columns: {list(df.columns)}
    Data types: {dict(df.dtypes)}
    Sample data: {df.head(3).to_dict()}
    
    Requirements:
    1. 1920x1080 resolution (figsize=(16,9), dpi=120)
    2. Professional styling (seaborn, grid, proper labels)
    3. Diverse chart types (include at least 1 advanced visualization)
    
    User instructions: {instructions or 'None provided