File size: 3,415 Bytes
f829271
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
08c989b
f829271
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import os
import streamlit as st
from autogen import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager

class MedicalAssistantAgent(AssistantAgent):
    def __init__(self, name="medical_assistant", llm_config=None):
        system_message = "You are a medical assistant. Provide medical remedies for diseases based on the user's symptoms, age, and gender."
        super().__init__(name=name, system_message=system_message, llm_config=llm_config)

class NutritionAssistantAgent(AssistantAgent):
    def __init__(self, name="nutrition_assistant", llm_config=None):
        system_message = "You are a nutrition assistant. Provide dietary advice and meal plans based on the user's nutritional needs and goals."
        super().__init__(name=name, system_message=system_message, llm_config=llm_config)

class PsychologicalAssistantAgent(AssistantAgent):
    def __init__(self, name="psychological_assistant", llm_config=None):
        system_message = "You are a psychological assistant. Provide mental health support and coping strategies based on the user's emotional state and experiences."
        super().__init__(name=name, system_message=system_message, llm_config=llm_config)

class MedicalUserProxyAgent(UserProxyAgent):
    def __init__(self, name="user_proxy", llm_config=None):
        super().__init__(name=name, llm_config=llm_config, human_input_mode="NEVER", max_consecutive_auto_reply=0, code_execution_config=False)


GROQAI_API_KEY = os.environ.get("GROQAI_API_KEY")
llm_config = {
    "model": "llama3-8b-8192",
    "api_key": GROQAI_API_KEY,
    "base_url": "https://api.groq.com/openai/v1"
}

medical_assistant = MedicalAssistantAgent(llm_config=llm_config)
nutrition_assistant = NutritionAssistantAgent(llm_config=llm_config)
psychological_assistant = PsychologicalAssistantAgent(llm_config=llm_config)

medical_user_proxy = MedicalUserProxyAgent()

st.title("Medical Assistance System")

disease = st.text_input("Please enter the disease or condition:")
symptoms = st.text_area("Please describe your symptoms:")
age = st.number_input("Please enter your age:", min_value=0, max_value=150, step=1)
gender = st.radio("Please select your gender:", options=["Male", "Female", "Other"])
medical_history = st.text_area("Please enter the diseases you have been previously diagnosed with:")

if st.button("Get Assistance"):
    user_message = (
        f"Disease or condition: {disease}\n"
        f"Symptoms: {symptoms}\n"
        f"Age: {age}\n"
        f"Gender: {gender}\n"
        f"Medical history: {medical_history}"
    )
    user_message_dict = {
        "Disease or condition": disease,
        "Symptoms": symptoms,
        "Age": age,
        "Gender": gender,
        "Medical history": medical_history
    }

    # st.empty()

    messages = {}
    for assistant in [medical_assistant, nutrition_assistant, psychological_assistant]:
        messages[assistant] = medical_user_proxy.initiate_chat(assistant, message=user_message)

    st.subheader("Medical Assistant Output:")
    for message in messages[medical_assistant].chat_history:
        st.write(message["content"])

    st.subheader("Nutrition Assistant Output:")
    for message in messages[nutrition_assistant].chat_history:
        st.write(message["content"])

    st.subheader("Psychological Assistant Output:")
    for message in messages[psychological_assistant].chat_history:
        st.write(message["content"])