Natural Language for Developers
wit.ai
wit.ai
I built a bot recently on it and it was one of the worst experiences I've ever had integrating into a third party API.
By a long shot.
1) chat logic is declared on their buggy web platform, which is inconsistent if you use multiple tabs, and doesn't actually indicate current system status. I had a number of "bugs" whereby my "story" was correct, but attempts to test it failed and only after I gave up and let it be for a few hours did it start to work. Meaning stories that were broken would all of a sudden be marked green after a few hours. Flows that failed would start to work given some unclear quantity of time. Oh yeah, and the opposite too: things that worked while futzing around with their interface would potentially break after a few hours. Delightful.
2) Documentation is horrific. It's not clear from any of their examples how to build anything other than a toy to turn on and off lights. If you can figure out how to build a "yes-or-no" entity that follows two different paths from their "recipes" I will buy you a drink ($10 USD and for the first five people). Just provide proof and a BTC address.
3) Flow control is next to impossible to implement, and when you do, it's totally opaque as to why the bot actually chose one flow over the other.
4) can't currently version your stories, which means you can develop new features without breaking production.
6) their support is horrendous. I have four outstanding questions, all unanswered after, oh, two weeks?
The combination of all of the above means it's INCREDIBLY brittle, hard to reason about and extremely time consuming to develop against.
If Facebook wants people to build bots for their messenger platform, open source wit.ai, and then pay people to develop it. This current state of affairs is untenable, morally questionable for all of the reasons outlined elsewhere in the thread (which have gone unsatisfactorily answered by apparent Facebook employees who should know), and fundamentally broken.
"intent": "tv_onoff",
seems wrong for such simple example.I am assuming however, that you can "train" the AI to suit your particular syntax depending on your app and bot's intended purposes. No doubt as more scenarios are fed into Wit's database, the parsing and intent selection will get better?!?
And "Turn on the TV please" is interpreted as "Turn the TV on to channel 'please'".
And don't invite any physicists round, because "Set the temperature to 293 K in my bedroom" results in a "temperature" value of 293000.
Still, the docs do indeed say you can train it (for sentiment and yes/no queries, at least, and hopefully other things too).
:)
After a proper training run, you have your ambiguous grammar which, given an input sentence, will produce a set of parse trees, and assign a probability to each of them. You will typically choose the most probable one.
The Wikipedia article on PCFG is surprisingly biased on RNA/protein analysis and does not go into much detail on how to train these PCFGs. But it's basically just an EM algorithm using inside-outside weights. See for example https://link.springer.com/chapter/10.1007/978-3-540-78291-9_...
I don't think Wit.ai works as simply as you believe - it isn't merely matching keywords. Unfortunately I haven't been able to find out exactly how it does work. Alexa, and Nuance Mix work the same way as Wit.ai. In my experience it is the superior approach.
Viv is also one to watch but they haven't really said the NLU works yet.
I'm not using their story framework though. Just their intents parser. Using wit entirely for the conversational layer doesn't seem like a good way to go about things.
Overall I'm happy though.
- I wish I could download my data set at will.
But, the new story-based functionality is something I still haven't been able to get comfortable with -- and it still feels very early. So, that part I'm still implementing myself.
And yes, I too wish they they would allow you to download your logs/model. Bugs me that they don't do that (and one of the reasons I'm also looking at api.ai).
They have an impressive product and a great team. It was very smooth to work with their api, and with reasonable accuracy.
Library looks fantastic!
What part of their monetisation plan (privacy whoring to sell ads) is not apparent to anyone who cares to look by now?
With wit.ai, I would be surprised if they decided "privacy whoring to sell ads" is the right way to go.
> Instead, the company said it will explore ways businesses can use WhatsApp to connect with individuals, and will introduce new ways for users to communicate with businesses and organisations that will pay the company to target relevant communications with customers.
>> organisations that will pay the company to target relevant communications with customers
So, their plan is more targeted advertising in the form of "offers" or "deals" etc.
> A bank could use WhatsApp paid account to communicate with its customers about recent transactions and necessary fraud warnings.
> An airline could use WhatsApp paid account to contact its passengers about a delayed schedule or cancelled flight.
I would argue that these do not seem like ads.
I honestly do not understand the logic of people who look at a company, wholly owned by Facebook, and give them the benefit of the doubt when it comes to business tactics, privacy, etc.
There's also more to this type of slot filling than just NER. Again, the necessary techniques are available in academic literature, but not necessarily turn key. Plus, you need to handle parsing after locating the slots. For the parsing, you can take a look at Duckling (https://duckling.wit.ai/) which Wit did open source.
Both on the classification front and the slot filling, open source toolkits might get you part of the way there but not all the way.
Having a training and management UI is also a substantial value add once you use it.
It's just like Twitter saying "We don't need to generate revenue directly from our API and that's why we're opening it all up because what's good for the community is what's good for us!", except that this isn't 2006 and everyone knows better.
If you're ok with helping Facebook improve its AI then I see no reason to worry about the fact that it is free.
Core components such as AI, or even translation shouldn't be outsourced in my opinion, at the very least to be cost efficient, or as in the case of this product, to avoid dramas which can be foreseen.
Business wise and sustainability wise, reinventing the wheel is more often than not better than using a SaaS. Commodity hardware-as-a-service (servers, service bus etc...) is the only exception (but still is far from being a no brainer).
At the end of the day, after all the time and money we spent in college, we should seek a ROI by implementing academic papers whenever we need to.
I understand, and agree with your basic sentiment and point. I don't get why you include Apple with Google and Facebook.
Google and Facebook famously make all their money from offering 'free' services and monetising eyeballs on ads.
Apple famously makes all it's money from (traditionally) selling hardware, and recently, through it's digital media stores.
Apple give very little away "for free" - sure, they don't charge for the OS, but its financed by the purchases of hardware, not being a privacy whore.
What Free service has Apple shut down? Their major that's been around for a while is iCloud/etc, which before was MobileMe, which before was .Mac, which before was iTools.
I don't know the technical details of how those back-end services relate to each other (i.e. evolution from one to the next, being rebranded, or re-built from scratch each time, etc) but there are very few things that they've truly shut down.
For a while after MobileMe and before some of the major improvements to iCloud, Keychain sync was not available, but I'm struggling to think of free services they've actually shut down.
A notice on the FoundationDB site notes that it’s no longer offering downloads of its database software. "
Granted, Apple doesn't acquire at Google's or Facebook's rate, so the sample size is smaller
It happened to Parse, but thankfully they open sourced most of it do you can use it as a stand-alone.