Spaces:
Runtime error
Runtime error
File size: 2,068 Bytes
cca61af 6a83df5 cca61af 6a83df5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import streamlit as st
import random
from constants import *
import tempfile
from get_graph import create_workflow
# Page config
st.set_page_config(
page_title="π₯ Medical Assistant",
page_icon="π₯",
layout="centered"
)
# Title
st.title(st_title)
st.markdown(st_markdown)
workflow = create_workflow()
if "messages" not in st.session_state:
st.session_state.messages = [
{"role": "assistant", "content": st_welcome_message}
]
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
if prompt := st.chat_input("Ask a medical question..."):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
with st.chat_message("assistant"):
with st.spinner(random.choice(spinner_messages)):
try:
result = workflow.invoke({
"question": prompt,
"answer": "",
"decision": ""
})
response = result['answer']
route_used = result.get('decision', 'Unknown')
if route_used == "EMERGENCY":
st.error(f"π¨ Emergency detected!")
elif route_used == "RAG":
st.info("π Using medical knowledge base")
else:
st.info("π¬ General response")
st.markdown(response)
except Exception as e:
error_msg = st_error_message
st.error(error_msg)
response = error_msg
st.error(f"Error: {str(e)}")
st.session_state.messages.append({"role": "assistant", "content": response})
with st.sidebar:
st.header("βΉοΈ Information")
st.write(sidebar_messages)
st.button("Clear Chat", on_click=lambda: st.session_state.pop("messages", None), help="Clear the chat history")
|