
Ask HN: How to get started on developing an enterprise AI assistant? - dmode
I am planning on developing an enterprise focused AI assistant, that will answer common employee questions. I have decided to build a desktop app using Electron and Node JS &#x2F; Javascript &#x2F; Socket.io. I am working with a guy who is a data scientist and he knows AI and NLP. However, I am not sure whether I want to build the bot from scratch. Is there a common framework &#x2F; open source library or other options that I can use to get a head start. Something that will have a basic UI and a simple framework which I can extend upon. I looked at Rocket Chat, but it appears completely built out and I am not comfortable deploying something where I won&#x27;t know 90% of the code.
======
sharemywin
At the other end is pubnub or something like that which is a real time
messaging api.

------
jimsmart
Check out some of Siraj Raval's videos[0], he has several on building
chatbots, one of which is less interesting/relevant as it uses a third-party
API, but the others use neural networks IIRC.

[0]
[https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A](https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A)

~~~
jimsmart
Obviously, being a neural network, you won't know 90% (or more) of what's
going on inside the model — which might therefore raise similar concerns.

------
mindcrime
There are about an infinite number of answers to this question, and half the
answers are really just more questions. Some of it depends on how
"intelligent" you want it to be. Worst case, you'll have to invent AGI.

Short of that, there are a ton of places to start. You _might_ start by
reading all of the papers published by the folks behind the START question &
answer system:

[http://start.csail.mit.edu/index.php](http://start.csail.mit.edu/index.php)

If you can accept something that's fairly dumb, and requires a bit of up-front
coding, you could just code up a chat-bot using AIML. Or you could start with
a fairly dumb AIML bot and incorporate additional techniques over time. You
could probably tie in OpenNLP or CoreNLP or something, figure out ways to use
WordNet, ConceptNet, SyntaxNet, the OpenCyc knowledgebase, dbPedia, Wikidata,
etc. and make something that could answer a lot of questions. Figuring out how
to make it learn is a much bigger challenge, as is integrating all of the
various ML/AI techniques out there that might be applicable.

You might also get some mileage out of something like Quepy[1], a framework
for translating natural language into structured queries (think, SPARQL, SQL,
etc.)

If you just want to get your feet wet and start exploring, I'd look here:

[http://www.alicebot.org/downloads/programs.html](http://www.alicebot.org/downloads/programs.html)

If AIML bots aren't "smart" enough for you, start exploring other techniques.

[1]:
[https://github.com/machinalis/quepy](https://github.com/machinalis/quepy)

~~~
dmode
Thank you very much. Really appreciate all the details. Can I ask one more
question ? In addition to the AI and NLP stuff, is there a framework that
already has the basics underpinning of a bot - example, has a decent UI,
backend infrastructure for asynchronous messages, solves continuous scrolling
etc.

~~~
mindcrime
I'm not sure off the top of my head. Possibly. I assume you're planning
something web-based, since you mention continuous scrolling? I tend to use an
XMPP interface for "bot" type things, so I don't know as much about what
frameworks exist for doing this stuff in a more web-centric form.

