feeding chatbot with a question and answer excel file amazon lex - amazon

I have all the description of many different products in an excel file and I want the chatbot to respond to the user according to the input of the user. The chatbot should be able to catch some keywords from the queries and search for the most suitable answer from the file. Do I have to use Amazon Kendra for this or is there any other way? I will be very grateful if anyone can help me.

You might find that in this instance Kendra would be easier to work with and would likely provide you with better results than Lex straight out the box.
If you choose to solely use Lex for this, you will need to spend a fair amount of time designing the various intents needed and possibly also a set of Lambda functions to support your Lex bot.
Whereas with Kendra, you simply supply the data for Kendra to ingest and within minutes you have a very powerful search capability. The best part is that you can integrate Kendra into Lex.
The biggest issue will be the cost factor as Kendra is very expensive.
Integrating Amazon Lex with Kendra

Related

Dialogflow CX - Add bulk entities and query them

I’m new to Dialogflow CX and after reading its node.js documentation (I’m a jr Dev) I’m still struggling to get the problem below solved.
PROBLEM: I need my chatbot to receive the question “do you have Toyota Corollas (cars!) in black with less than 20,000 miles, 2017 or newer and cheaper than $15,000 for sale?”
CONTEXT: I have a database with all car makes, models, years, versions, mileage, colors and prices available. The problem is that I can’t (and sorry for how silly this looks) even initiate the bot and I know that after initiating it I would need to create a zillion entities through code (can’t do it manually) so the bot would be able to read all car parameters of the user’s question. Then after reading those parameters (entities) the bot should query my database to check availability of those particular Corollas and then give a proper answer.
ASK: I would be very grateful if you could please help me initiate the Dialogflow CX bot, load all car makes, models, years, versions, colors and prices into it AS ENTITIES and then give the answer that the user needs.
I’ve checked the GitHub quickstarts and read the documentation multiple times but am still very confused.
It looks like you have a few different issues with some of the Dialogflow CX basics. Let's try to clear them up.
How do I initiate the Dialogflow CX bot?
It isn't clear what you mean, exactly, from this.
Dialogflow CX, itself, isn't a bot client. Instead, it provides integrations with various ways to communicate with your agent. This may include telephone integrations, web-based chat systems, and an API so you can integrate with other clients such as Slack.
Your Dialogflow CX agent, itself, is setup using Google's Cloud services, and can support one or more of these integrations.
How do I create a zillion entities through code?
It isn't clear why you need to create a zillion of them, nevermind through code itself.
You likely will want to create a custom entity type for the make/model combination. And it should probably have aliases, so that people could say "Ford Explorer" or just "Explorer" and have it resolve to the same type.
If you really wanted to use an API to do this, you could use EntityType.create to do so. That points to the REST documentation, but based on the language you want to use, there may be a library able to handle it.
Some of the other types, however, can be handled with system entity types such as #sys.color or a numeric type. There's no reason for you to create those.
But what happens if someone asks for a combination that isn't valid?
Then you'll need to tell them it isn't valid. Just like if someone was talking to you in person and asked for something that didn't make sense.
How will it check the database for a good response?
You'll need to make this database call as part of a webhook that you create to implement the business logic.

How to make a chatbot only for searching the excel

I want to make the simplest chatbot for searching the information much easier.
For example, if I ask John’s major, my chatbot will answer that it is Computer science. So simple.
But I found that if I want to make a chatbot which is answering based on database should through webhook thing, and It doesn’t sound easy for me.
Is there any other (easy) way to make chatbot based on excel data or send a query... or whatever databases..
I want to make this on dialogflow!
+If i use chatscript, webhook is not necessary?
You need a webhook to connect to your application which can do what you need.
You have 2 options in DialogFlow:
Webhook URL: to invoke your custom application (here you have all the flexibility you need: access Excel, compute a response, etc..)
Inline Editor: create a Cloud Function on Google Firebase (I have no experience but I expect you can do almost anything you need - check pricing as it is a cloud service)
Setup #1 is not difficult, the harder part is to manage/access the XLS file programmatically.
Best of luck,
Beppe

For a python price finding (webscraper) project, is it possible to take input from user and find that exact product

I am currently attempting to create a python project that asks the user for a product and then displays the lowest price for that product after scraping prices from different websites (e.g. amazon and ebay). However, where I am struggling is that, is it possible to take the user input (name of the product) and then use that input to find that product by webscraping. Would be highly appreciated if anyone could help as I am quite keen to try and succeed in making this idea of mine. Thanks
For amazon, you can try this kind of url : https://www.amazon.com/gp/product/your_asin
You can take the asin as input to browse a product.
However, Amazon is pretty hard to scrape at scale as they have bot mitigation services (captchas, ip blocking etc)
I'm less aware of ebay but I guess it's pretty much the same idea.
The pipeline I would recommend is:
Learning what URLs for the different providers are called to find the prices of the product.
Then creating a module for those URLs fetching the price and details. This is where the actual magic happens. Try to make it flexible so that it can be used by the python script (CLI params as an input) or the WebAPI view (Request params as an input).
You can then create your own web service using Flask/Django which asks the user input and fetch the results as you want. This is more user-friendly.
Or use that module in the Python script. This is developer-friendly.
Later, you can use the endpoint on any frontend.
Hope this answers your doubt.

Add more small talk options into Dialogflow

I am utilising the small talk options within the chatbot that I currently use, however, I have noticed a couple of common questions which seem to be asked which fit into small talk, such as "What is your name?" and "What does you name mean?".
Is there any way in which I can add to the list of small talk questions? If not, how can I add these questions in with their responses? My issue is that I believe that you shall need a new intent for every question that gets asked? Any help would be appreciated.
Using a new intent for every question asked (or at least different versions of the same question with one answer) is the standard Dialogflow design and isn't really a problem.
The small talk functionality is just a big list of questions and answers in separate intents - you can see by looking at the pre built small talk agent through Prebuilt Agents -> Small Talk -> Import.
Therefore I would suggest to simply do it this way.
Initially, small-talk option had this issue which you specified here where users were not able to add more phrases to existing questions or add more questions.
To solve this issue, DialogFlow has introduced Small Talk Pre-built Agent.
There are approx 86 pre-built intents in the small-talk agent.
You can add/modify the phrases in those intents,
You can add/delete intents
You can modify the responses of these intents
To use small-talk agent, go to pre-built agents option in left menu, go to Small Talk agent, then import it.
Hope it helps.
I will suggest to use QnA maker service to achieve the functionality. Basically you have to create a QnA maker service and have to integrate to Bot. It will resolve your query. Please let us know if you need more information .
Regards,
Tharak

Methods For Selective (or Ranked) Chatbot

I am about to create chatbot with NLP or DNN's method. The chatbot is about to reply user's sentence based on a knowledgebase (maybe in a database).
I found LSA/PLSA can be used, but I want to explore any further methods I can use except that. Recently, I was looking for some methods and found that DSSM (Deep Structured Semantic Model) can be an alternative. For anyone who are expertise in this case, would you mind to tell me is this the method I can use or might you suggest me any methods I can use?
By the way, after reading some articles about DSSM, I have misconception about negative samples when training DSSM. If you are about to suggest me with DSSM, please help me to explain it.
So much thank you for all of you, buddies.
Correct me if I'm wrong, but I don't think we have any DSSM platforms available for general use to us as chatbot developers, just yet.
At least not like the currently available language interpreter platforms
(Like IBM Watson, Microsoft LUIS).
I would suggest starting with one of the popular platforms available now and continuing research / watching for developments in deep learning.

Resources