CoolFace
Apppublic

Mahbodez/knee_report_checklist

sourceHugging Faceopenrailupdated 3y agoView on Hugging Face
1likes
app.py88 linesDownload Raw Back to root
1import gradio as gr2import interface3import utils4import treegraph as tg5import logger as lg6import os7system_prompt = """8You are a critical AI radiology assistant.9You are helping a radiologist correctly fill out a radiology report.10The report is regarding a Knee MRI.11"""12username = os.environ.get("user")13passwd = os.environ.get("pass")14 15graph, nodes_dict = tg.build_tree_from_file("knee_template.json")16report_interface = interface.ReportChecklistInterface(17    llm=utils.LLM(model="gpt-3.5-turbo"),18    system_prompt=system_prompt,19    graph=graph,20    nodes_dict=nodes_dict,21)22logger = None23 24if report_interface.prime_model() is False:25    print("Model priming failed. Please try again.")26    exit()27else:28    print("Model priming successful.")29 30running = True31 32 33def check_report(report, name):34    global logger, report_interface35    if len(name.strip()) < 3:36        return "Please enter a name."37    else:38        logger = lg.Logger(log_file="log.txt")39        report_interface.logger = logger40        report_interface.username = name41    if running:42        results = report_interface.process_input(report)43        if results == "quit":44            quit_fn()45        elif results == "help":46            return report_interface.help_message47        elif results == "exception":48            return "An exception occurred. Please try again."49        else:50            return results51    else:52        return "Model has been stopped."53 54 55def quit_fn():56    global running57    running = False58    return "Model has been stopped."59 60 61with gr.Blocks(theme="soft") as demo:62    gr.Markdown("## Radiology Report Assistant")63    gr.Markdown(report_interface.help_message)64    name_textbox = gr.Textbox(label="Name")65 66    report_textbox = gr.TextArea(label="Report", lines=20, max_lines=50)67    with gr.Row():68        check_btn = gr.Button(69            value="Check Report",70        )71        clear_btn = gr.ClearButton(72            value="Clear Messages",73        )74        quit_btn = gr.Button(75            value="Quit",76        )77    results_textbox = gr.TextArea(label="Results", lines=20, max_lines=50)78    clear_btn.add([results_textbox, report_textbox])79 80    check_btn.click(81        fn=check_report,82        inputs=[report_textbox, name_textbox],83        outputs=[results_textbox],84    )85    quit_btn.click(fn=quit_fn, outputs=[results_textbox])86 87demo.launch(auth=(username, passwd))88