src/models/struxgpt_v1.py [286:298]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if max_length is None:
            return [struct_item.convert_struct_output(hi=hi, fi=fi)]
        
        def _get_aspect_len(ai) -> int:
            return self.count_token(struct_item.aspects[ai].get_descs(merge=True))

        ## Dual Pointer
        res = []
        a1 = 0
        aspect_num = len(struct_item.aspects)
        assert aspect_num > 0
        while a1 < aspect_num:  # exit if a1 reaches the end aspect
            curr_len = _get_aspect_len(a1)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/models/struxgpt_v2.py [805:817]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if max_length is None:
            return [struct_item.convert_struct_output(hi=hi, fi=fi)]
        
        def _get_aspect_len(ai) -> int:
            return self.count_token(struct_item.aspects[ai].get_descs(merge=True))

        ## Dual Pointer && DFS
        res = []
        a1 = 0
        aspect_num = len(struct_item.aspects)
        assert aspect_num > 0
        while a1 < aspect_num:
            curr_len = _get_aspect_len(a1)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



