"""Convert a list of episode indices into a compact string representation.

This function takes a list of episode indices and returns a string that represents the indices in a compact, human-readable format. Consecutive indices are grouped into ranges, while non-consecutive indices are listed individually. Duplicate indices are handled by first deduplicating the list.

Args:
    episode_indices (List[int]): A list of episode indices to be converted into a compact string.

Returns:
    str: A compact string representation of the episode indices. If the input list is empty, returns "无".

Examples:
    >>> _generate_episode_range_string([1, 2, 3])
    '1-3'
    >>> _generate_episode_range_string([1, 3, 5])
    '1, 3, 5'
    >>> _generate_episode_range_string([1, 2, 3, 5, 8, 9, 10])
    '1-3, 5, 8-10'
    >>> _generate_episode_range_string([1, 2, 3, 5, 8, 9, 10, 12, 13, 14])
    '1-3, 5, 8-10, 12-14'
    >>> _generate_episode_range_string([1, 1, 2, 2, 3])
    '1-3'
"""