snips-nlu icon indicating copy to clipboard operation
snips-nlu copied to clipboard

General questions

Open joolfe opened this issue 6 years ago • 7 comments

Hi, I'm new in Snips NLU, i have test lot of solutions like DilaogFlow, Luis, Watson (even in production projects) and now i have discover snips and i think is amaizing :-) but i have lot of quetsions related with this, not sure if this is the correct channel so please tell me if there are any google group or forum for this kind of quetsions:

  • As in many other solution there are "agents" is a good aproach with snips have different models? what is translated to SnipsNLUEngine right?
  • How much memory size take a model with for example 500 intents? is something critical?
  • Coming from DialogFlow they have a concept of "contexts" where you can like group intents so if you know that the query of the user is related with this group of intent you can provide and help the clasification, i have seen a parameter "intents" in the method parse, is this the same concept?

Thanks!

joolfe avatar Dec 05 '18 17:12 joolfe

Hi @joolfe, Happy to read that you enjoy snips-nlu. Regarding your questions:

As in many other solution there are "agents" is a good aproach with snips have different models? what is translated to SnipsNLUEngine right?

I'm not sure I've understood correctly your question. An agent in other solutions like DialogFlow would correspond to a SnipsNLUEngine in snips-nlu. You could group all your agents in a single engine, but if they are used in very different contexts then having a dedicated engine per agent is probably more relevant.

How much memory size take a model with for example 500 intents? is something critical?

I cannot answer precisely this question but 500 intents is a lot. I'll try to run some benchmarks to give you a (very) rough estimate.

Coming from DialogFlow they have a concept of "contexts" where you can like group intents so if you know that the query of the user is related with this group of intent you can provide and help the clasification, i have seen a parameter "intents" in the method parse, is this the same concept?

Yes, the intents parameter, when provided, reduces the scope of intent parsing to the provided list of intents.

adrienball avatar Dec 05 '18 18:12 adrienball

Great! thanks for your replies, just a new question:

There exist any implementation that use snips NLU and expose through a REST API? I mean, something like a ready to use server that use snips.

joolfe avatar Dec 10 '18 16:12 joolfe

Not that I'm aware of. For now, we have focused mostly on core NLU features, while optimizing accuracy, lightweightness and speed. I agree that having a ready to use python server would be a nice addition.

adrienball avatar Dec 11 '18 15:12 adrienball

I start using Snips NLU in my project and I wrap engine in Flask to have rest in begging on it. You can see https://github.com/cefothe/distributed-chat-system/blob/master/nlu-service/server.py

cefothe avatar Dec 28 '18 07:12 cefothe

Hello. How would I use lower level intents with snips? We are writing our own "dialogue manager" at the moment. We need to create intents that only contain a single slot value and nothing else. How would we separate (filter) those intents from the top-level intents that can always get triggered?

For example: Hey Snips. -- I want to order Pizza.
Snips: Which topping do you want on that? User: Lettuce (Salad, greens...)

ghost avatar Mar 01 '19 14:03 ghost

Hi @haukeFCE , You have two options:

  1. If you already know which intent you are going to receive from the user, and you only want to extract the slots, then you can use the get_slots API of SnipsNLUEngine
  2. If you don't know precisely which intent you are going to receive, but you know that it will belong to a list (of low-level intents for instance), then you can use the parse API and specify a list for the intents parameter which will restrict the scope of the parsing to the provided intents.

I hope this helps. Cheers

adrienball avatar Mar 01 '19 15:03 adrienball

you can use the parse API and specify a list

Thanks, this helps already. Maybe off-topic to snips-nlu, but is there a possibility to disable "lower level intents" by default in the snips hermes implementation and only use them through the parse API call?

ghost avatar Mar 01 '19 15:03 ghost