input: 
  def autocomplete(input_text: str) -> List[str]:
      """Generate an autocomplete system that predicts words based on the input text.
      The function should:
      1. Generate word candidates from the input text.
      2. Filter the word candidates.
      3. Rank the filtered words and return the top 5 predictions.
      >>> autocomplete("hel")
      ['hello', 'help', 'held', 'helmet', 'helpful']
      >>> autocomplete("cat")
      ['cat', 'category', 'cats', 'catalog', 'catch']
      """
      # Generate the word candidates
      word_candidates = generate_candidates(input_text)
      # Filter the word candidates 
      filtered_words = filter_candidates(word_candidates)
      # Rank the words and return the top 5 
      sorted_words = rank_words(filtered_words)
      return sorted_words[:5]
  
output:     # Generate the word candidates
      word_candidates = [input_text + char for char in 'abcdefghijklmnopqrstuvwxyz']
      # Filter the word candidates 
      filtered_words = [word for word in word_candidates if word in WORD_DICT]
      # Rank the words and return the top 5 
      sorted_words = sorted(filtered_words, key=lambda word: WORD_DICT[word], reverse=True)
      return sorted_words[:5]