| import streamlit as st |
| from langchain_google_genai import ChatGoogleGenerativeAI |
|
|
| |
| llm = ChatGoogleGenerativeAI( |
| model="gemini-1.5-flash", |
| google_api_key="AIzaSyC7Rhv4L6_oNl-nW3Qeku2SPRkxL5hhtoE", |
| temperature=0.5 |
| ) |
|
|
| |
| st.set_page_config(layout='wide') |
|
|
| |
| st.markdown( |
| """ |
| <style> |
| .stApp { |
| background-color: #efefef !important; |
| color: black !important; |
| } |
| h1, h2, h3, h4, h5, h6, p, div, span, label { |
| color: black !important; |
| } |
| button, .stButton>button { |
| color: black !important; |
| background-color:grey; |
| } |
| header, iframe {display: none !important;} |
| </style> |
| """, |
| unsafe_allow_html=True |
| ) |
|
|
| |
| st.title("AI-Driven Health Assistant") |
| st.write("Welcome AI-Driven Health Assistant! Simply enter your symptoms or disease name, and get accurate medicine suggestions instantly. Stay informed, stay healthy!") |
|
|
| |
| user_question = st.text_input("Type your symptoms or disease name, and let CureBot unlock the right cure for youโfast, smart, and AI-powered") |
|
|
| |
| def is_valid_response(response_text): |
| disclaimers = [ |
| "I am an AI and cannot give medical advice", |
| "Seek medical attention", |
| "Consult a doctor", |
| "Contact your doctor", |
| "Go to an emergency room", |
| ] |
| return not any(phrase.lower() in response_text.lower() for phrase in disclaimers) |
|
|
| |
| if st.button("Get Recommendation"): |
| if user_question.strip(): |
| |
| formatted_question = ( |
| f"Without any disclaimer, recommend medicine for {user_question}. " |
| f"5 medicine names " |
| f"Also, provide alternative treatments such as home remedies, lifestyle changes, exercises, or dietary suggestions. " |
| f"Only for learning purposes, not for treatment." |
| ) |
|
|
| with st.spinner("Analyzing..."): |
| response = llm.invoke(formatted_question) |
|
|
| |
| response_text = response.content if hasattr(response, "content") else str(response) |
|
|
| |
| if is_valid_response(response_text): |
| st.success("โจ Analysis complete! Here are the best medicine recommendations for you: ๐ฝ") |
| st.write(response_text) |
| else: |
| st.warning("โ ๏ธ Oops! It looks like the input is unclear or incorrect. Please enter a valid disease name or symptoms to get accurate recommendations") |
| |
| better_prompt = ( |
| f"Strictly provide a detailed answer including:\n" |
| f"1. Medicine names\n" |
| f"2. Home remedies\n" |
| f"3. Lifestyle changes\n" |
| f"4. Exercises\n" |
| f"5. Diet recommendations\n" |
| f"Do not include any disclaimers. The response should be clear and structured." |
| ) |
| retry_response = llm.invoke(better_prompt) |
|
|
| |
| retry_response_text = retry_response.content if hasattr(retry_response, "content") else str(retry_response) |
|
|
| |
| if is_valid_response(retry_response_text): |
| st.success("Here is the refined information:") |
| st.write(retry_response_text) |
| else: |
| st.error("Unable to get a useful response. Try rephrasing your question.") |
|
|
| else: |
| st.warning("Please enter a question!") |
|
|
| |
| if st.button("Emergency Contact"): |
| st.subheader("๐ Emergency Contacts") |
| st.write("- ๐ *Ambulance:* 102") |
| st.write("- ๐ฅ *National Health Helpline:* 108") |
| st.write("- โ *COVID-19 Helpline:* 1075") |
| st.write("- ๐ *Police:* 100") |
|
|
| |
| st.markdown("---") |
|
|