# Write your Python code here
def greet():
  print ("Hi")
  print ('I am AI Agent ')

def takeInput():
  userInput = input("I have : ")
  print(userInput)
  return userInput

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

  def generateResponse(self, prompt):
    # call openai api get response based on the prompt
    # oprnai url
    # oprmai key
    # make http call
    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):
    # call Gemini api get response based on the prompt
    # Gemini url
    # Geminii key
    # make http call
    return "This is a dummy response from " + self.model_name

class Practo_Tool:
  def __init__(self, model_name):
    self.model_name = model_name
  
  def useTool(self, input_val):
    # api uri
    # api key
    # http call
    print("using tool " + self.model_name + " with input " + input_val)


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

  def useTool(self, input_val):
    # api uri
    # api key
    # http call
    print("using tool " + self.model_name + " with input " + input_val)

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

  def giveAdvice(self, symptom):
    # llm = ChatGtp__LLM("gpt-4")
    response = self.llm.generateResponse("provide advice for the symptom: " + symptom)
    print(response)

    

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

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


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

  def decideToUseTool(self, response):
    #logic to decide whether to use tool based on response
    if "Visit doctor" in response.lower():
      return True
    return False


  def execute(self, symptom):
    response = self.llm.generateResponse("Provide advice for the symptom: " + symptom)

    print("Advice for " + symptom + ": " + response)

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

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

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



  chatMessages = []

  inquiryAgent = AutoAgent("AutoHealthBotGemini", Gemini_LLM("gemini-1"), Manager_Tool("MessangerAPI"))
  inquiryAgent.execute("Cough")

  advisorAgent = AutoAgent("AutoHealthBot", ChatGpt_LLM("gpt-4"), Practo_Tool("PractoAPI"))
  advisorAgent.execute("Fever")

  


greet()

name = "Ankit"
age = 19

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



# print("Hi")
# print(name)
# # print(symptomList)
# # print(symptomList{0})

# for symptom in symptomList:
#     if(symptom["priority"] == 2):
#         print(symptom["name"])
#         print(symptom["priority"])

symptom = takeInput()


llm = ChatGtp_LLM("gpt-4")
tool = Practo_Tool("PractoAPI")
agent = Agent("HealthBot1.0", llm, tool)
agent.giveAdvice(symptom)


print("Thank you for using our bot")