def generate_struct()

in src/models/struxgpt_v2.py [0:0]


    def generate_struct(self, raw_query: str, timeout: int = 3, verbose=False) -> "StructItem":
        generate_params = {
            "temperature": 0.2 if timeout > 1 else 0.0,
            "maxWindowSize": 4096,
            "maxOutputLength": 2048,
            "system": self.prompt_system,
        }
        prompt = self.prepare_prompt(raw_query, input_sent_enum=True)

        for _ in range(timeout):
            try:
                response = self.call_model(prompt, **generate_params)
                struct_res = StructItem(self.scfg, raw_query, response, single_sent_ok=True)
                assert struct_res.valid
                if verbose:
                    print('Successfully refined structurization result.')
                return struct_res
            except:
                if verbose:
                    print('Failed to structurize. Try again.')
                # print(f'##Response\n{response}\n\n')
                # exit()
        
        if verbose:
            print('Structurization timeout. Downgrade to summatization.')
        return self.lazzy_struct_by_sum(raw_query, return_json=False)