Skip to content

Commit f08d8cc

Browse files
committed
Remove redundant secret_name parameter from HuggingFace deployer
The secret_name parameter was redundant since token is already a SecretField that supports ZenML's secret reference syntax ({{secret.key}}). Changes: - Removed secret_name from HuggingFaceDeployerConfig - Simplified _get_token() to just return config.token or environment variable - Updated validator to only check for token (not token or secret_name) - Updated documentation to show proper secret reference syntax: {{hf_token.token}} - Removed unused Client import (auto-removed by formatter) This simplifies the API and follows ZenML's standard pattern for secret handling.
1 parent 9f92376 commit f08d8cc

File tree

3 files changed

+13
-21
lines changed

3 files changed

+13
-21
lines changed

docs/book/component-guide/deployers/huggingface.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ To use the Hugging Face deployer, you need:
4848

4949
You need a Hugging Face access token with write permissions to deploy pipelines. You can create one at [https://huggingface.co/settings/tokens](https://huggingface.co/settings/tokens).
5050

51-
You have two different options to provide credentials to the Hugging Face deployer:
51+
You have two options to provide credentials to the Hugging Face deployer:
5252

5353
* Pass the token directly when registering the deployer using the `--token` parameter
54-
* (recommended) Store the token in a ZenML secret and reference it using the `--secret_name` parameter
54+
* (recommended) Store the token in a ZenML secret and reference it using secret syntax
5555

5656
### Registering the deployer
5757

@@ -67,7 +67,7 @@ zenml deployer register <DEPLOYER_NAME> \
6767
zenml secret create hf_token --token=<YOUR_HF_TOKEN>
6868
zenml deployer register <DEPLOYER_NAME> \
6969
--flavor=huggingface \
70-
--secret_name=hf_token
70+
--token='{{hf_token.token}}'
7171
```
7272

7373
### Configuring the stack

src/zenml/integrations/huggingface/deployers/huggingface_deployer.py

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
cast,
2828
)
2929

30-
from zenml.client import Client
3130
from zenml.config.base_settings import BaseSettings
3231
from zenml.deployers.base_deployer import BaseDeployerSettings
3332
from zenml.deployers.containerized_deployer import ContainerizedDeployer
@@ -116,11 +115,12 @@ def _validate_requirements(
116115
Returns:
117116
Tuple of (is_valid, message).
118117
"""
119-
# Check token or secret_name
120-
if not (self.config.token or self.config.secret_name):
118+
# Check token
119+
if not self.config.token:
121120
return False, (
122-
"The Hugging Face deployer requires either a token or "
123-
"secret_name to be configured."
121+
"The Hugging Face deployer requires a token to be "
122+
"configured. Use --token parameter with a direct token "
123+
"value or reference a ZenML secret with {{secret.key}} syntax."
124124
)
125125

126126
# Check container registry
@@ -141,17 +141,10 @@ def _get_token(self) -> Optional[str]:
141141
"""Get the Hugging Face token.
142142
143143
Returns:
144-
The token from config, secret, or environment.
144+
The token from config or environment. If config.token uses secret
145+
reference syntax like {{secret.key}}, ZenML automatically resolves it.
145146
"""
146-
if self.config.token:
147-
return self.config.token
148-
149-
if self.config.secret_name:
150-
client = Client()
151-
secret = client.get_secret(self.config.secret_name)
152-
return secret.secret_values.get("token")
153-
154-
return os.environ.get("HF_TOKEN")
147+
return self.config.token or os.environ.get("HF_TOKEN")
155148

156149
def _get_hf_api(self) -> "HfApi":
157150
"""Get the Hugging Face API client.

src/zenml/integrations/huggingface/flavors/huggingface_deployer_flavor.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,15 @@ class HuggingFaceDeployerConfig(BaseDeployerConfig):
3131
"""Configuration for the Hugging Face deployer.
3232
3333
Attributes:
34-
token: Hugging Face API token for authentication
35-
secret_name: Name of ZenML secret containing the token
34+
token: Hugging Face API token for authentication. Can be a direct token
35+
value or a reference to a ZenML secret using {{secret_name.key}}
3636
organization: HF organization to deploy to (uses username if not set)
3737
space_hardware: Hardware tier (e.g., 'cpu-basic', 't4-small')
3838
space_storage: Persistent storage tier (e.g., 'small', 'medium', 'large')
3939
space_prefix: Prefix for Space names to organize deployments
4040
"""
4141

4242
token: Optional[str] = SecretField(default=None)
43-
secret_name: Optional[str] = None
4443
organization: Optional[str] = None
4544
space_hardware: Optional[str] = None
4645
space_storage: Optional[str] = None

0 commit comments

Comments
 (0)