Where does Dialogflow store simple responses? - dialogflow-es

For example: I add a simple response to an intent with Dialogflow interface,
like this.
This response is associated with my intent and my agent, but where is it stored? Is there some google db? Can I access all the agent data stored by dialogflow?
I can't find any hints in the documentation.

Where is it stored? Is there some google db?
There is a data store of some sort, just like most things are stored in a database or data store of some sort. But that doesn't mean that it is a conventional database in the way you may think about it.
It also doesn't mean that you would have access to the database directly.
Can I access all the agent data stored by dialogflow?
Depends what you mean by "all the agent data". Everything that you build using the web interface (the Intents and Entities, for example) is available to you. You can export it as a zip file that contains various JSON files with the configuration. You can also use the Dialogflow API to get various parts of your configuration.

Related

BuildFire: How do we access the public logs?

We are pushing logs using "buildfire.publicData.insert". How do we get access to those logs?
Would these logs contain the header that is sent in the calls? We also need to see the source and destination information. Those are the logs we really need.
Public data is really just a data source, think of it as a database where the data you save in you can retrieve later.
So if you're using it to push logs you need to make sure that any needed information is in the body object are passed to save or insert calls. those can be retrieved later using search calls as documented in https://sdk.buildfire.com/docs/public-data
You can also implement the search only on the control side of your plugin if these data are not meant to be shared with widget users.
Since you might have a lot of records it is recommended you use https://sdk.buildfire.com/docs/indexed-fields so your queries are efficient.

Automating PDF Flowchart to creation of chatbot

So we currently are creating chatbots using Google DialogFlow. The chatbots that we create are usually decision tree type chatbots that ask a particular question based on the response provided by the user. The client usually sends us flowcharts in pdf which has the decision tree and we then translate it towards creating the said chatbot and adding the relevant modules based on the information provided. Is there a way wherein I can automate some part of the chatbot creation process directly based on the decision tree sent in the PDF? The frequent updates sent by the client is a bit cumbersome so was thinking of automating it.
What I'm thinking currently is somehow converting the PDF file to some JSON format and then using that JSON file, somehow automate the process. I'm a new joiner in the company and they have given me this task to think about.
It’s possible to automate the creation process of your Dialogflow agent, however, you’ll have to create your own implementation for it. As you’ve mentioned, you can convert the PDF file into a JSON object using your own implementation, then you can use the JSON object as a reference to construct the Request Body of the methods stated below.
If you are using Dialogflow ES, then you can use one of Dialogflow ES’s Client libraries or APIs (REST API / RPC API) to create agents programmatically.
You can create ES Agents with the following methods:
REST API: projects.setAgent method
RPC API: SetAgent method
Client libraries: you can look into the documentation of each of the supported languages
After you create an ES agent, you can also add Intents, Entity Types, Contexts, etc. programmatically to manage your agent’s conversation flows.
If you are using Dialogflow CX, then you can use one of Dialogflow CX’s Client libraries or APIs (REST API / RPC API) to create agents programmatically.
You can create CX Agents with the following methods:
REST API: projects.locations.agents.create method
RPC API: CreateAgent method
Client libraries: you can look into the documentation of each of the supported languages
After you create a CX agent, you can also add Intents, Entity Types, Flows, Webhooks etc. programmatically to manage your agent’s conversation flows.
Additionally, note that your JSON Request Body must be formatted correctly based on the Resource that you’re trying to create. For example:
If you’re trying to create an ES Agent, make sure to follow the Request Body format.
If you’re trying to create a CX Agent, make sure to follow the Request Body format.

Sail.js - how to structure JSON based live data output with existing static data in the model

In my Angular app, I want to display a table which contains the following
a) URL
b) Social share counts divided by different social networks
Using Sails.js, I already have the api created for the URL when the results show up, I can display the URL now I'm confused how to get the appropriate social counts showing right besides
Here's the API I'm using: https://docs.sharedcount.com/
by itself, I can see the JSON it produces
But here are my questions:
Should I create a new api (model/controller) for social count data or include it in my model where I have the 'url' action defined?
If I create a new api or include the social_counts as an action in the current, what would my JSON query look like? to retrieve the URL's, I'm using default API blueprint that Sails provides, so:
http://www.example.com/url/find?where={"title":{"contains":"mark"}}
Struggling a bit in terms of the thought process, would be great to get input on this
It depends on your app. is your app will store that data or just consume it? If it need to store, of course you need the API. In purpose for modification or aggregating the data for example.
No, you can't do that. That shortcut method only works if you have the data in your database and let the Sails Waterline ORM and Blueprint API served it.
Perhaps, if you only need to consume the data from that Sharedcount API, you didn't need to use Sails as a backend, in this context. Just use Angular as a client of that API. Except if you need to modify the data first and store it in your own database, so Sails will helps with it's Waterline ORM and Blueprint API.

Posting Firebases's thirdpartyuserdata object to the server

I'm using Firebase and the SimpleLogin to allow users to login via Google, Twitter etc.
I'd like to use some of the thirdpartyuserdata object to create a user profile for my application which runs on Node.
Currently I'm posting this data to the server so that I can add to it and create the profile object, but I wondered if there's a better way of doing this - is there something I can call server side to get this thirdpartyuserdata without having to post it from the client?
Start by considering that your "server" is actually just another consumer of Firebase data. Since FirebaseSimpleLogin is simply a token generator with some fancy tools for doing OAuth, and because this happens completely client-side, there is nothing to consume about this.
If you want to consume the data at the server, you will either need to POST it, as you have done, or use Firebase to transfer the information. You'll find that a queue approach can save you a large amount of code, as this allows you to use Firebase as the API, and avoid creating RESTful services in Node, and all the baggage that comes with that.
The idea of a queue is simply that you push data into Firebase at one client and read it out (and probably delete it) at the intended recipient (in this case your node worker).

Can I send data to a RemoteApp using Remote Desktop Services?

When I launch a RemoteApp via Remote Desktop Web Access, is there a way to send data to the remote app?
Desired senario:
A user logs into a website with their credentials. They also provide demographic information such as first name, last name, address, etc.
The website connects to the RemoteApp via SSO and makes the demographic information available to the RemoteApp.
For example, if the RemoteApp is a Windows Forms app, can I get this information and display it in a message box?
Edit1: TomTom's response in this question mentions using named pipes to send data. Is that applicable to this problem?
It turns out you can pass command line parameters to the RemoteApp using the remoteapplicationcmdline property like such:
remoteapplicationcmdline:s:/Parameter1: 5234 /Parameter2: true
(The names "/Parameter1" and "/Parameter2" are just examples. Your remote app will have to define and handle these as appropriate.)
This setting is part of the RdpFileContents property of the MsRdpClientShell object.
Here is a resource for other RdpFileContents properties.
Your code might end up looking something like this:
MsRdpClientShell.PublicMode = true;
MsRdpClientShell.RdpFileContents = 'redirectclipboard:i:1 redirectposdevices:i:0 remoteapplicationcmdline:s:/Parameter1: 5234 /Parameter2: true [Other properties here...]';
MsRdpClientShell.Launch();
For larger amounts of information, we might send preliminary data to a web service, retrieve an identifier back, pass this identifier to the RemoteApp via the command line, then have the RemoteApp query the web service to get all the information.
Of course, for the parameters to be of use the program must be looking for them. Setting up a database to query has a little security issue if it is sensitive data.
If the program (RemoteApp) is looking for data in the form of a CSV or table or something, then you might be able to send a lot of data to be processed. It just depends upon what parameters (and form) the program is going to use.

Resources