Understanding chatbot architecture and components