Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from setup_database import get_document_store, add_data | |
| from setup_modules import create_retriever, create_readers_and_pipeline, text_reader_types, table_reader_types | |
| document_index = "document" | |
| document_store = get_document_store(document_index) | |
| filenames = ["processed_website_tables","processed_website_text","processed_schedule_tables"] | |
| document_store, data = add_data(filenames, document_store, document_index) | |
| document_store, retriever = create_retriever(document_store) | |
| text_reader_type = text_reader_types['deberta-large'] | |
| table_reader_type = table_reader_types['tapas'] | |
| pipeline = create_readers_and_pipeline(retriever, text_reader_type, table_reader_type, True, True) | |
| title = "Welcome to the BounWiki: The Question Answering Engine for Bogazici Students!" | |
| head = ''' | |
| This engine uses information from the Bogazici University Website to answer questions about different areas such as: | |
| - Semester Dates (e.g. Registration Period, Add/Dropp Period...) | |
| - Campus buildings and their locations | |
| - General Uni Information, like Busses from Uni, Taxi-Numbers | |
| - Schedule Information for all courses | |
| It returns the top 3 results and assigns each of them a confidence score which makes it easier to estimate if a given answer can be relied upon. | |
| You can click on one of the examples below to get started. Have fun! | |
| ''' | |
| article = ''' | |
| # How does this work? | |
| This App uses an "MPNet" sentence-transformer to encode information from the website into an embedding space. | |
| When faced with a query, the semantically most similar document is retrieved. | |
| A text and a table language model ("Deberta-large" and "Tapas" here) extract the answers to the original question from the respective document and return them to the interface | |
| For a more detailed description of the workings of this model, please refer to the full report, which is hosted on GitHub (https://github.com/LeoGitGuy/Bounwiki/blob/main/BounWiki.pdf) | |
| ''' | |
| #examples = ["When is the add/dropp period?", "What does it mean if instructor consent is required?", "Where is the english preparatory unit located?"] | |
| examples = [ | |
| ["When is the add/dropp period?"], | |
| ["What does it mean if instructor consent is required?"], | |
| ["Where is the english preparatory unit located?"], | |
| ] | |
| label = gr.outputs.Label(num_top_classes=3) | |
| def predict(input): | |
| prediction = pipeline.run( | |
| query=input, params={"top_k": 3} | |
| ) | |
| return {a.answer: float(a.score) for a in prediction["answers"]} | |
| interface = gr.Interface(fn=predict, inputs=gr.Textbox(lines=5, max_lines=6, label="Input Text"), outputs=label, title=title, description=head, article=article, examples=examples) | |
| interface.launch() |