healthguide / app.py
Muhammadtaha12's picture
Update app.py
c934db1 verified
raw
history blame
4.72 kB
import streamlit as st
from groq import Groq
# Define the Groq API Key
GROQ_API_KEY = "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"
# Initialize Groq Client using the API key
client = Groq(api_key=GROQ_API_KEY)
# Disease and Treatment Information Data
diseases_info = {
"flu": {
"symptoms": ["fever", "cough", "sore throat", "body aches", "fatigue"],
"treatment": "Rest, fluids, pain relievers, and anti-viral medications if prescribed.",
},
"headache": {
"symptoms": ["head pain", "nausea", "sensitivity to light"],
"treatment": "Rest, hydration, over-the-counter painkillers, and avoid triggers.",
},
"diabetes": {
"symptoms": ["increased thirst", "frequent urination", "fatigue", "blurred vision"],
"treatment": "Insulin therapy, lifestyle changes, and dietary management.",
},
"cold": {
"symptoms": ["sore throat", "runny nose", "cough", "sneezing", "mild body aches"],
"treatment": "Rest, hydration, decongestants, and over-the-counter pain relief.",
},
"asthma": {
"symptoms": ["shortness of breath", "wheezing", "chest tightness", "coughing"],
"treatment": "Inhalers, bronchodilators, corticosteroids, and avoiding triggers.",
},
"hypertension": {
"symptoms": ["headaches", "dizziness", "shortness of breath", "nosebleeds"],
"treatment": "Medications like beta-blockers, ACE inhibitors, lifestyle changes including exercise and diet.",
},
"arthritis": {
"symptoms": ["joint pain", "swelling", "stiffness", "reduced range of motion"],
"treatment": "Pain relievers, anti-inflammatory drugs, physical therapy, and joint protection.",
},
"covid-19": {
"symptoms": ["fever", "dry cough", "fatigue", "loss of taste or smell", "shortness of breath"],
"treatment": "Rest, fluids, over-the-counter medications, and antiviral drugs if prescribed.",
},
"anxiety": {
"symptoms": ["excessive worry", "restlessness", "fatigue", "difficulty concentrating", "irritability"],
"treatment": "Cognitive-behavioral therapy (CBT), medications like SSRIs, relaxation techniques.",
},
"depression": {
"symptoms": ["persistent sadness", "loss of interest", "fatigue", "changes in appetite or sleep patterns"],
"treatment": "Antidepressants, therapy (CBT), exercise, and social support.",
},
"migraine": {
"symptoms": ["severe headache", "nausea", "sensitivity to light and sound"],
"treatment": "Prescription medications, rest in a dark room, and lifestyle adjustments.",
},
"eczema": {
"symptoms": ["itchy skin", "red rashes", "dry skin", "cracked or scaly patches"],
"treatment": "Moisturizers, corticosteroid creams, antihistamines, and avoiding irritants.",
},
}
# Function to display disease info
def display_disease_info(disease_name):
disease_name = disease_name.lower().replace(" ", "_")
if disease_name in diseases_info:
disease = diseases_info[disease_name]
result = f"**Disease:** {disease_name.replace('_', ' ').title()}\n"
result += f"**Symptoms:** {', '.join(disease['symptoms'])}\n"
result += f"**Treatment:** {disease['treatment']}"
return result
else:
return "Sorry, no information available for this disease."
# Function to interact with Groq API for Chat Bot
def chat_bot(user_input):
try:
chat_completion = client.chat.completions.create(
messages=[{"role": "user", "content": user_input}],
model="llama-3.3-70b-versatile",
)
return chat_completion.choices[0].message.content
except Exception as e:
return f"Error: Unable to process your request. {str(e)}"
# Streamlit App Interface
def main():
# Title of the app
st.title("Health Guide Chat Bot")
# Disease Input
disease_name = st.text_input("Enter Disease Name", "")
if disease_name:
st.subheader("Disease Information")
disease_info = display_disease_info(disease_name)
st.text_area("Disease Info", disease_info, height=150)
# Chat Bot Section
st.subheader("Chat with Bot")
user_input = st.text_input("Enter a Message for the Chat Bot", "")
if user_input:
response = chat_bot(user_input)
st.text_area("Chat Bot Response", response, height=100)
# Add instructions
st.markdown(
"""
- **Enter a disease name** in the input box to get information about symptoms and treatments.
- **Chat with the bot** to get general health advice or answers to your questions.
"""
)
# Run the app
if __name__ == "__main__":
main()