def __init__(
        self,
        endpoint: str,
        auth: Optional[Dict[str, Any]] = None,
        model: Optional[str] = DEFAULT_MODEL,
        temperature: Optional[float] = DEFAULT_TEMPERATURE,
        max_tokens: Optional[int] = DEFAULT_MAX_TOKENS,
        context_window: Optional[int] = DEFAULT_CONTEXT_WINDOW,
        timeout: Optional[float] = DEFAULT_TIMEOUT,
        max_retries: Optional[int] = DEFAULT_MAX_RETRIES,
        additional_kwargs: Optional[Dict[str, Any]] = None,
        callback_manager: Optional[CallbackManager] = None,
        is_chat_model: Optional[bool] = True,
        is_function_calling_model: Optional[bool] = True,
        default_headers: Optional[Dict[str, str]] = None,
        # base class
        system_prompt: Optional[str] = None,
        messages_to_prompt: Optional[Callable[[Sequence[ChatMessage]], str]] = None,
        completion_to_prompt: Optional[Callable[[str], str]] = None,
        pydantic_program_mode: PydanticProgramMode = PydanticProgramMode.DEFAULT,
        output_parser: Optional[BaseOutputParser] = None,
        strict: bool = False,
        **kwargs,
    ) -> None:
        """
        Initialize the OCIDataScience LLM class.

        Args:
            endpoint (str): The URI of the endpoint from the deployed model.
            auth (Optional[Dict[str, Any]]): Authentication dictionary for OCI API requests.
            model (Optional[str]): The model name to use. Defaults to `odsc-llm`.
            temperature (Optional[float]): Controls the randomness in generation.
            max_tokens (Optional[int]): Number of tokens to predict per generation.
            context_window (Optional[int]): Maximum number of context tokens for the model.
            timeout (Optional[float]): Timeout for API requests in seconds.
            max_retries (Optional[int]): Maximum number of API retries.
            additional_kwargs (Optional[Dict[str, Any]]): Additional parameters for the API request.
            callback_manager (Optional[CallbackManager]): Callback manager for LLM.
            is_chat_model (Optional[bool]): If the model exposes a chat interface. Defaults to `True`.
            is_function_calling_model (Optional[bool]): If the model supports function calling messages. Defaults to `True`.
            default_headers (Optional[Dict[str, str]]): The default headers for API requests.
            system_prompt (Optional[str]): System prompt to use.
            messages_to_prompt (Optional[Callable]): Function to convert messages to prompt.
            completion_to_prompt (Optional[Callable]): Function to convert completion to prompt.
            pydantic_program_mode (PydanticProgramMode): Pydantic program mode.
            output_parser (Optional[BaseOutputParser]): Output parser for the LLM.
            strict (bool): Whether to use strict mode for invoking tools/using schemas.
            **kwargs: Additional keyword arguments.

        """
        super().__init__(
            endpoint=endpoint,
            model=model,
            auth=auth,
            temperature=temperature,
            context_window=context_window,
            max_tokens=max_tokens,
            timeout=timeout,
            max_retries=max_retries,
            additional_kwargs=additional_kwargs or {},
            callback_manager=callback_manager or CallbackManager([]),
            is_chat_model=is_chat_model,
            is_function_calling_model=is_function_calling_model,
            default_headers=default_headers,
            system_prompt=system_prompt,
            messages_to_prompt=messages_to_prompt,
            completion_to_prompt=completion_to_prompt,
            pydantic_program_mode=pydantic_program_mode,
            output_parser=output_parser,
            strict=strict,
            **kwargs,
        )

        self._client: Client = None
        self._async_client: AsyncClient = None

        logger.debug(
            f"Initialized OCIDataScience LLM with endpoint: {self.endpoint} and model: {self.model}"
        )

        Initialize the OCIDataScience LLM class.

        Args:
            endpoint (str): The URI of the endpoint from the deployed model.
            auth (Optional[Dict[str, Any]]): Authentication dictionary for OCI API requests.
            model (Optional[str]): The model name to use. Defaults to `odsc-llm`.
            temperature (Optional[float]): Controls the randomness in generation.
            max_tokens (Optional[int]): Number of tokens to predict per generation.
            context_window (Optional[int]): Maximum number of context tokens for the model.
            timeout (Optional[float]): Timeout for API requests in seconds.
            max_retries (Optional[int]): Maximum number of API retries.
            additional_kwargs (Optional[Dict[str, Any]]): Additional parameters for the API request.
            callback_manager (Optional[CallbackManager]): Callback manager for LLM.
            is_chat_model (Optional[bool]): If the model exposes a chat interface. Defaults to `True`.
            is_function_calling_model (Optional[bool]): If the model supports function calling messages. Defaults to `True`.
            default_headers (Optional[Dict[str, str]]): The default headers for API requests.
            system_prompt (Optional[str]): System prompt to use.
            messages_to_prompt (Optional[Callable]): Function to convert messages to prompt.
            completion_to_prompt (Optional[Callable]): Function to convert completion to prompt.
            pydantic_program_mode (PydanticProgramMode): Pydantic program mode.
            output_parser (Optional[BaseOutputParser]): Output parser for the LLM.
            strict (bool): Whether to use strict mode for invoking tools/using schemas.
            **kwargs: Additional keyword arguments.

        
llama-index-integrations/llms/llama-index-llms-oci-data-science/llama_index/llms/oci_data_science/base.py