from abc import ABC , abstractmethod
class Agent(ABC):
@abstractmethod
def process(self,query):
pass
class AdmissionAgent(Agent):
def process(self,query):
return "Admission Agent: Admission starts in june. Required documents are 10th,12th mark sheet and ID proof"
class ExamAgent(Agent):
def process(self,query):
return "Exam Agent: semster exam begin in December.Exam timetable will be notify soon on the portal"
class FeesAgent(self,query):
def process(self,query):
return "Fess Agent: the annual tuition fee is rs 50.000.Fess can be the account office"
class ScholarshipAgent(self,query):
def process(self,query):
return "Scholarship Agent: scholarship are avaiable based on merit and family income"
class Intentclassifier:
def classify(self,query):
query = query.lower()
if any(word in query for word in ["admission","admit","apply","eligibility"]):
return "admission"
elif any(word in query for word in["exam","test","result","hallticket"]):
return "exam"
elif any(word in query for word in["fee","fees","payment","tuition"]):
return "fees"
elif any(word in query for word in["scholarship","financial","grant"]):
return "scholarship"
else:
return "unknown"
class ResponseAgent:
def __init__(self):
self.agents = {
"admission": AdmissionAgent(),"exam": ExamAgent(),"fees": FeesAgent(), "scholarship": ScholarshipAgent()
}
def respond(self,intent,query):
if intent in self.agent:
return self.agents[intent].process(query)
return "sorry,i could't understand your request."
class collegeAIAgent:
def __init__(self):
self.classifier = Intentclassifier()
self.response_agent = ResponseAgent()
def chat(self,query):
intent = self.classifier.classify(query)
print( f "Detectedb Intent :{Intent}")
response = self.response_agent.respond(intent,query)
return response
if ___name___ == "__main__";
bot = collegeAIAgent()
print("===college AI Agent===")
print ("type 'exit' to quit.\n")
while true:
user_input = input("you:")
if user_input.lower() == "exit":
print("Bot:thank you!")
break
reply = bot.chat(user_input)
print("Bot:",reply)