def __init__(
        self,
        location: str = None,
        auto_dump: bool = True,
        logger: Logger = None,
        max_attempt: int = 5,
        exponential_backoff_factor: int = None,
        unit_wait_time: int = 60,
        **kwargs,
    ) -> None:
        """LLM Communication Client for Standard OpenAI endpoints.

        Args:
            location (str): The file location of the LLM client communication cache. No cache would be created if set to
                None. Defaults to None.
            auto_dump (bool): Automatically save the Client's communication cache or not. Defaults to True.
            logger (Logger): Client logger. Defaults to None.
            max_attempt (int): Maximum attempt time for LLM requesting. Request would be skipped if max_attempt reached.
                Defaults to 5.
            exponential_backoff_factor (int): Set to enable exponential backoff retry manner. Every time the wait time
                would be `exponential_backoff_factor ^ num_attempt`. Set to None to disable and use the `unit_wait_time`
                manner. Defaults to None.
            unit_wait_time (int): `unit_wait_time` would be used only if the exponential backoff mode is disabled. Every
                time the wait time would be `unit_wait_time * num_attempt`, with seconds (s) as the time unit. Defaults
                to 60.
            **kwargs: Additional arguments for OpenAI client initialization.
            yml config example:
            ...
                llm_client:
                    module_path: pikerag.llm_client
                    class_name: StandardOpenAIClient
                    args:{
                        api_key: <your_api_key>
                        base_url: <your_base_url>
                    }
            ...
        """
        super().__init__(location, auto_dump, logger, max_attempt, exponential_backoff_factor, unit_wait_time, **kwargs)

        client_configs = {
            "api_key": kwargs.get("api_key") or os.environ.get("OPENAI_API_KEY"),
            "base_url": kwargs.get("base_url") or os.environ.get("OPENAI_BASE_URL"),
        }
        self._client = OpenAI(**client_configs)
LLM Communication Client for Standard OpenAI endpoints.

        Args:
            location (str): The file location of the LLM client communication cache. No cache would be created if set to
                None. Defaults to None.
            auto_dump (bool): Automatically save the Client's communication cache or not. Defaults to True.
            logger (Logger): Client logger. Defaults to None.
            max_attempt (int): Maximum attempt time for LLM requesting. Request would be skipped if max_attempt reached.
                Defaults to 5.
            exponential_backoff_factor (int): Set to enable exponential backoff retry manner. Every time the wait time
                would be `exponential_backoff_factor ^ num_attempt`. Set to None to disable and use the `unit_wait_time`
                manner. Defaults to None.
            unit_wait_time (int): `unit_wait_time` would be used only if the exponential backoff mode is disabled. Every
                time the wait time would be `unit_wait_time * num_attempt`, with seconds (s) as the time unit. Defaults
                to 60.
            **kwargs: Additional arguments for OpenAI client initialization.
            yml config example:
            ...
                llm_client:
                    module_path: pikerag.llm_client
                    class_name: StandardOpenAIClient
                    args:{
                        api_key: <your_api_key>
                        base_url: <your_base_url>
                    }
            ...
        
pikerag/llm_client/standard_openai_api.py