Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import pandas as pd | |
| from io import BytesIO | |
| from transformers import AutoTokenizer, AutoModelForTableQuestionAnswering, TableQuestionAnsweringPipeline | |
| # Load the tokenizer and model with "google/tapas-large-finetuned-wtq" | |
| tokenizer = AutoTokenizer.from_pretrained("google/tapas-large-finetuned-wtq") | |
| model = AutoModelForTableQuestionAnswering.from_pretrained("google/tapas-large-finetuned-wtq") | |
| # Initialize the TableQuestionAnsweringPipeline manually | |
| pipe = TableQuestionAnsweringPipeline(model=model, tokenizer=tokenizer) | |
| def answer_question(uploaded_file, question): | |
| # Convert the binary stream to a file-like object | |
| file_like = BytesIO(uploaded_file) | |
| # Read the uploaded file directly into a DataFrame | |
| df = pd.read_csv(file_like) | |
| # Convert all DataFrame elements to string, as TAPAS expects string inputs | |
| df = df.astype(str) | |
| # Use the pipeline to answer the question based on the table | |
| result = pipe({"table": df, "query": question}) | |
| # Format the answer before returning it | |
| answer = result['answer'] | |
| return answer | |
| logo_url = "https://i.ibb.co/Brr7bPP/xflow.png" | |
| # Define the Gradio app interface | |
| iface = gr.Interface( | |
| fn=answer_question, | |
| inputs=[gr.File(label="Upload CSV File", type="binary"), gr.Textbox(lines=2, placeholder="Ask a question...")], | |
| outputs=gr.Text(), | |
| title="Table-based Question Answering", | |
| description=f"\n\nUpload a CSV file and ask a question related to the data in the file." | |
| ) | |
| # Run the app | |
| iface.launch() | |