How to deploy and maintain multiple chatbots agents - deployment

This post follow this one where I explain one of my problems. Currently, I have to found a way to publish and maintain a high number of agents. I am not limited to Dialogflow.
I need some integrations like the google assistant (text and vocal), facebook messenger, telegram and if possible others like Slack, Twitter, Twillio, Alexa...
Okay, so I have already produced some agents with Dialogflow to understand the technology. I also read some pages of the actions-on-google documentation and I did'nt found anything on this subject. So basically I have to implement this:
Deploy around X agents through differents integrations instanciations. I mean I really need X facebook contacts, X google assistant apps, etc.
Maintain one code-base but have the ability to add localized-features like the name of the chatbot, currency or just block some intents (for Dialogflow example but in a more generic way, dialogs triggers).
It is just possible ? I am thinking about a web UI that can handle some facilities like the deployment, the monitoring and the maintenance. I am wondering if it's not overkill and if a more easier solution than mine exists already.

It isn't currently possible to create agents automatically, although Dialogflow's V2 API provides a mechanism to update agents via JSON once they have been created; see the restore and import endpoints.

Related

Headless ecommerce architecture with flexible RBAC

I'm creating a software marketplace web app, and looking for some insights and suggestions about the architecture.
I would like to be owner of the UI, so probably a headless approach is the way to go.
The basic requirements contains:
I need to have multiple external identity providers (custom sites, not like facebook or google)
I need to have at least three roles
simple users who can buy stuff
users who can upload things available for sale in the marketplace
administrators, who has to approve everything that is uploaded to the marketplace
Do modern ecommerce platforms allow limiting certain API-s based on custom user's roles? Or allow registering custom external identity providers?
If not, would it be a viable option to put the ecommerce API behind one of my own microservices and do RBAC in one of my on MS?
I generally would like to do most of the customizations of the ecommerce externally, in my own microservices, instead of within the ecommerce platform itself - so I'm not bound to any specific language or technology. I would like to host the site myself, in a containerized environment.
Additionally, any suggestions about a platform that would fit the use case mentioned above?

How can i create action using real-time data after Conversational Actions sunset

I am working on an Alexa Skill that provides real-time road information like road closures.
In order to make this work with Google Assistant, I was creating Actions using Conversational Actions. However, when I recently completed the Actions, I learned about the "Conversational Actions sunset overview".
I am currently searching ways to continue developing this feature after Sunset. My requirements are as follows
Users can obtain information by specifying the desired route among
multiple routes in a common operation.
The information provided needs
to be updated in real time, every 5 minutes.
As the method to provide the information, I assume HTTP request, JSON, HTML, etc.
Any help would be appreciated!
Thank you

Dynamically Change API Environments Google Rollout Track

I'm developing an Ionic(3 / 4)(Angular 4 - 7)-Cordova / Capacitor Cross Platform Application(s). I'm interested in switching API env based on the current rollout track in the Google Play Store. For example, once an application has been successfully tested and recommended to continue staging/production. I would like to have the API env dynamically changed (e.g., using a different URI domain to connect to REST API ) dependent on the Google Play Store Track.
I'm aware that I can use Google Developer Play Store API to identify / list versions and available tracks yet, I'm unaware if there's already an implementation or solution. I'm perfectly willing to design a solution though, I figure I find out if it's been done already rather than reinvent the wheel.
I'm hoping to implement a solution either to the REST API BACKEND or in the ionic framework layer rather than an integration at the native layer for scalability per-project. The purpose of doing this would enable CI rather than rebuilding the project and change the API URI domain for every environment. Any assistance in this matter would be greatly appreciated.
So, if anyone's interested. The approach highlighted above is possible, couldn't get an answer so I just created something. Using Google Play Developer API. The process flow is as follows:
[]
For now it's a working prototype perhaps its not very efficient; I suppose it can be improved if the request was issued from a single server, or microservice. Though, I wanted to make the code recyclable and it's isolated from both the mobile application & Node Server.
If you are interested in learning more or would like to work on project. Please feel free to contact me.

Do I have to use API.AI to create an action for Google Home?

I have some experience building chat and voice agents for other platforms, but I’m not using API.AI to understand natural language and parse intents. Do I have to replace my existing solution with API.AI?
Not at all. The advantages of using API.AI in creating a Conversation Action include Natural Language Understanding and grammar expansion, form filling, intent matching, and more.
That said, the Actions on Google platform includes a CLI, client library, and Web Simulator, all of which can be used to develop an Action entirely independent of API.AI. To do this you’ll need to build your own Action Package, which describes your Action and expected user grammars, and an endpoint to serve Assistant’s requests and provide responses to your users queries. The CLI can be used to deploy your Action Package directly to Google, and you can host your endpoint on any hosting service you wish. Google recommends App Engine on Google Cloud Platform.
I found this explanation from the official page most helpful.
API.AI
Use this option for most use cases. Understanding and parsing natural, human language is a very hard task, and API.AI does all that for you. API.AI also wraps the functionality of the Actions SDK into an easy-to-use web IDE that has conveniences such as generating and deploys action packages for you.
It also lets you build conversational experiences once and deploy to many other platforms other than Actions on Google.
ACTIONS SDK
Use this option if you have simple actions that have very short conversations with limited user input variability. These type of actions typically don't require robust language understanding and typically accomplish one quick use case.
In addition, if you already have an NLU that you want to use and just want to receive raw text and pass it to your own NLU, you will also need to use the Actions SDK.
Finally, the Actions SDK doesn't provide modern conveniences of an IDE, so you have to manually create action packages with a text editor and deploy them to your Google Developer project with a command-line utility.
Google is pushing aggressively everybody to API.AI. The only SDK they have (Node.js) no longer supports expected events for instance. Of course, you don't need to rely on their SDK (you can talk to the API directly) but they may change the API too. So proceed with caution.

Cloud service to store email activity and to pull reports

What is a good way to store and run some reports on email analytics? Imagine this is a pretty high volume of emails sent, open, click stats broken down to email categories. This info has to be stored at some DB and we need to be able to slice the data in different ways to extract some valuable business information.
One way to do this would be in-house, build a new database and log and track every action. And later on built reports on top of it.
However, this is a lot of work and I was wondering if there's some cloud service that we can use to do this. Azure and Amazon offer cloud DB storage, I guess we can use them, but that means a lot of setup work as well. Not sure if there's a 3rd party email analytics in the cloud service.
Any recommendations on best way to tackle this problem?
Indeed, tracking your email links and analyzing the relevant is a lot of work. I recomend you use a third party application to take care of it.
Most email-as-a-service providers offer prety goood analytics, including things like opens, clicks, by location, time, etc...
It really depends on the provider, but I think you should take a look at some of the best known ones such as Sendgrid, Postmarkapp or Mailjet