Can we configure our Bluemix chatbot Application with Multiple Conversation Workspace? If yes then how we can call to particular conversation service on the basis of user questions asked on chatbot?
This can be done by your application. A scenario could be that
the user input is analyzed by your app or by sending it to the national language classifier or NL understanding service.
based on the results of the analysis your app would then send the input to the specific workspace
calls into a conversation workspace are stateless, but have an ID for the individual conversation (chat) and metadata about where in the dialog you are
that info could be used to later jump back to where in the conversation for a workspace the user was
IMHO, that technique could be used to support multiple spoken languages or to separate different more complex subjects into individual workspaces. Take a look at the architecture diagram in the documentation for the general idea.
Related
I am currently working on Watson chat bot with the aim of creating a virtual assistant for customers which hopefully will be capable of handling the requests. Within a node I ask a question like "Can you provide me the serial number?" to the customer. What I want Watson to do is that save that serial number as a variable so that I can respond the customer like "Okay so the number you provided is "that number", do you confirm?" I would be very happy if someone can help me out with this. How am I going to integrate a variable capable of storing the customerĀ“s input?
Thank you in advance!
I recommend starting with this tutorial on building a database-driven Slack chatbot. The source code is available on GitHub.
The tutorial shows how to gather event data. The typical way of getting data from an user is to save the relevant parts in so-called context variables. You can access those variables from within dialog nodes, print values in responses or pass them to other code for backend processing (like in a database system).
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.
I'm using IBM Watson Conversation to build a bot. I'm looking for ready to use dialogs & intents regarding the most commonly used conversation statements.
Like: Welcome, Good Morning, Aha, Good Evening, How are you, Who are you, etc...
Actually when I used api.ai from Google, there's a default WELCOME intent, it's AMAZING. I'm looking for something similar.
In Conversation service, you get the default "welcome" message node and another node for "anything_else" which will be executed when no other intent matches the user query. These two nodes get created for you the moment you go to the Dialogue tab of the service for the first time.
This gives you a skeleton of how you can add new nodes as per your need. Currently there aren't any other intents that Conversation service provides by default, which also makes sense in someway as everyone's need might be different.
But the service provides some default entities which are called "system entities". These are common entities like Person's name, location, currency etc that might be used in almost all sorts of chatbot scenarios. By default, these will be disabled, but you can turn them on from the "Entity" tab and click on system entities. For better designing I recommend you check this documentation
I would like to create stock bot which can have basic conversation and give me stock price in conversation.
To get stock price i am using yahoo finance api.
For basic conversation i am using
IBM watson conversation api
I have also used
IBM NLU (natural language understanding) Api
to verify different company names asked in different manner but i am not getting expected result.
For example if i search
"What is price of INFY?"
then it should give me correct answer and should filtered out as my action should be to pass INFY in yahoo finance api. This should also work if i change format of question asked.
Below is the flow chart setup which i made on node-red panel of bluemix (IBM).
Could you help me to find out exact api's and flow which could help me achieve my goal.
This is a pretty big one, but at least some first impression comments...
Watson Conversation Service is already integrated with NLU component - the intents and entities TAB. The company names could be extracted from the input text with the use of entities and entities synonyms. Drawback here is that the user needs to list all the possible variants of how the company name can look like, but on the other hand, the entities specification can be imported in the Conversation through a csv file.
In general the integration of Watson Conversation service and some 3rd party services needs to be done outside the Conversation service - as it as of now - does not explicitly support calling of 3rd party APIs, so the node.js solution here seems a sound one. What you need to specify is how the integration of WCS and 3rd party services will look like. The general pipeline could look like:
user inputs text to the system
text goes to Watson Conversation Service
the intent and company name is extracted in WCS
WCS sends text output + sets a special variable in the node output field such as "stocks" : "Google" that will tell the node.js component that sits after the conversation service to find out and include stocks market value of Google inside the output text
Now - back to your solution - it might make sense to have also a dedicated NLC service that will be used only to extract the companies name in the system. However I would use this only if it would turn out that e.g. entities in WCS service are not robust enough to capture the companies properly (my feeling here is that for this particular use case the entities with synonyms might work ok).
I am using Watson Conversation services on Bluemix. We have multiple Conversation workspaces within the service to enable better segmentation of the problem space.
I need to load information on the set of available workspaces within the Conversation service (e.g. name, workspace ID) to allow me to target the appropriate Conversation API endpoint. I've been trying to find a Watson or Bluemix API to allow me to retrieve the information directly but have not had any success.
Does anyone know if it is possible to retrieve this information programmatically and if there are any best practices for doing so?
We don't have an exposed endpoint for this capability at this point. It is something being discussed internally, however.
The API for managing Conversation workspaces is now available. It is possible to list workspaces, to create/update/delete a workspace and to download an entire workspace. The API is supported by the Watson SDKs.
Using the new API, I wrote a small tool for managing Conversation workspaces. The tool shows the API in action. The source is available on GitHub to demonstrate how the API can be of use.