Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import interface | |
| import utils | |
| import treegraph as tg | |
| import logger as lg | |
| import os | |
| system_prompt = """ | |
| You are a critical AI radiology assistant. | |
| You are helping a radiologist correctly fill out a radiology report. | |
| The report is regarding a Knee MRI. | |
| """ | |
| username = os.environ.get("user") | |
| passwd = os.environ.get("pass") | |
| graph, nodes_dict = tg.build_tree_from_file("knee_template.json") | |
| report_interface = interface.ReportChecklistInterface( | |
| llm=utils.LLM(model="gpt-3.5-turbo"), | |
| system_prompt=system_prompt, | |
| graph=graph, | |
| nodes_dict=nodes_dict, | |
| ) | |
| logger = None | |
| if report_interface.prime_model() is False: | |
| print("Model priming failed. Please try again.") | |
| exit() | |
| else: | |
| print("Model priming successful.") | |
| running = True | |
| def check_report(report, name): | |
| global logger, report_interface | |
| if len(name.strip()) < 3: | |
| return "Please enter a name." | |
| else: | |
| logger = lg.Logger(log_file="log.txt") | |
| report_interface.logger = logger | |
| report_interface.username = name | |
| if running: | |
| results = report_interface.process_input(report) | |
| if results == "quit": | |
| quit_fn() | |
| elif results == "help": | |
| return report_interface.help_message | |
| elif results == "exception": | |
| return "An exception occurred. Please try again." | |
| else: | |
| return results | |
| else: | |
| return "Model has been stopped." | |
| def quit_fn(): | |
| global running | |
| running = False | |
| return "Model has been stopped." | |
| with gr.Blocks(theme="soft") as demo: | |
| gr.Markdown("## Radiology Report Assistant") | |
| gr.Markdown(report_interface.help_message) | |
| name_textbox = gr.Textbox(label="Name") | |
| report_textbox = gr.TextArea(label="Report", lines=20, max_lines=50) | |
| with gr.Row(): | |
| check_btn = gr.Button( | |
| value="Check Report", | |
| ) | |
| clear_btn = gr.ClearButton( | |
| value="Clear Messages", | |
| ) | |
| quit_btn = gr.Button( | |
| value="Quit", | |
| ) | |
| results_textbox = gr.TextArea(label="Results", lines=20, max_lines=50) | |
| clear_btn.add([results_textbox, report_textbox]) | |
| check_btn.click( | |
| fn=check_report, | |
| inputs=[report_textbox, name_textbox], | |
| outputs=[results_textbox], | |
| ) | |
| quit_btn.click(fn=quit_fn, outputs=[results_textbox]) | |
| demo.launch(auth=(username, passwd)) | |