def greet():
    print("hi")
    print('This is AI Agent Workshop')


def takeInput():
    userInput = input("Enter your symptom:")
    print(userInput)
    return userInput


class ChatGpt_LLM:
    def __init__(self, model_name):
        self.model_name = model_name

    def generateResponse(self, prompt):
        return "This is a dummy response from " + self.model_name


class Gemini_LLM:
    def __init__(self, model_name):
        self.model_name = model_name

    def generateResponse(self, prompt):
        return "This is a dummy response from " + self.model_name


class Practo_Tool:
    def __init__(self, name):
        self.name = name

    def useTool(self, input):
        print("Using tool: " + self.name + " with input " + input)


class Messanger_Tool:
    def __init__(self, name):
        self.name = name

    def useTool(self, input):
        print("Using tool: " + self.name + " with input " + input)


class Agent:
    def __init__(self, name, llm, tool):
        self.name = name
        self.llm = llm
        self.tool = tool

    def giveAdvice(self, symptom):
        response = self.llm.generateResponse("Please provide advice for the symptom: " + symptom)
        print("Advice for " + symptom + ": " + response)

    def takeAction(self, input):
        self.tool.useTool(input)

    def giveAdviceAndTakeAction(self, symptom):
        self.giveAdvice(symptom)
        self.takeAction(symptom)


class AutoAgent:
    def __init__(self, name, llm, tool, prompt):
        self.name = name
        self.llm = llm
        self.tool = tool
        self.prompt = prompt

    def decideToUseTool(self, response):
        return "severe" in response

    def execute(self):
        response = self.llm.generateResponse(self.prompt)
        print(self.name + " says: " + response)

        if self.decideToUseTool(response):
            self.tool.useTool(response)
        else:
            print("No action needed for " + self.name)


chatMessages = []

inquiryAgent = AutoAgent(
    "AutoHealthbot",
    ChatGpt_LLM("gpt-4"),
    Messanger_Tool("MessangerAPI"),
    "Ask questions to understand the problem in detail" + "\n".join(chatMessages),
)
inquiryAgent.execute()

advisorAgent = AutoAgent(
    "AutoHealthbotGemini",
    Gemini_LLM("Gemini-1"),
    Practo_Tool("PractoAPI"),
    "Provide advice for the problem: " + "\n".join(chatMessages),
)
advisorAgent.execute()


class Manager:
    def __init__(self, name, agents):
        self.name = name
        self.agents = agents

    def coordinate(self, symptom):
        for agent in self.agents:
            agent.execute()


greet()

name = "RAMESH"
age = 30

symptomList = [
    {"name": "cough", "severity": "mild", "duration": "2 days", "priority": 1},
    {"name": "fever", "severity": "high", "duration": "5 days", "priority": 2},
    {"name": "Fever", "severity": "high", "duration": "5 days", "priority": 2},
    {"name": "Headache", "severity": "low", "duration": "1 day", "priority": 2},
]

symptom = takeInput()

# Simple agent
llm = ChatGpt_LLM("gpt-4")
tool = Practo_Tool("PractoAPI")
agent = Agent("Healthbot1.0", llm, tool)
agent.giveAdvice(symptom)

print("Thank you for using our bot")