def __new__(cls, *args, model: ModelNames | None = None, client: Any = None, debug: bool = False, retry: int = 3):
        """
        Factory method that returns a DirectInstance object when initialized.
        
        Args:
            model: The LLM model to use (default: None)
            client: Optional custom client to use instead of creating a new one
            debug: Whether to enable debug mode
            retry: Number of retries for failed calls (default: 3)
            
        Returns:
            A DirectInstance object
            
        Raises:
            ValueError: If positional arguments are provided instead of using the named parameter 'model'
        """
        if args:
            raise ValueError(
                "Direct() does not accept positional arguments. Use named parameter 'model' instead.\n"
                "Example: Direct(model='openai/gpt-4o') instead of Direct('openai/gpt-4o')"
            )
            
        return DirectInstance(model, client, debug, retry)

        Factory method that returns a DirectInstance object when initialized.
        
        Args:
            model: The LLM model to use (default: None)
            client: Optional custom client to use instead of creating a new one
            debug: Whether to enable debug mode
            retry: Number of retries for failed calls (default: 3)
            
        Returns:
            A DirectInstance object
            
        Raises:
            ValueError: If positional arguments are provided instead of using the named parameter 'model'
        
src/upsonic/client/direct_llm_call/direct_llm_cal.py