In 2011, when IBM’s Watson beat Ken Jennings and Brad Rutter at Jeopardy, the geek in me was giddy. Here was years of research on artificial intelligence and machine learning put into practice on live television, for all to see. And it won.
The feat was impressive, but I wasn’t holding my breath for a Watson of my own anytime soon. With 100 IBM Power 750 servers (and a massive cooling system to match), Watson was so big and beastly that it couldn’t stand alongside its human competitors.
Watson is powerful and may be potentially useful to many individuals and organizations in the future. But for now, I have other, more mundane problems. Like sifting through email, finding a rental car, and managing my calendar. It’s my understanding that Watson can’t do that yet, or at least isn’t available for such lowly tasks.
A Personal Assistant for the Rest of Us
Enter x.ai, an NYC-based startup that has created an AI-powered personal assistant that schedules meetings for you. Here’s how the product works. You connect your calendar to x.ai. When you begin the usual song and dance over email to schedule a meeting, rather than look at your calendar for a time, you delegate to Amy (or twin Andrew) Ingram by cc’ing amy@x.ai (or andrew@x.ai). Once you copy her in, she takes over the thread, finds a mutually agreeable time and place, and sets up the meeting for you.
I recently sat down with one of the x.ai founders, Alex Poon, to discuss what they’re up to and how they’re building the product.
How x.ai Works
I arrived early for our meeting at x.ai’s Wall Street office, and spotted Alex playing Ping Pong with a coworker. I waited for him to finish the game (I believe he won), and we sat down in the nearby lounge. Clad in a casual, startup-chic hoodie, Alex begins to tell me about the technology that makes up the platform and the way information flows through it.
“We first ingest the email, and very quickly break it apart into the pieces we want,” explains Alex, “then we store that information in MongoDB immediately.” x.ai runs entirely on MongoDB and AWS.
Natural language processing is a major component of x.ai’s stack. The information passes through a number of natural language processing modules built in Scala to extract the information it needs – names, dates, times, locations and so on. To facilitate this workflow, x.ai uses Amazon’s Simple Queue Service (SQS).
Ultimately, the information enters what Alex and his team internally call Idris– the brain of x.ai, a supervised learning engine that can understand the context of the meeting and relevant emails. (Idris is a name borrowed from Doctor Who: “a humanoid woman who was used as a host for the matrix, or consciousness, of the Doctor's TARDIS.”)
Idris maintains the context of each meeting. It knows what was written throughout the conversation, and it tracks the progress of scheduling the event. Based on the progress, it drives the conversation toward obtaining all the necessary information to confirm the event. Idris can enrich the metadata of the meeting and the participants to ensure that x.ai schedules a meeting according to the appropriate parameters, like a participant's calendar availability and meeting preferences. The data is once again stored in MongoDB before it is shipped off to the next module.
Once x.ai knows what times to suggest for the meeting, it passes the object along to a module that figures out what to write back. Using a set of dynamic email responses stored in MongoDB, Amy crafts the follow-up.
And that’s the basic lifecycle of a meeting in x.ai.
x.ai uses Mongoose and Node.js for the front end. (This front end is for its team of developers only, as there is no front end visible to the end user.) It has also built an app to monitor Idris, which allows the engineering team to see all scheduling in flight. x.ai has a data set for training Idris offline, as well as a production model upon which Idris relies to schedule meetings in real-time. Both of these are stored in MongoDB. Alex mentioned that the team is interested in exploring some of MongoDB’s text and geospatial analytics capabilities, but it hasn’t yet begun to use those for its production system.
x.ai uses replica sets for HA, and to ensure the data is always there in case of data corruption or an outage at AWS, it relies on backups from MongoDB Management Service (MMS).
x.ai <--> MongoDB
I asked Alex to tell me a bit about why he chose MongoDB for x.ai. Sitting back at a small table in the lounge, he said rather casually, “It’s just so easy to explore your model – your business model, your data model.” In fact, this is the second company that Alex and his cofounder have built that runs entirely on MongoDB. (The other company, Visual Revenue, is a real-time predictive analytics platform that helps editors make better decisions about content creation and placement. It has since been acquired by Outbrain.)
x.ai’s product is sufficiently far along that Alex says his team now only makes significant changes to the data model once every couple months. What about at the beginning, I asked. “Oh, well at the beginning it was more like weekly. I mean, all you have to do is add a field, and boom you’re done. We were iterating a lot then.”
I was curious how often x.ai ships releases. Many of the customers I talk to at Fortune 500 companies are looking to move from 12-18 month cycles to shorter cycles in the realm of 6 months. “Ummm, we don’t really do releases. We’re on weekly sprints...continuous integration,” remarks Alex, as though he couldn’t tolerate anything more slow. To him, it’s a given that they’ll iterate every week. I love it. (By the way, Alex is hiring data scientists, data engineers, web application engineers and backend engineers.)
My final question to Alex as we wrapped up: “So, I’d love to try x.ai...how long is your waiting list?”
He glanced away for a moment as he stretched, and then he smiled. “Very, very long.”
Interested in x.ai?
x.ai’s platform has a number of interesting data modeling and architectural characteristics. The x.ai team will be at MongoDB World this June, presenting on how they built their backend. If you’re interested in learning more, register now and come see x.ai and 100+ other sessions.