Run rasa train with one yaml file?

Hello, is it possible to run rasa train with one big yaml file containg all needed information? Normally, files must be divided into nlu, rules, stories etc. I want to train in using just one file I’ve prepared. (using Rasa 2.x)

Something like

rasa train --file moodbot.yml

or better

rasa train < moodbot.yml

where moodbot.yaml contains everything

---
intents:
- affirm
- bot_challenge
- deny
- goodbye
- greet
- Mood Great
- mood_unhappy
actions:
- action_core_fallback
nlu:
- intent: affirm
  examples: |
    - yes
    - y
    - indeed
    - of course
    - that sounds good
    - correct
- intent: bot_challenge
  examples: |
    - are you a bot?
    - are you a human?
    - am I talking to a bot?
    - am I talking to a human?
- intent: deny
  examples: |
    - no
    - n
    - never
    - I don't think so
    - don't like that
    - no way
    - not really
- intent: goodbye
  examples: |
    - good afternoon
    - cu
    - good by
    - cee you later
    - good night
    - bye
    - goodbye
    - have a nice day
    - see you around
    - bye bye
    - see you later
- intent: greet
  examples: |
    - hey
    - hello
    - hi
    - hello there
    - good morning
    - good evening
    - moin
    - hey there
    - let's go
    - hey dude
    - goodmorning
    - goodevening
    - good afternoon
    - Ahoy
- intent: Mood Great
  examples: |
    - perfect
    - great
    - amazing
    - feeling like a king
    - wonderful
    - I am feeling very good
    - I am great
    - I am amazing
    - I am going to save the world
    - super stoked
    - extremely good
    - so so perfect
    - so good
    - so perfect
- intent: mood_unhappy
  examples: |
    - my day was horrible
    - I am sad
    - I don't feel very well
    - I am disappointed
    - super sad
    - I'm so sad
    - sad
    - very sad
    - unhappy
    - not good
    - not very good
    - extremly sad
    - so saad
    - so sad
version: "2.0"
language: en
policies:
- name: AugmentedMemoizationPolicy
  max_history: 6
- name: TEDPolicy
  max_history: 6
  epochs: 20
- name: RulePolicy
  core_fallback_threshold: 0.300000
  core_fallback_action_name: action_core_fallback
pipeline:
- name: WhitespaceTokenizer
- name: RegexFeaturizer
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer
- name: CountVectorsFeaturizer
  analyzer: char_wb
  min_ngram: 1
  max_ngram: 4
- name: DIETClassifier
  epochs: 100
- name: EntitySynonymMapper
- name: ResponseSelector
  epochs: 100
- name: FallbackClassifier
  threshold: 0.700000
  ambiguity_threshold: 0.100000
stories:
- story: happy path 337
  steps:
  - intent: greet
  - action: utter_bebea9fc52645e0488d95a99437a2dc72079c47d
  - intent: Mood Great
  - action: utter_a1d20b921fb25d7b69787dbe26049ac4509a591b
- story: sad path 339
  steps:
  - intent: greet
  - intent: greet
  - action: utter_bebea9fc52645e0488d95a99437a2dc72079c47d
  - action: utter_bebea9fc52645e0488d95a99437a2dc72079c47d
  - intent: mood_unhappy
  - intent: mood_unhappy
  - action: utter_136ab7dea3e7d179f22b91a3a786483f5b146804
  - action: utter_136ab7dea3e7d179f22b91a3a786483f5b146804
  - action: utter_f8b77d2047660e61cf709839722b571f3a3840d6
  - action: utter_f8b77d2047660e61cf709839722b571f3a3840d6
  - intent: affirm
  - intent: deny
  - action: utter_a1d20b921fb25d7b69787dbe26049ac4509a591b
  - action: utter_3ca9d381697c0922763e20804127dd373093ac4b
responses:
  utter_bebea9fc52645e0488d95a99437a2dc72079c47d:
  - text: Hey! How are you?
  - text: Hey one more time!
  utter_a1d20b921fb25d7b69787dbe26049ac4509a591b:
  - text: Great, carry on!
  utter_136ab7dea3e7d179f22b91a3a786483f5b146804:
  - text: 'Here is something to cheer you up:'
    image: https://i.imgur.com/nGF1K8f.jpg
  utter_f8b77d2047660e61cf709839722b571f3a3840d6:
  - text: Did that help you?
  utter_3ca9d381697c0922763e20804127dd373093ac4b:
  - text: Bye
  utter_default:
  - text: ACTION DEFAULT FALLBACK
rules:
- rule: Default fallback
  steps:
  - intent: nlu_fallback
...

Hi @mbukovy, the answer is yes and no :slight_smile: If you read the docs for rasa train, you won’t see such an option. However, I think that you could re-use the same file for different purposes like this:

rasa train --data moodbot.yml --config moodbot.yml --domain moodbot.yml

Do you wanna try that? My guess is that it should work, though I personally wouldn’t do it as the file would get messy very quickly with all the different kinds of information in there…

1 Like