import google.generativeai as genai import streamlit as st from datetime import datetime
genai.configure(api_key='AIzaSyAcL3sC72__d6z2dDck1T9STZRlrSJbJ9A') model = genai.GenerativeModel('gemini-1.5-flash')
st.set_page_config( page_title="Medical Assistant", page_icon="π¨ββοΈ", layout="wide" )
st.title("π¨ββοΈ AI Medical Assistant") st.write("Get medical information and advice powered by Gemini AI")
st.warning("
if "messages" not in st.session_state: st.session_state.messages = []
medical_context = """ You are a helpful medical assistant AI. You can:
- Provide general medical information
- Explain medical terms
- Suggest healthy lifestyle tips
- Help understand symptoms
- Provide first aid information
Remember to:
- Always recommend consulting a healthcare provider for specific medical advice
- Never make definitive diagnoses
- Be clear about limitations
- Provide reliable, evidence-based information """
def get_medical_response(prompt): try: response = model.generate_content([medical_context, prompt]) return response.text except Exception as e: return f"Error: {str(e)}"
st.subheader("Medical Chat")
user_input = st.text_input("Describe your medical question or concern:", key="user_input")
if st.button("Send"): if user_input: # Add user message to chat history st.session_state.messages.append({"role": "user", "content": user_input, "timestamp": datetime.now()})
# Get AI response
ai_response = get_medical_response(user_input)
# Add AI response to chat history
st.session_state.messages.append({"role": "assistant", "content": ai_response, "timestamp": datetime.now()})
for message in st.session_state.messages: if message["role"] == "user": st.write(f"π€ You ({message['timestamp'].strftime('%H:%M')})") st.write(message["content"]) else: st.write(f"π¨ββοΈ Medical Assistant ({message['timestamp'].strftime('%H:%M')})") st.write(message["content"]) st.write("---")
st.sidebar.title("Quick Topics") quick_topics = [ "What are common cold symptoms?", "How to perform basic first aid?", "Tips for healthy sleep habits", "Understanding blood pressure readings", "Basic nutrition guidelines" ]
if st.sidebar.button("Clear Chat History"): st.session_state.messages = []
selected_topic = st.sidebar.selectbox("Select a topic:", quick_topics) if st.sidebar.button("Ask About Selected Topic"): # Add selected topic to chat st.session_state.messages.append({"role": "user", "content": selected_topic, "timestamp": datetime.now()}) ai_response = get_medical_response(selected_topic) st.session_state.messages.append({"role": "assistant", "content": ai_response, "timestamp": datetime.now()}) st.experimental_rerun()