2seriescs's picture
Added app.py
b9857b9 verified
raw
history blame
No virus
1.62 kB
import torch
import gradio as gr
from transformers import pipeline
pipe = pipeline(
"question-answering",
model="deepset/roberta-base-squad2")
# Function to read the content of a file object
def read_file_content(file_obj):
"""
Reads the content of a file object and returns it.
Parameters:
file_obj (file object): The file object to read from.
Returns:
str: The content of the file.
"""
try:
with open(file_obj.name, 'r', encoding='utf-8') as file:
context = file.read()
return context
except Exception as e:
return f"An error occurred: {e}"
# Function to get the answer to a question from a file
def get_answer(file, question):
"""
Answers a question based on the content of a file.
Parameters:
file (file object): The file object containing the context.
question (str): The question to answer.
Returns:
str: The answer to the question.
"""
if not question or not file:
return "Please provide both a question and a file."
context = read_file_content(file)
answer = pipe(question=question, context=context)
return answer["answer"]
# Create the Gradio interface
demo = gr.Interface(fn=get_answer,
inputs=[gr.File(label="File Upload"), gr.Textbox(label="Prompt Input", lines=1)],
outputs=[gr.Textbox(label="Response", lines=1)],
title="@caesar-2series: Rag Application",
description="Retrieval Augmented Generation Questions-Answering Application")
# Launch the Gradio interface
demo.launch()