", unsafe_allow_html=True)
st.markdown("Name: "+hospital_info['data']['hospital3'][0])
st.markdown("Address: "+hospital_info['data']['hospital3'][1]+" Phone Number:"+hospital_info['data']['hospital3'][2])
ssession= st.button("Book a session")
if ssession:
sendm()
#mailer.sendem("name","chathistory")
#mailer.sendem()
#if res==1:
st.success("Successfully booked a session, please check your email for further details")
def sendm():
new_data={
"User_name":st.session_state.user_name,
}
print("sendm called")
url_post = "http://localhost:8088/maill"
post_response = requests.post(url_post, json=new_data)
#response_json = post_response.json()
# return #response_json
def text_to_speech(input_text):
response = client.audio.speech.create(
model="tts-1",
voice="nova",
input=input_text
)
webm_file_path = "temp_audio_play.mp3"
with open(webm_file_path, "wb") as f:
response.stream_to_file(webm_file_path)
return webm_file_path
def autoplay_audio(file_path: str):
with open(file_path, "rb") as f:
data = f.read()
b64 = base64.b64encode(data).decode("utf-8")
md = f"""
"""
st.markdown(md, unsafe_allow_html=True)
def sendinput(question,avatar, audio_output=False):
with st.chat_message("user",avatar=st.session_state.userimg):
st.markdown(question)
st.session_state.messages.append({"role": "user", "content": question,"avatar":st.session_state.userimg})
response = generate_response(question, int(st.session_state.v1))
answer = response['data']['Answer']
if audio_output == True:
audio_file = text_to_speech(answer)
autoplay_audio(audio_file)
os.remove(audio_file)
full_response = ""
with st.chat_message("assistant",avatar=avatar):
message_placeholder = st.empty()
for chunk in answer.split():
full_response += chunk + " "
time.sleep(0.05)
message_placeholder.markdown(full_response + "▌")
message_placeholder.markdown(full_response)
if(response['data']['Source1']!=""):
st.info(response['data']['Source1'])
st.info(response['data']['Source2'])
follow = response['data']['Followup']
#follow="Follow up question:"+follow
st.success("**Follow up question:**")
st.success(follow)
st.session_state.messages.append({"role": "assistant", "content": answer,"avatar":st.session_state.img})
def chat_page():
# Create messages list in sessionstate
if "messages" not in st.session_state:
st.session_state.messages = []
if "help" not in st.session_state:
st.session_state.help = []
## Print messages from chat history on rerun
for message in st.session_state.messages:
with st.chat_message(message["role"],avatar=message["avatar"]):
st.markdown(message["content"])
if st.sidebar.button("Start Audio Input"):
audio_output = True
with st.spinner("Listening..."):
recognized_text = voicetotext.listen()
sendinput(recognized_text,st.session_state.img, audio_output)
var = "Ask a mental health question..."
if a := st.chat_input(var):
sendinput(a,st.session_state.img)
def main():
st.title("MindEase")
if "user_name" not in st.session_state:
st.session_state.user_name = ""
if "user_phone" not in st.session_state:
st.session_state.user_phone = ""
if "user_email" not in st.session_state:
st.session_state.user_email = ""
if "pincode" not in st.session_state:
st.session_state.pincode = ""
if "userimg" not in st.session_state:
st.session_state.userimg="./assets/img.png"
if "language" not in st.session_state:
st.session_state.language="English"
page=createside()
# st.sidebar.button("Flag content")
if page == "User info":
user_detail = getdetail()
if (user_detail[0] and user_detail[1] and user_detail[2] and user_detail[3] and user_detail[4]):
st.session_state.user_name = user_detail[0]
st.session_state.user_phone = user_detail[1]
st.session_state.user_email = user_detail[2]
st.session_state.pincode = user_detail[3]
st.session_state.language=user_detail[4]
elif page == "Chat":
if (st.session_state.user_phone!=""):
chat_page()
else:
st.warning("Please enter your details first on the 'User info' page.")
elif page == "Services": # Add a new condition for "Help Services"
services_page()
if __name__ == "__main__":
main()