Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from transformers import AutoTokenizer, AutoModelForQuestionAnswering | |
| model_name = "distilbert-base-uncased-distilled-squad" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForQuestionAnswering.from_pretrained(model_name) | |
| def answer_question(context, question): | |
| if not context or not question: | |
| return "Please provide both context and question." | |
| inputs = tokenizer(question, context, return_tensors="pt") | |
| with torch.no_grad(): | |
| outputs = model(**inputs) | |
| answer_start = torch.argmax(outputs.start_logits) | |
| answer_end = torch.argmax(outputs.end_logits) + 1 | |
| answer = tokenizer.convert_tokens_to_string( | |
| tokenizer.convert_ids_to_tokens( | |
| inputs["input_ids"][0][answer_start:answer_end] | |
| ) | |
| ) | |
| return f"Answer: {answer}" | |
| iface = gr.Interface( | |
| fn=answer_question, | |
| inputs=[ | |
| gr.Textbox(lines=8, label="Context"), | |
| gr.Textbox(lines=2, label="Question") | |
| ], | |
| outputs=gr.Textbox(label="Predicted Answer"), | |
| title="Extractive Question Answering", | |
| description="Ask a question based on the given context." | |
| ) | |
| if __name__ == "__main__": | |
| iface.launch() |