New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rasa command line interface #3063
Comments
@tmbo So this involves specifying the interface as well as implementing it, right? |
Yes, please for both use cases:
|
Probably good to discuss a draft with the team / contributors once you have it to check if we are good to go for a first version |
For thoughtless training, can we just have one command Re |
Hmm yeah i like having just one command for training, given we don't really want the separation of core/nlu anymore |
@ricwo So |
yes, we'd of course still support training them separately, but just as an alias |
I like the ideas in here so far! things not covered yet:
prob need some commands like |
For the interaction with a remote platform I would like to have something like
|
@EPedrotti Do you think we could separate that a bit from the rest by doing |
@wochinge some of this commands make sense only if you are using a remote platform. So maybe it's not necessary to add That being said it would be nice to have also a NOTE: all commands name and flags are just examples |
Some thoughts:
Concerning other comments
We'll need to implement that to be a little more clever (e.g. to avoid retraining nlu if the data for it did not change - because we want people to use
I think the data should live in the files locally, not in the DB (otherwise e.g.
I think more likely the platform will read them from file
I think this is going to be a very interesting and tricky one (but needed)
def general points:
|
Well, currently Core and NLU both use
But for the beginning we have to be able to distinguish core from NLU models (e.g. so that |
how would that work, platform would import the files to sqlite every time it starts up?
well we still need some metadata for the models (e.g. is it active, evaluations) in DB in any case. So there is some concept of making platform aware of model; |
That is fine, we only need one model server, if the stack is running as one thing.
Not sure what you mean, this should in the combined model case just load the most recent "model pack" which contains nlu & core.
|
I think also status and the lists are necessary, otherwise a developer has to switch to the UI to see the status of the platform and to check the logs to see the available custom actions. |
maybe |
maybe |
well that makes sense when running locally, but not on the server |
@wochinge the code on the rasa_stack branch https://github.com/RasaHQ/rasa_stack/tree/api uses To try out the branch, pull the stack and core branch and |
I created a separate issue for the python API: https://github.com/RasaHQ/rasa_stack/issues/4 |
Questions:
|
|
👍
Utterances sounds too much like bots responses for me. |
it is still NLU data though, that is an accurate description of it :D i think maybe it's fine to leave it |
Finally a first prototype is ready. How to get started:
How to use: Note:
|
Really cool 👍
|
The arguments were relevant, the group name "training" was wrong - fixed
This was an error for the case
Up for discussion. I decided against but we can easily change that.
One go = Two processes running at the same time? Can do, it might mess up the command line logging for the user.
I somehow don't get this error. Can you please describe what you did? // edit: fixed. Please pull the latest core cli branch |
Really cool I like it - I think this is going into a great direction 🚀
|
I think there should be a little more guidance after the init:
some more thoughts:
|
I agree that we should have more guidance at the initial stage for what the user can do (suggesting to check out rasa test --help would be a good start so that users would know what's possible). Another thing is that this happy path resembles a chatbot a lot now. Which is not a bad thing, but I what I found a bit disappointing is what happens when I say 'no' to questions like 'Do you want me to train an initial model for the bot?' - it responds with 'Great. To train your bot run ...' which feels like another push for the thing I already said I don't want to do and it again leaves me without any other info of what I could do instead. But in general, it's awesome! So much easier to do things! :) |
Update:
Todo:
|
Really nice work! I have few comments about it:
|
I think this was a bug with the file validations. Can you please try again? Note that you now have to also install the
This should happen automatically in my opinion= @tmbo
Mhm, I also thought about the option to define aliases or own default parameters. But you want also define completely new functionality, right? |
I don't use it yet, I will try later
Yes, plugin used to create new function, such as I can create a new CLI/API command/function like |
@howl-anderson even though I see the benefit of having the possibility to extend this (which you can do, as you can just append subparsers to the parser) I don't think this is very important. The reason is, that I think the downside of using slightly different syntax for custom commands (e.g. |
it can work locally, but it's hard to execute it thought For now, a plugin system is not the most important thing. We can find the best way to do it in the future if user truly want it. |
Couple of things to keep track of / clean up. in interactive mode:
in it's not easy to discover what the correct syntax is for
|
I would suggest we should give a makefile and give it to the users, it is still unclear how to run the action server with endpoints etc after introducing these commands. are we doing something on it |
Goal
General Idea
Assume a rasa project with a default project layout. This means we can assume the location and name of files (e.g.
domain.yml
is always in the project root and has this name). By looking in default locations for files the user can skip their declaration. If users deviate from the normal project layout, they have to specify the locations manually.Assumed project layout
Suggested command line commands:
Creating the initial project (new feature)
rasa init
+ interactive guide to create project (e.g. provide project name, etc)Training
rasa train
rasa train core
rasa train nlu
rasa interactive
(orrasa train interactive
?)rasa train core --config policy1.yml policy2.yml
Validating
rasa test
rasa test core
rasa test nlu
Run Server
rasa run
rasa run core
rasa run nlu
rasa run sdk
(should we include the sdk or keep that separate?)Visualize
rasa show
(alternatives:rasa inspect
,rasa visualize
)Data
There is currently just one command in this section, but we could have other commands like
rasa data validate <file>
orrasa data split
here in the futurerasa data nlu convert
Interacting with the server
rasa remote
Crucial
rasa remote login <host>
(where / how do we store them)rasa remote stages <env>
rasa remote models select <model-id>
rasa remote models push <model>
rasa remote models pull <model>
rasa remote data push
rasa remote data pull
Nice to have
rasa remote models list
rasa remote users list
rasa remote status
rasa remote logs
rasa remote config
Interacting with local server
rasa local
commands as above for server except
Other
rasa --version
rasa --help
Parameter Names
Current Status
How to test
https://github.com/RasaHQ/rasa_stack/issues/1#issuecomment-462871671
The text was updated successfully, but these errors were encountered: