input: Write a function to create an AI-based chatbot in Python that can answer simple queries about a product or service. The function should use a predefined set of answers and generate responses based on the user's input. If the input question is not found in the predefined answers, the function should return a randomly selected response from a list of default responses. If the user inputs "Goodbye", the function should end the conversation. The function should have the following signature: generate_response(question:str) -> str.
  assert generate_response('What is XYZ?') == 'XYZ is a company that provides XYZ services.'
  assert generate_response('What does XYZ do?') == 'XYZ helps customers find solutions to their problems.'
  assert generate_response('Unknown question') == 'I am not sure I understand.'
  assert generate_response('Goodbye') == 'Goodbye'
output: def generate_response(question: str) -> str:
      predefined_answers = {
          'What is XYZ?': 'XYZ is a company that provides XYZ services.',
          'What does XYZ do?': 'XYZ helps customers find solutions to their problems.'
      }
      default_responses = ['I am not sure I understand.', 'Could you please rephrase that?', 'I do not have the answer to that.']
      
      if question == 'Goodbye':
          return 'Goodbye'
      elif question in predefined_answers:
          return predefined_answers[question]
      else:
          import random
          return random.choice(default_responses)