import gradio as gr import os from functools import partial from get_answer import get_answer from logs import save_logs import gdown from config import folder_id, json_url_id download_url = f'https://drive.google.com/uc?id={json_url_id}' output = 'secret_google_service_account.json' gdown.download(download_url, output, quiet=False) sys_prompt = """You are an experimental AI-copilot for doctors. They will check your outputs You will be given by the doctor patient data input and your role will be to determine the most probable diagnose. You will include all relevant literature backup and references needed and a whole reasoning path of why you think it is. Reasoning should be based on medical literature, socio environmental factors, sources. Be very professional and redact as a health practitioner. Your response should reflect a full path to diagnose. You format our output in the best way possible to make it as it this tool is more than simply chatgpt. """ def stream(query): resp = get_answer(query) answer = "" for chunk in resp: if chunk.choices[0].delta.content is not None: answer = answer + chunk.choices[0].delta.content yield answer # save_logs(query, answer, folder_id=folder_id) title = "" with gr.Blocks(title=title,theme='nota-ai/theme',css="footer {visibility: hidden}") as demo: gr.Markdown(f"## {title}") with gr.Row(): with gr.Column(scale=6): with gr.Row(): with gr.Column(scale=3): chat_submit_button = gr.Button(value="Submit ▶") with gr.Accordion("config", open=False, visible=False): prompt = gr.Textbox(value=sys_prompt, lines=15, label="prompt", visible=False) url_input = gr.Textbox(placeholder="Age, medical results", lines=15, label="Input patient data") with gr.Column(scale=6): compliance_output = gr.Markdown("Waiting for patient data...") fn_chat = get_answer chat_submit_button.click(fn=fn_chat, inputs=[url_input, prompt], outputs=[compliance_output]) demo.launch(max_threads=40)