| 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." | |
| # Load the spreadsheet data | |
| df = pd.read_excel(file.name) | |
| # Create a SpreadsheetComponent instance | |
| spreadsheet = SpreadsheetComponent(value=df) | |
| # Use the component to answer the question | |
| 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() | |