Vino
Vino

Reputation: 2311

DialogFlow vs Lex for streaming intent detection

For my current project, I am looking for a bot building platform with the following features.

  1. Should support the creation/updating of new/existing bot via API.

  2. Support for intent detection from streaming audio.

  3. Enable the hosting of multiple bot agents in a single project.

  4. APIs to modify an existing bot/agent and save it as a new one.

So I have thoroughly researched and also developed a simple working prototype using DialogFlow. DialogFlow supports intent detection from streaming audio. But point 1 and 3 are not supported. DialogFlow at the moment does not support the creation of agent via API. And moreover, the biggest limitation is that for each GCP project, only one DialogFlow agent can be created. So let's say I have multiple agents-gcp projects created. I also have a web app running which receives audio streams via WebSocket from another external resource for intent detection. In order to direct the audio stream to the specific DialogFlow agent built, I need to resolve the credentials at runtime for that specific GCP project. I have read that I can create a service account and manage multiple GCP projects with one credential, but this is yet to try.

Also as point 4 dictates, I am also looking for a way to create new versions of an existing agent at run-time using APIs. Currently, DialogFlow supports versions and environments, but the actual purpose of this is not as I mentioned. Furthermore, this is a beta feature and not sure if it will ever be included in production.

On the other hand, I was looking into AWS Lex. Lex supports all but one of my requirement. AWS Lex at the moment does not support intent detection from the stream (I could not find any APIs for this).

So my question is how can I utilize existing DialogFlow features to fulfill my requirements? Or is there a way to detect intent from streaming audio input in AWS Lex?

Upvotes: 0

Views: 707

Answers (2)

Subhash Peshwa
Subhash Peshwa

Reputation: 11

For future reference: Points 1 and 4 are possible on Dialogflow as well. To create a dialogflow agent programatically, you'll need to do the following:-

  1. A master project through which you can orchestrate the creation of other resources.
  2. Programatically create a new GCP project (Eg: using Cloud Deployment Manager or Terraform).
  3. Add a service account from the master project as Dialogflow (and other) admin/user.
  4. Use Dialogflow v2 beta APIs to create a new bot, create new intents and new entities.

It's also possible to export an existing bot as zip, modify the zip contents (like bot name) and create a new bot using the zip upload function. Then proceed to update/create new intents and entities.

Upvotes: 0

Daniel Situnayake
Daniel Situnayake

Reputation: 2904

There's no mechanism for creating new Dialogflow agents via API, so parts of 1. and 4. are not possible.

For 3., as you mention, you can either manage credentials at runtime or configure a single service account with access to all of the GCP projects.

Upvotes: 1

Related Questions