TransformersZeroShotTextRouter
Route text strings to different connections based on a category label.
We're working on adding pipeline examples and most common component connections.
Key Features
- Routes text strings to different downstream connections based on zero-shot classification.
- Uses a Hugging Face zero-shot classification model to predict the category of the text.
- Supports multi-label classification by setting
multi_label=True. - The set of labels for categorization is configured at initialization time.
Configuration
- Drag the
TransformersZeroShotTextRoutercomponent onto the canvas from the Component Library. - Click on the component to open the configuration panel.
- On the General tab:
- Set the
labelslist with the categories to route text to. - Set the model name. The default is
MoritzLaurer/deberta-v3-base-zeroshot-v1.1-all-33.
- Set the
- Go to the Advanced tab to configure
multi_label,device, andhuggingface_pipeline_kwargs.
Connections
TransformersZeroShotTextRouter accepts a text string as input. Connect it to any component that outputs a string.
It outputs the text to a dynamically created output named after the predicted label. Connect each labeled output to the appropriate downstream component.
Source Code
To check this component's source code, open zero_shot_text_router.py in the Haystack repository.
Usage Examples
Basic Configuration
TransformersZeroShotTextRouter:
type: components.routers.zero_shot_text_router.TransformersZeroShotTextRouter
init_parameters: {}
components:
TransformersZeroShotTextRouter:
type: components.routers.zero_shot_text_router.TransformersZeroShotTextRouter
init_parameters:
Parameters
Inputs
| Parameter | Type | Default | Description |
|---|---|---|---|
text | str | A string of text to route. |
Outputs
| Parameter | Type | Default | Description |
|---|
Init Parameters
These are the parameters you can configure in Pipeline Builder:
| Parameter | Type | Default | Description |
|---|---|---|---|
labels | List[str] | The set of labels to use for classification. Can be a single label, a string of comma-separated labels, or a list of labels. | |
multi_label | bool | False | Indicates if multiple labels can be true. If False, label scores are normalized so their sum equals 1 for each sequence. If True, the labels are considered independent and probabilities are normalized for each candidate by doing a softmax of the entailment score vs. the contradiction score. |
model | str | MoritzLaurer/deberta-v3-base-zeroshot-v1.1-all-33 | The name or path of a Hugging Face model for zero-shot text classification. |
device | Optional[ComponentDevice] | None | The device for loading the model. If None, automatically selects the default device. If a device or device map is specified in huggingface_pipeline_kwargs, it overrides this parameter. |
token | Optional[Secret] | Secret.from_env_var(['HF_API_TOKEN', 'HF_TOKEN'], strict=False) | The API token used to download private models from Hugging Face. |
huggingface_pipeline_kwargs | Optional[Dict[str, Any]] | None | A dictionary of keyword arguments for initializing the Hugging Face zero-shot text classification. |
Run Method Parameters
These are the parameters you can configure for the component's run() method. This means you can pass these parameters at query time through the API, in Playground, or when running a job. For details, see Modify Pipeline Parameters at Query Time.
| Parameter | Type | Default | Description |
|---|---|---|---|
text | str | A string of text to route. |
Was this page helpful?