tykiww's picture
Update app.py
3c42f73 verified
raw
history blame
2.44 kB
###########################
# UI for Meeting RAG Q&A. #
###########################
##################### Imports #####################
import gradio as gr
from utilities.setup import get_files
from server import EmbeddingService, QAService
import os
os.system("pip freeze")
#################### Functions ####################
def process_transcripts(files, context):
print(files)
with EmbeddingService(conf) as e:
f = e.run(files)
# some way to wait or a progress bar?
return "Completed Loading Data"
def retrieve_answer(question):
with QAService(conf) as q:
q.run(question)
answer = retriever.answer()
return answer
##################### Process #####################
def main(conf):
with gr.Blocks() as demo:
# Main page
with gr.TabItem(conf["layout"]["page_names"][0]):
gr.Markdown(get_files.load_markdown_file(conf["layout"]["about"]))
# User config page
with gr.TabItem(conf["layout"]["page_names"][1]):
gr.Markdown("# Upload Transcript and Necessary Context")
gr.Markdown("Please wait as the transcript is being processed.")
load_file = gr.UploadButton(label="Upload Transcript (.vtt)",
file_types=[".vtt"],
file_count='multiple')
goals = gr.Textbox(label="Goals for the Meeting",
value=conf["defaults"]["goals"]) # not incorporated yet. Will be with Q&A.
repository = gr.Textbox(label="Progress", value="Waiting for load...", visible=True)
load_file.upload(process_transcripts, [load_file, goals], repository)
# Meeting Question & Answer Page
with gr.TabItem(conf["layout"]["page_names"][2]):
question = gr.Textbox(label="Ask a Question",
value=conf["defaults"]["question"])
ask_button = gr.Button("Ask!")
model_output = gr.components.Textbox(label="Answer")
ask_button.click(fn=retrieve_answer,
inputs=question,
outputs=model_output)
demo.launch()
##################### Execute #####################
if __name__ == "__main__":
# Get config
conf = get_files.json_cfg()
main(conf)