# Training Data Importers

These docs are for version 1.x of Rasa Open Source.

## User Guide

- [Installation](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/installation/)
- [Tutorial: Rasa Basics](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/rasa-tutorial/)
- [Tutorial: Building Assistants](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/building-assistants/)
- [Command Line Interface](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/command-line-interface/)
- [Architecture](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/architecture/)
- [Messaging and Voice Channels](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/messaging-and-voice-channels/)
- [Testing Your Assistant](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/testing-your-assistant/)
- [Setting up CI/CD](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/setting-up-ci-cd/)
- [Validate Data](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/validate-files/)
- [Configuring the HTTP API](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/configuring-http-api/)
- [Deploying Your Rasa Assistant](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/how-to-deploy/)
- [Cloud Storage](https://legacy-docs-v1.rasa.com/1.10.16/user-guide/cloud-storage/)

## NLU

- [About](https://legacy-docs-v1.rasa.com/1.10.16/nlu/about/)
- [Using NLU Only](https://legacy-docs-v1.rasa.com/1.10.16/nlu/using-nlu-only/)
- [Training Data Format](https://legacy-docs-v1.rasa.com/1.10.16/nlu/training-data-format/)
- [Language Support](https://legacy-docs-v1.rasa.com/1.10.16/nlu/language-support/)
- [Choosing a Pipeline](https://legacy-docs-v1.rasa.com/1.10.16/nlu/choosing-a-pipeline/)
- [Components](https://legacy-docs-v1.rasa.com/1.10.16/nlu/components/)
- [Entity Extraction](https://legacy-docs-v1.rasa.com/1.10.16/nlu/entity-extraction/)

## Core

- [About](https://legacy-docs-v1.rasa.com/1.10.16/core/about/)
- [Stories](https://legacy-docs-v1.rasa.com/1.10.16/core/stories/)
- [Domains](https://legacy-docs-v1.rasa.com/1.10.16/core/domains/)
- [Responses](https://legacy-docs-v1.rasa.com/1.10.16/core/responses/)
- [Actions](https://legacy-docs-v1.rasa.com/1.10.16/core/actions/)
- [Reminders and External Events](https://legacy-docs-v1.rasa.com/1.10.16/core/reminders-and-external-events/)
- [Policies](https://legacy-docs-v1.rasa.com/1.10.16/core/policies/)
- [Slots](https://legacy-docs-v1.rasa.com/1.10.16/core/slots/)
- [Forms](https://legacy-docs-v1.rasa.com/1.10.16/core/forms/)
- [Retrieval Actions](https://legacy-docs-v1.rasa.com/1.10.16/core/retrieval-actions/)
- [Interactive Learning](https://legacy-docs-v1.rasa.com/1.10.16/core/interactive-learning/)
- [Fallback Actions](https://legacy-docs-v1.rasa.com/1.10.16/core/fallback-actions/)
- [Knowledge Base Actions](https://legacy-docs-v1.rasa.com/1.10.16/core/knowledge-bases/)

## Conversation Design

- [Dialogue Elements](https://legacy-docs-v1.rasa.com/1.10.16/dialogue-elements/dialogue-elements/)
- [Small Talk](https://legacy-docs-v1.rasa.com/1.10.16/dialogue-elements/small-talk/)
- [Completing Tasks](https://legacy-docs-v1.rasa.com/1.10.16/dialogue-elements/completing-tasks/)
- [Guiding Users](https://legacy-docs-v1.rasa.com/1.10.16/dialogue-elements/guiding-users/)

## API Reference

- [Action Server](https://legacy-docs-v1.rasa.com/1.10.16/api/action-server/)
- [HTTP API](https://legacy-docs-v1.rasa.com/1.10.16/api/http-api/)
- [Jupyter Notebooks](https://legacy-docs-v1.rasa.com/1.10.16/api/jupyter-notebooks/)
- [Agent](https://legacy-docs-v1.rasa.com/1.10.16/api/agent/)
- [Custom NLU Components](https://legacy-docs-v1.rasa.com/1.10.16/api/custom-nlu-components/)
- [Rasa SDK](https://legacy-docs-v1.rasa.com/1.10.16/api/rasa-sdk/)
- [Events](https://legacy-docs-v1.rasa.com/1.10.16/api/events/)
- [Tracker](https://legacy-docs-v1.rasa.com/1.10.16/api/tracker/)
- [Tracker Stores](https://legacy-docs-v1.rasa.com/1.10.16/api/tracker-stores/)
- [Event Brokers](https://legacy-docs-v1.rasa.com/1.10.16/api/event-brokers/)
- [Lock Stores](https://legacy-docs-v1.rasa.com/1.10.16/api/lock-stores/)
- [Training Data Importers](https://legacy-docs-v1.rasa.com/1.10.16/api/training-data-importers/#)
- [Featurization of Conversations](https://legacy-docs-v1.rasa.com/1.10.16/api/core-featurization/)
- [TensorFlow Configuration](https://legacy-docs-v1.rasa.com/1.10.16/api/tensorflow_usage/)
- [Migration Guide](https://legacy-docs-v1.rasa.com/1.10.16/migration-guide/)
- [Rasa Open Source Change Log](https://legacy-docs-v1.rasa.com/1.10.16/changelog/)

## Migrate from (beta)

- [Dialogflow](https://legacy-docs-v1.rasa.com/1.10.16/migrate-from/google-dialogflow-to-rasa/)
- [Wit.ai](https://legacy-docs-v1.rasa.com/1.10.16/migrate-from/facebook-wit-ai-to-rasa/)
- [LUIS](https://legacy-docs-v1.rasa.com/1.10.16/migrate-from/microsoft-luis-to-rasa/)
- [IBM Watson](https://legacy-docs-v1.rasa.com/1.10.16/migrate-from/ibm-watson-to-rasa/)

## Reference

- [Glossary](https://legacy-docs-v1.rasa.com/1.10.16/glossary/)

---

**Warning:** This document is for an old version of Rasa. The latest version is 1.10.26.

## RasaFileImporter (default)

By default Rasa uses the importer `RasaFileImporter`. If you want to use it on its own, you don’t have to specify anything in your configuration file. If you want to use it together with other importers, add it to your configuration file:

```yaml
importers:
- name: "RasaFileImporter"
```

## MultiProjectImporter (experimental)

Warning: This feature is currently experimental and might change or be removed in the future. Please share your feedback on it in the [forum](https://forum.rasa.com/) to help us making this feature ready for production.

With this importer you can build a contextual AI assistant by combining multiple reusable Rasa projects. You might, for example, handle chitchat with one project and greet your users with another. These projects can be developed in isolation, and then combined at train time to create your assistant.

## Writing a Custom Importer

If you are writing a custom importer, this importer has to implement the interface of [TrainingDataImporter](https://legacy-docs-v1.rasa.com/1.10.16/api/training-data-importers/#training-data-importers-trainingfileimporter):

```python
from typing import Optional, Text, Dict, List, Union

import rasa
from rasa.core.domain import Domain
from rasa.core.interpreter import RegexInterpreter, NaturalLanguageInterpreter
from rasa.core.training.structures import StoryGraph
from rasa.importers.importer import TrainingDataImporter
from rasa.nlu.training_data import TrainingData

class MyImporter(TrainingDataImporter):
    """Example implementation of a custom importer component."""

def __init__(self,
        config_file: Optional[Text] = None,
        domain_path: Optional[Text] = None,
        training_data_paths: Optional[Union[List[Text], Text]] = None,
        **kwargs: Dict
    ):
        pass
```
