def __init__(
        self,
        name: str = "huggingface",
        endpoint: Optional[core_endpoint.Endpoint] = None,
        **kwargs,
    ):
        # NOTE(piotrm): HACK006: pydantic adds endpoint to the signature of this
        # constructor if we don't include it explicitly, even though we set it
        # down below. Adding it as None here as a temporary hack.
        """Create a HuggingFace Provider with out of the box feedback functions.

        Example:
            ```python
            from trulens.providers.huggingface import Huggingface
            huggingface_provider = Huggingface()
            ```
        """

        kwargs["name"] = name

        self_kwargs = dict()

        # TODO: figure out why all of this logic is necessary:
        if endpoint is None:
            self_kwargs["endpoint"] = huggingface_endpoint.HuggingfaceEndpoint(
                **kwargs
            )
        else:
            if isinstance(endpoint, core_endpoint.Endpoint):
                self_kwargs["endpoint"] = endpoint
            else:
                self_kwargs["endpoint"] = (
                    huggingface_endpoint.HuggingfaceEndpoint(**endpoint)
                )

        self_kwargs["name"] = name or "huggingface"

        super().__init__(
            **self_kwargs
        )  # need to include pydantic.BaseModel.__init__
Create a HuggingFace Provider with out of the box feedback functions.

        Example:
            ```python
            from trulens.providers.huggingface import Huggingface
            huggingface_provider = Huggingface()
            ```
        
src/providers/huggingface/trulens/providers/huggingface/provider.py