> ## Documentation Index
> Fetch the complete documentation index at: https://rasa.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Nlu-component-skeleton

> Nlu-component-skeleton reference documentation for the Rasa Platform.

```python theme={null}
from typing import Dict, Text, Any, List

from rasa.engine.graph import GraphComponent, ExecutionContext
from rasa.engine.recipes.default_recipe import DefaultV1Recipe
from rasa.engine.storage.resource import Resource
from rasa.engine.storage.storage import ModelStorage
from rasa.shared.nlu.training_data.message import Message
from rasa.shared.nlu.training_data.training_data import TrainingData

# TODO: Correctly register your component with its type
@DefaultV1Recipe.register(
    [DefaultV1Recipe.ComponentType.INTENT_CLASSIFIER], is_trainable=True
)
class CustomNLUComponent(GraphComponent):
    @classmethod
    def create(
        cls,
        config: Dict[Text, Any],
        model_storage: ModelStorage,
        resource: Resource,
        execution_context: ExecutionContext,
    ) -> GraphComponent:
        # TODO: Implement this
        ...

    def train(self, training_data: TrainingData) -> Resource:
        # TODO: Implement this if your component requires training
        ...

    def process_training_data(self, training_data: TrainingData) -> TrainingData:
        # TODO: Implement this if your component augments the training data with
        #       tokens or message features which are used by other components
        #       during training.
        ...

        return training_data

    def process(self, messages: List[Message]) -> List[Message]:
        # TODO: This is the method which Rasa Open Source will call during inference.
        ...
        return messages
```


## Related topics

- [NLU Components](/docs/reference/config/components/nlu-components.md)
- [Nlu-dense](/docs/reference/config/components/example-components/custom-graph-components/nlu-dense.md)
- [Nlu-sparse](/docs/reference/config/components/example-components/custom-graph-components/nlu-sparse.md)
- [Nlu-meta-fallback](/docs/reference/config/components/example-components/custom-graph-components/nlu-meta-fallback.md)
- [NLU Command Adapter](/docs/reference/config/components/nlu-command-adapter.md)
