from abc import ABC, abstractmethod
# -----------------------------
# Base Agent
# -----------------------------
class Agent(ABC):
@abstractmethod
def process(self, query):
pass
# -----------------------------
# Specialized Agents
# -----------------------------
class AdmissionAgent(Agent):
def process(self, query):
return "Admission Agent: Admission starts in June. Required documents are 10th, 12th mark sheets and ID proof."
class ExamAgent(Agent):
def process(self, query):
return "Exam Agent: Semester exams begin in December. Exam timetable will be announced on the portal."
class FeesAgent(Agent):
def process(self, query):
return "Fees Agent: The annual tuition fee is ₹50,000. Fees can be paid online or at the accounts office."
class ScholarshipAgent(Agent):
def process(self, query):
return "Scholarship Agent: Scholarships are available based on merit and family income."
# -----------------------------
# Intent Classifier
# -----------------------------
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", "hall ticket"]):
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 aid", "grant"]):
return "scholarship"
else:
return "unknown"
# -----------------------------
# Response Agent
# -----------------------------
class ResponseAgent:
def __init__(self):
self.agents = {
"admission": AdmissionAgent(),
"exam": ExamAgent(),
"fees": FeesAgent(),
"scholarship": ScholarshipAgent()
}
def respond(self, intent, query):
if intent in self.agents:
return self.agents[intent].process(query)
return "Sorry, I couldn't understand your request."
# -----------------------------
# Main AI Agent System
# -----------------------------
class CollegeAIAgent:
def __init__(self):
self.classifier = IntentClassifier()
self.response_agent = ResponseAgent()
def chat(self, query):
intent = self.classifier.classify(query)
print(f"Detected Intent: {intent}")
response = self.response_agent.respond(intent, query)
return response
# -----------------------------
# Run Program
# -----------------------------
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)