async def _apredict_with_props(self, text: str) -> str:
        """
        Asynchronously predict triples from text with properties.

        Args:
            text (str): The text to process.

        Returns:
            str: The predicted triples.

        """
        return await self.llm.apredict(
            self.extract_prompt,
            text=text,
            max_knowledge_triplets=self.max_triplets_per_chunk,
            allowed_entity_types=", ".join(self.allowed_entity_types)
            if len(self.allowed_entity_types or []) > 0
            else "No entity types provided, You are free to define them.",
            allowed_relation_types=", ".join(self.allowed_relation_types or [])
            if len(self.allowed_relation_types or []) > 0
            else "No relation types provided, You are free to define them.",
            allowed_entity_properties=", ".join(self.allowed_entity_props)
            if self.allowed_entity_props
            else "No entity properties provided, You are free to define them.",
            allowed_relation_properties=", ".join(self.allowed_relation_props)
            if self.allowed_relation_props
            else "No relation properties provided, You are free to define them.",
        )

        Asynchronously predict triples from text with properties.

        Args:
            text (str): The text to process.

        Returns:
            str: The predicted triples.

        
llama-index-core/llama_index/core/indices/property_graph/transformations/dynamic_llm.py