Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline | |
import chardet | |
# Initialize the question-answering pipeline | |
#qa_pipeline = pipeline("question-answering",model="deepset/roberta-base-squad2") | |
qa_pipeline = pipeline("question-answering", model="distilbert-base-cased-distilled-squad") | |
def answer_question(context, question): | |
result = qa_pipeline(question=question, context=context) | |
return result['answer'] | |
def process(context_file, question): | |
# Read the context from the uploaded file | |
with open(context_file.name, 'rb') as file: | |
raw_data = file.read() | |
result = chardet.detect(raw_data) | |
encoding = result['encoding'] | |
# Fallback to a default encoding if detection fails | |
if encoding is None: | |
encoding = 'utf-8' # Default encoding | |
context = raw_data.decode(encoding, errors='replace') # Replace errors with a placeholder | |
answer = answer_question(context, question) | |
return answer | |
# Example context file content | |
example_context = """Saudi Arabia, officially known as the Kingdom of Saudi Arabia (KSA), is a country in Western Asia. Riyadh is its capital and largest city. The country is known for its vast deserts and rich cultural heritage.""" | |
# Save example context to a file | |
with open("example_context.txt", "w", encoding="utf-8") as f: | |
f.write(example_context) | |
# Gradio interface | |
demo = gr.Interface( | |
fn=process, | |
inputs=[ | |
gr.File(label="Upload Context File", file_types=[".txt"]), | |
gr.Textbox(label="Question", value="What is the capital city of Saudia Arabia?") | |
], | |
outputs=[gr.Textbox(label="Answer")], | |
title="Question Answering", | |
description="Upload a file with context and ask a question. The answer will be displayed.", | |
examples=[["example_context.txt", "What is the capital city of Saudia Arabia?"]] | |
) | |
if __name__ == "__main__": | |
demo.launch() | |