A few console wishes


#1

Hi,
Here are a few wishes for the console:

  • Being able disable an app so it won’t be installed with sam udpate, and won’t be taken into account by asr/nlu anymore

  • Being able to transfert an app from one assistant to another assistant, at least on same account

  • When whatching My Intents: option to show only intents of app xx

  • When whatching My slots: option to show only slots of app xx

  • Code snippets: having option for a dataset file, like config.ini but a json one to set json data readabled / centralized for all python snippets of the app. With easy setting in the console.
    Or some sort of attachment, allowing .txt, .json etc that could be put in same folder as the resulting executed py scripts. So we can add a json file, and load in the action snippet.
    We even could attach a py file that could act like a python module for the intent, and import it into each snippets of this intent. Instead of having the same function in several action snippets.


#2

Hi @KiboOst,
That’s a good list you’ve got there! I’ll bring them into discussions internally to see what we can make happen! I’ve got some follow up questions to help me understand your use cases:

  1. Disable an app. What advantage does this give you over removing/re-adding the app in case? What your use case?

  2. Transfer an app. I guess this is quicker than removing, changing assistant, adding. Can you give an example use case when you have the need to transfer an app to a different assistant?

  3. (and 4.) We’re about to provide some UI to see inside which apps your intents are used; inside which intents your slot types are used etc. There’s overlap to what you’re asking for, but it’s not exactly the same thing. I’m trying to assess if it will be sufficient to help you.
    For figuring out what intents are inside an app, what about going to the app itself? It shows that information. We don’t show information about slot types (just slots, i.e. the role they play in this intent, but not what their re-usable slot-type is).

In the end, it comes down to you’re use case, what you’re trying to do here. Can you share some more info?

  1. No further questions at this point, will have to discuss internally first.

Keep your ideas coming! :+1:


#3

1 Disable an app

Testing an app, it would allow to disable it, update assistant on the pi to correct other stuff on other apps, then re enabling the app to continue console work (intents, slots, testing utterances etc)

2 Transfer an app.

removing, changing assistant, adding is nice, but it work only for same account.
Actually I have:
a complete production set : console account, master, satellite
a complete test set : another console account, master

I had created another account to be sure to not mix/mess my production set.
Maybe I should have created a second testing assistant on same account…

Anyway, I have now a production ready app on my test console account, and no way to transfer it to my production account, apart:
publish it, add, unpublish (not really clean and never done)
recreate manually the app with copy/paste for intents, slots, utterances, snippets etc …

3 I guess this would do the trick. I though about going to myintents, filter for app x. Going to app x, and see only its intents would be another equivalent road to same goal.

5 Actually I have created an app to ask questions about age of family members.
How old is john ?
How old will be John in three years ? in two weeks, etc
When will John be 18 years old ?
When was the anniversary of John ?
etc …
This app also allow to ask stuff on holidays (when are next holidays, when is next Christmas day, etc etc)

So, this app needs all family members {forename/anniversary date/nameday date, …}
This dataset is very personal of course, per family. So actually, if I want to publish this app, I will have a provide an easy way to change this dataset for a new family user.
Same for holidays, it need the holidays dataset. (Actually I check for it, and it not there or too late, I download it from an official site, parse it and store it to use for next calls.)

So, it seems that I would have to publish the app on github, which I won’t because it is more work and not easy to install for users. (ex, I installed weather app, got my api key, follow installation with sam from git, it just never works, all finished deleted, period).

All this would be solved by allowing to attach a few json files to the app. so anyone could edit this json on the console and update his assistant without hassle.
Same with py file, more on developer side, to easily create a py file containing commong functions for all snippets. Maybe one standard py file per app, in which we could add functions that could be imported by every snippet, even if not accessible by the user (apart forking).

Hope all this is understandable :wink:


#4

Just about 2)

I have now created a second Dev assistant on my prod/first console account.
Will then install assistant with sam install assistant -i proj_idxxxx
-> sam update-assistant will then update only installed assistant

Seems a better way to handle dev/prod. Apart that all testing slots, apps, intents appear all with prod ones, so I will have to keep this clean, which isn’t easy without per assistant or/and per app filtering.

I guess the more we will create stuff, the more we will push the limits and ask for new stuff :wink:

Will see then if I can develop like this on same account. Then I will ask how to completely delete an account :laughing:


#5

How did this approach for transferring apps work out for you @KiboOst?

Regarding disabling apps, I just reflected on this again. If you want the app to be part of your assistant on the console… why would you not want it to be updated on your PI as well? Something like that you’re in progress making changes, and that the current version is not working yet, so you prefer keeping the last (working) version on your PI? If so, wondering if the splitting between “prod” and “dev” assistants helps out here too… let me know.


#6

Actually two assistant on same account quite work.
But without ability to sort intents/slots per app all is mixed out in same place.
Also,with the actual nlu limitation (no semantic, words simplification, not taking all training sentences etc etc) sometimes adding more training just break all. Two apps that work nice alone, once in same assistant, make problems, etc.

Also, no possibility to revert an app state is really a pain when tweaking stuff. exporting an app as a zip would allow testing lot of tweak, and if it doesn’t work, we inject back the zipped app and we are back to previous working state.