bluenevus commited on
Commit
bfc4e12
·
verified ·
1 Parent(s): 54eaa7e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -13
app.py CHANGED
@@ -1,10 +1,5 @@
1
- import gradio as gr
2
- import pandas as pd
3
- import matplotlib.pyplot as plt
4
- import io
5
- import google.generativeai as genai
6
 
7
- # Function to process the file and generate visualizations
8
  def process_file(api_key, file, instructions):
9
  # Set up Gemini API
10
  genai.configure(api_key=api_key)
@@ -26,27 +21,28 @@ def process_file(api_key, file, instructions):
26
  response = model.generate_content(prompt)
27
  suggestions = response.text.split('\n')
28
 
29
- # Generate visualizations (placeholder - you'll need to implement actual visualization logic)
30
  visualizations = []
31
  for i, suggestion in enumerate(suggestions[:3]):
32
- plt.figure()
33
  plt.title(f"Visualization {i+1}")
34
- plt.text(0.5, 0.5, suggestion, ha='center', va='center')
35
  buf = io.BytesIO()
36
  plt.savefig(buf, format='png')
37
  buf.seek(0)
38
- visualizations.append(buf)
 
 
39
 
40
  return visualizations
41
 
42
- # Gradio interface
43
  with gr.Blocks() as demo:
44
  gr.Markdown("Data Visualization with Gemini")
45
  api_key = gr.Textbox(label="Enter Gemini API Key")
46
  file = gr.File(label="Upload Excel or CSV file")
47
  instructions = gr.Textbox(label="Optional visualization instructions")
48
  submit = gr.Button("Generate Visualizations")
49
- progress = gr.Progress()
50
  outputs = [gr.Image(label=f"Visualization {i+1}") for i in range(3)]
51
 
52
  submit.click(
@@ -55,4 +51,4 @@ with gr.Blocks() as demo:
55
  outputs=outputs
56
  )
57
 
58
- demo.launch()
 
1
+ import base64
 
 
 
 
2
 
 
3
  def process_file(api_key, file, instructions):
4
  # Set up Gemini API
5
  genai.configure(api_key=api_key)
 
21
  response = model.generate_content(prompt)
22
  suggestions = response.text.split('\n')
23
 
24
+ # Generate visualizations
25
  visualizations = []
26
  for i, suggestion in enumerate(suggestions[:3]):
27
+ plt.figure(figsize=(10, 6))
28
  plt.title(f"Visualization {i+1}")
29
+ plt.text(0.5, 0.5, suggestion, ha='center', va='center', wrap=True)
30
  buf = io.BytesIO()
31
  plt.savefig(buf, format='png')
32
  buf.seek(0)
33
+ img_str = base64.b64encode(buf.getvalue()).decode()
34
+ visualizations.append(f"data:image/png;base64,{img_str}")
35
+ plt.close()
36
 
37
  return visualizations
38
 
39
+ # Update the Gradio interface
40
  with gr.Blocks() as demo:
41
  gr.Markdown("Data Visualization with Gemini")
42
  api_key = gr.Textbox(label="Enter Gemini API Key")
43
  file = gr.File(label="Upload Excel or CSV file")
44
  instructions = gr.Textbox(label="Optional visualization instructions")
45
  submit = gr.Button("Generate Visualizations")
 
46
  outputs = [gr.Image(label=f"Visualization {i+1}") for i in range(3)]
47
 
48
  submit.click(
 
51
  outputs=outputs
52
  )
53
 
54
+ demo.launch(share=True)