Cloudkibo / ChatBot

AI Chat Bot
0 stars 1 forks source link

Follow up question on Chatbot for vantros #10

Open jekram opened 7 years ago

jekram commented 7 years ago

I had a demo with Vantors on the ChatBot and album dullah, everything went well.

There were a number of question and action items.

These are ALL discussion items. We will later open sperate task to this work where required. Please answer these then we would have a meeting to discuss this.

  1. I am assuming the there is a confidence factor in API.ai to the question he answers. Some questions would be at 100% if the ask the exact question, some would be at 90% and on some, the bot has no clue or has less confidence. Is this a correct statement? If can we define say if the confidence factor is below 40% then say something like: "Sorry I do understand, please contact xxxx or visit of website....."

  2. On a periodic basis, what is available from retraining perspective. How is the data made available to the trainer on what got answered and what did not? Is it a UI or there is also a data extract. Maybe this is better answered in a demo.

  3. Can we take our instance of API.Ai and move it to our own server. We will probably not do this but the customer was asking that want the flexibility to do that. So just answer it from the perspective of feasibility and how much the work would be.

  4. I think the current chatbot is not tied to CloudKibo account, please steps I have to do to open and attach this Chatbot there. Just send me the link or we can do over go to the meeting. I want to set it up so multiple people can access it.

  5. They want to access to the trainer. We had done the design to provide the trainer. What is the high-level estimate to do this work? Can we give them access to the trainer we are using?

  6. Is API.Ai multi-tenant or we need to implement a separate instance for each customer? I think the answer is a separate instance. So let's assume we have a chat bot of retail and 90% of the rules are common and 10% is unique. How do we keep 90% common? Is there a modular approach? I just need education

Please answer these and then we have a meeting to discuss.

@zarmeen92 @dayemsiddiqui

sojharo commented 7 years ago

Yes, it is a correct statement. Bot is working on rule-based method if question asked falls in certain rule category bot gives the answer correctly. Our bot is not using NLP techniques. These are very sophisticated learning methods and are offered by Microsoft as a solution. Yes, we can show the email address or website in the answer if bot doesn't understand the question.

Api.ai doesn't support retraining up till now. So, by using the API our human trainer can see what was the question asked and what was the answer given by the bot. We would have to extract data in regards of this.

We can create similar UI on our own dashboard which would mimic the behaviour of API.AI dashboard. Customer would use our UI to train the bot and we in turn would call the API.Ai rest endpoints. We can't take out the rule based logic from API.AI as it is hidden inside their logic and we don't know how API.AI trains the bot behind the scenes.

There are two bots. One is created by my Google Account and other is created by Zarmeen's google account. The current one that we are using is from my account. We can only create account on API.AI using google. We can import and export bots. We can do it over the go to meeting.

We are using the API.AI dashboard as our trainer. We would have to design the trainer dashboard on our own server. There is a design document for this. Zarmeen might need to review it again and then she would be able to let us know how much work would be required on kiboengage dashboard.

We can create multiple bots per single account. They are called agents on API.AI. They are not sharing rules between agents. If we create rules for one agent we cannot use them for other agents. Agents are defined separately.

zarmeen92 commented 7 years ago

sir we created a high level design document Chat Bot High Level Design - CONFIDENTIAL Designer Copy https://docs.google.com/document/d/1In4DIA31CDGbwemLTBP62ZZNUnLxvb0pdgpPBfM7s0c/edit#heading=h.743ntjke770v Documentation -> design -> ChatBot

If we need to provide access to the trainer, then we would be required to build the interface similar to API.AI on KiboEngage. From KiboEngage dashboard, we can then call APIs of API.AI to create Intents and Entities and for model training

jekram commented 7 years ago

Thanks for providing the link. What I wanted to understand the effort (number of days) so I can think on set his expectation. Let's talk after the meeting.

jekram commented 7 years ago

@sojharo What you are saying we cannot take API.AI and move it to our server. It is only offered as a service. Correct? This may be a problem as long term they want this whole thing running in the customer environment. So API.AI is not an open source project.'

What about Microsoft?

When you say API.ai does not support NLP. Do you mean voice? or free form text?

sojharo commented 7 years ago

When you say API.ai does not support NLP. Do you mean voice? or free form text?

On a larger perspective, I mean both voice and free form text. But mostly, in our case, it is free form text. I mean user can talk in terms of context and our bot should be able to apply NLP to understand the correct context.

Microsoft offers cloud service for NLP. We need to sign up and account with them to understand how do they do it.

Yes, API. API is not an open source project.

We would look into the API. AI and understand the UI to understand what tasks we need. After creating tasks, we would know the amount of time it takes.

screen shot 2017-06-08 at 12 57 00 pm
sojharo commented 7 years ago

I have looked into the forums of API.AI and found that the core of API.API is not open source. I think this question was asked by Sir Jawaid on May 1.

https://discuss.api.ai/t/is-api-ai-open-souce/6664

The open source things that we had found earlier were actually bots which were using the REST API of API.AI. However, the logic and strategy of core of API.AI is not open source.

sojharo commented 7 years ago

I have found one open source chat bot platform which is entirely written in nodejs and we can deploy it on any server as well.

https://github.com/botpress/botpress

I would need to look more into it by doing test run of it. It also integrates with many other chat platforms like facebook messenger, skype etc.

Regarding the estimation of what amount of work would be required to insert the api.ai type UI in our dashboard, I have listed down tasks that we would be opening to do this work. The UI of API.Ai is little bit sophisticated as it supports lots of features in a small screen area. Therefore, rough estimate is it would take more than 2 weeks if two person work on it dedicatedly.

In the above tasks, I have excluded the analytics page (which is new beta feature in API.AI dashboard)

I found one article which explains difference between many types of bot platforms available:

https://chatbotsjournal.com/25-chatbot-platforms-a-comparative-table-aeefc932eaff

zarmeen92 commented 7 years ago

I have created excel sheet for listing API.AI features supported on their dashboard and supported by their APIs https://docs.google.com/spreadsheets/d/1G3cjHYPlF-2YShMUBgD8-8ujRQUU8QdVeK-fwPFq2ts/edit#gid=0

Documentation -> Design -> Chatbot

jekram commented 7 years ago

@zarmeen92 Thanks

This is very limiting.

Q: Is there a way to use their Dashboard to train and replace their Brand API.AI with KiBoBot brand?

zarmeen92 commented 7 years ago

Yes sir they have released APIs for very limited functions in comparison to what they are providing inside their dashboard. Q: Is there a way to use their Dashboard to train and replace their Brand API.AI with KiBoBot brand? Sir we can do this that for training purpose we use their dashboard and then on our own KiboBot User interface (with our own logo) we query the bot built using API.AI dashboard through /query API.

But we have to think regarding who will use API.AI dashboard. As a developer, for each company we have to go on the API.AI dashboard and then manually create and train Bots for these companies based on their specification and then we can pass the BOT access keys to the Client widget.