import gradio as gr import pandas as pd import os from traitlets import default from utilities import constants from summarization import summarization from translators import translate_pdf_to_text sample="" def Summary(code, samples): sum_messages,sum_text = summarization.SummarizeCompletion(code,sample) df = pd.DataFrame(sum_messages) return sum_text,df def InitDF(): global summaryDF summaryDF=pd.DataFrame({"role": [""], "content": [""] }) def UpdateWithSample(newSample): global sample sample=newSample if newSample=="None": sample = "" print("Sample: ",sample) def UpdateWithExample(newExample): fileName=newExample.replace(" ","_").lower() if os.path.exists(f"{constants.TXT_PREFIX}{fileName}.txt"): with open(f"{constants.TXT_PREFIX}{fileName}.txt", 'r') as file: return file.read() else: return translate_pdf_to_text.PreparePDF(f"{constants.PDF_PREFIX}{fileName}") with gr.Blocks() as ui: label = gr.Label(show_label=False, value=constants.SUMMARIZATION, container=False) with gr.Row(): with gr.Column(): gr.Markdown(constants.PURPOSE_MD) gr.Markdown(constants.SUMMARY_PURPOSE) with gr.Column(): gr.Markdown(constants.DIRECTIONS_MD) gr.Markdown(value=constants.SUMMARY_DIRECTIONS) #gr.Markdown(constants.SUMMARY_MD_SUBHEAD) with gr.Row(): with gr.Column(): code=gr.Textbox(label=constants.ORIGINAL_DOC, interactive=True, placeholder=constants.SUMMARY_MD_DIRECTIONS, lines=3) with gr.Column(): summary=gr.Textbox(label=constants.SUMMARY, value="",lines=3) gr.Markdown(constants.CODE_DOC_EXAMPLES_MD) with gr.Row(): examples = gr.Radio([constants.EX_1, constants.EX_2, constants.EX_3, constants.EX_4, constants.EX_7, constants.EX_8], show_label=False, info=constants.SUMMARIZE_INFO) gr.Markdown(constants.CODE_LANG_SAMPLES_MD) with gr.Row(): samples = gr.Radio([constants.SAMPLE_1, constants.SAMPLE_2, constants.SAMPLE_3, constants.SAMPLE_4, constants.SAMPLE_5,], show_label=False, info=constants.TRANSLATION_INFO) with gr.Row(): summarize=gr.Button(value=constants.SUMMARIZE, variant="primary") with gr.Row(): summaryDF=gr.DataFrame(type="pandas", value=pd.DataFrame({"role": [""], "content": [""] }), wrap=True, show_label=False, label=constants.OPENAI_LOG) summarize.click(Summary, inputs=[code,samples], outputs=[summary,summaryDF]) examples.input(UpdateWithExample,inputs=[examples], outputs=[code]) samples.input(UpdateWithSample,inputs=[samples]) InitDF()