Medical-Bot / app.py
Sanchit2207's picture
Update app.py
3b85244 verified
import gradio as gr
import datetime
# Keywords and professional responses
topic_responses = {
"lonely": "It's completely natural to feel lonely at times. You're not alone — many people experience this. Would you like to talk about what's been going on recently?",
"heartbroken": "Heartbreak can be deeply painful. It's okay to grieve. Healing takes time, and I'm here to listen if you’d like to share more about it.",
"anxious": "Anxiety can feel overwhelming, but recognizing it is a strong first step. Would you like to explore grounding techniques or simply talk about what’s making you anxious?",
"depressed": "Feeling low can be incredibly hard. If you're feeling overwhelmed, speaking to a mental health professional can help. I’m also here to talk if you'd like.",
"not able to study": "Lack of focus can stem from stress, fatigue, or emotional strain. Do you want to break down your routine or talk about what's affecting your concentration?",
"lackin in physics": "Academic challenges are common, and it's okay to seek help. Would you like a study tip or a motivational push to get back on track?",
"suicidal": "I'm really sorry you're feeling this way. You're important and your life matters. Please seek immediate help from a professional or call a helpline in your area. You're not alone."
}
# Fallback generic emotional support
fallback_response = (
"Thank you for sharing that with me. Emotions can be difficult to navigate, but I'm here to listen and support you."
" Would you like to talk more about what's been on your mind lately?"
)
# Logging (for future upgrade with secure storage, optional)
def log_interaction(user_input, response):
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"[{timestamp}] User: {user_input}\nResponse: {response}\n")
# Chatbot response function
def mental_health_bot(user_input):
user_input_lower = user_input.lower()
for keyword, response in topic_responses.items():
if keyword in user_input_lower:
log_interaction(user_input, response)
return response
log_interaction(user_input, fallback_response)
return fallback_response
# Gradio interface
def build_interface():
with gr.Blocks(theme=gr.themes.Base(), title="Teen Mental Health Chatbot") as demo:
gr.Markdown("""
# 💬 Teen Mental Health Chatbot
This chatbot provides a safe, non-judgmental space for teenagers to talk about their feelings.
While it does not replace professional help, it can offer emotional support and understanding.
""")
chatbot = gr.Textbox(placeholder="How are you feeling today?", label="Your Message", lines=3)
output = gr.Textbox(label="Chatbot Response")
submit_btn = gr.Button("Send")
submit_btn.click(fn=mental_health_bot, inputs=chatbot, outputs=output)
gr.Markdown("""
> ⚠️ This is not a substitute for professional care. If you're in crisis, please contact a licensed therapist or a suicide prevention helpline in your region.
""")
return demo
# Run the chatbot
demo_app = build_interface()
demo_app.launch()