|
|
import gradio as gr |
|
|
from gradio_spreadsheetcomponent import SpreadsheetComponent |
|
|
from dotenv import load_dotenv |
|
|
import os |
|
|
import pandas as pd |
|
|
|
|
|
def answer_question(file, question): |
|
|
if not file or not question: |
|
|
return "Please upload a file and enter a question." |
|
|
|
|
|
|
|
|
df = pd.read_excel(file.name) |
|
|
|
|
|
|
|
|
spreadsheet = SpreadsheetComponent(value=df) |
|
|
|
|
|
|
|
|
return spreadsheet.answer_question(question) |
|
|
|
|
|
with gr.Blocks() as demo: |
|
|
gr.Markdown("# Spreadsheet Question Answering") |
|
|
|
|
|
with gr.Row(): |
|
|
file_input = gr.File(label="Upload Spreadsheet", file_types=[".xlsx"]) |
|
|
question_input = gr.Textbox(label="Ask a Question") |
|
|
|
|
|
answer_output = gr.Textbox(label="Answer", interactive=False, lines=4) |
|
|
|
|
|
submit_button = gr.Button("Submit") |
|
|
submit_button.click(answer_question, inputs=[file_input, question_input], outputs=answer_output) |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
demo.launch() |
|
|
|