Man, i really love wit.ai, one of the coolest projects i've worked with. Unfortunately, these days i'm becoming jaded to X as a Service. Things like hosting or databases as a service are quantifiable, i have an idea of how much effort it takes me to migrate away... but AI? Especially the cool AI flavored NLP that wit.ai offers - it's just too hard to migrate away from for me.
With that said, i understand how hard doing this in a home baked way could be. I think i just won't be happy until we have repositories of standardized ai training sets or baked results (forgive any pseudo terms). It just feels like these days, using awesome AI services means cementing yourself into the service, and making their service stronger as you increase their datasets and training.
As much as i really do love wit.ai, i just don't want to use these types of services unless my backs against a wall.
(cofounder of Wit.ai here) Thanks for your kind words :)
I understand your concerns, here is my take.
X as a service allows you to get X with a lot less efforts.
It allows you to understand the problem and your needs by getting started quickly. Over time, if X as a service saved you enough time and you become successful, you can choose to develop an expertise in X and cut the dependency.
Wit is also about building a community of developers and advancing the state of the art of NLP in apps. Once the bot engine matures a bit, we'll be focusing again on the community aspect of Wit and hopefully advance the field enough so that efforts like the standardization you mentioned are started.
> X as a service allows you to get X with a lot less efforts.
I think it's more accurate to say that it allows you to borrow X. It's very true that it helps to bootstrap your own product and eventually if things work out you can bring X in-house.
My worry about everything-as-a-service is that until that point, each different service that you use is an another vulnerability to your product. This goes double for specialized services like AI, where unless you already have experts in that field, you're unlikely to have the expertise to replicate the service in-house. (Although by that same token, in this case without the service you couldn't provide your product anyway.)
There's little risk of depending on external services if you use multiple that provide the same type of service hidden behind an abstraction layer and can remove one of the vendors from the mix with the press of a key.
That mitigates the risk of depending on services, but it introduces a huge new risk by committing development time to a feature that provides no value to the user and potentially, if the providers last, no value to the business either.
Any startup founder who follows this strategy is concentrating on the wrong thing. Pick the provider who's most likely to last and build against their service. That way you are more likely to fail than they are.
You're conflating "using an external product" with "using an external service". The third option is self-hosting a third-party product, which gives you the best of both worlds (reduced development cost and time, reduced risk due to continued reliance on third party).
Could you explain why it is in your best interest to do so? Unless your community-based efforts are focused on "built on Wit", you would be actively lowering the bar to entry.
From a company standpoint, the commoditization of the GP's comment is directly counter to your incentives as a business.
Not sure I correctly understand your question, but I'll give it a shot.
Today, Wit offers many advantages out-of-the-box so you don't have to setup your own solution.
As NLP gets more commoditized (e.g. through open-source, open datasets), Wit will have to provide even more value than today to stay relevant. Value can be ease of use, accuracy, etc. That's how the field makes progress.
Regarding best interest, if you mean FB's best interest, FB wants more intelligent bots in Messenger, VR, etc. It makes sense to provide the tools to do so. Opening these tools also helps make them better (why is FB open-sourcing React for example?)
If you mean the Wit team's best interest, we're always happy to provide better tools to developers and innovate in AI / UX. That's why we started Wit after all :-)
I believe we share the same goal: make it easy to build smart bots. This is a very hard problem, all of us are far from solving it. It's good that different approaches are tried.
I really like the "deliberate overfitting of stories to make them behave like rules" approach. It's the kind of thing that sounds obvious as soon as you say it, but only comes from deep immersion in the problem space.
I'm thinking of lots of other places I can use it too now - is there a name for this approach yet?
Hey Ar7hur,
Awesome Bot Engine - thanks. 2 questions, if I can:
1. How much of an inspiration did the Telegram bot API make on your dev team?
2. What's the NLP back-end for it and what are your plans for duckling? I forked it a while ago and was going to add some languages I know - would that be useful?
1. None, AFAIK their API is a way to send and receive messages, but does not provide automation. Am I wrong?
2. We use a combination of traditional NLP (CRF NER, maxent classifiers) and deep learning. The "old" stuff needs less data to be trained. We'll continue to support duckling, we always love PRs, please help us!
i've seen/heard that wit.ai likes to use clojure (lisp for AI programming? of course!). was clojure used to power Bot Engine? if so, how did your team like the experience?
The team loves it. We're shipping features quickly and it integrates nicely with all the FB infrastructure (via Java). And of course, once you taste REPL-driven development.. you cannot go back :-)
I was wondering if there is any way to have predefined stories? I'm sure there is already a bunch of "weather" stories or "how are you" stories that must come over and over. I don't want to spend much time on it
So far my experience have been terrible. Worse experience than the previous version. It is difficult to understand how stories work.
It doesn't fit well with the Facebook messenger platform.
Lacks documentation and examples. There is no support for story branching, conditional flows, or intents.
What is Merge supposed to do.. How is it possible for my server code to know what to merge the entity into context, without knowing the intent.
No, it was rushed because F8 was getting close, we're a small team and we had ambitious goals in terms of features!
We had planned to release the Bot Engine at F8 long before MSFT's announcement. If you ask me, F8 might have affected their timing more than the other way around ;-)
With the Messenger platform being opened up today as well, are there currently plans to provide some kind of boilerplate integration between the Messenger api and the wit.ai HTTP api?
Been playing with the Bot Engine all day btw - great product so far :)
What would be a business use-case? For example, we heavily use Slack for ops notifications (PagerDuty, Datadog, Opbeat), is the hope that companies will adopt Facebook messenger like companies adopt Slack?
How can users communicate with a Bot Engine bot? Since wit.ai is part of Facebook, I naturally wonder if these bots will be locked into the Facebook platform.
Bot Engine is not tied to the Facebook platform.
It exposes an HTTPS API that you can use from anywhere. Slack, the command-line, Messenger, a VR app, etc.
We don't make assumptions on your platform.
With that said, i understand how hard doing this in a home baked way could be. I think i just won't be happy until we have repositories of standardized ai training sets or baked results (forgive any pseudo terms). It just feels like these days, using awesome AI services means cementing yourself into the service, and making their service stronger as you increase their datasets and training.
As much as i really do love wit.ai, i just don't want to use these types of services unless my backs against a wall.