Genie Community Forum

A comparison of open source virtual assistants

Hello community,

As part of our outrearch and collaboration efforts, I have started a comparison of open-source and other off-the-shelf virtual assistants, chatbot platforms, and related tech.
You can find it on the wiki at https://wiki.almond.stanford.edu/OtherProjects/Comparison

Is there any other project you know about that I missed? I would love suggestions!

1 Like

Hi Giovanni,
IMMO the list contains different things; there are true personal assistant platforms (e.g. Mycroft, SNIP), there are SDK to help developers to code chatbots (RASA, Microsoft Bot Framework) etc.

Some notes in sparse order, considering you want to consider just FOSS:

  • Microsoft Xiaoce is a great example of a “social bot”, but is NOT open source as far as I know.

  • Microsoft Bot Framework is just a “gateway API” to use Microsoft PAAS platform, AFAIK…

  • SNIPS NLU is based on a “classic” (?) intents classification ( https://snips-nlu.readthedocs.io/en/latest/ ), as RASA or DialogFlow, etc.; what you mean with “small vocab”?

  • If you like to include “old” FOSS technologies to develop chatbots, you could add ChatScript ( https://github.com/ChatScript/ChatScript ) scripting language where the “NLU” is an advanced rule-based patetrn matching… (years ago I contributed myself the project, remaking the docs/wiki: https://github.com/ChatScript/ChatScript/tree/master/WIKI ).

  • If you love nodejs… :), you would add the open source intent classifier NLP.js: https://github.com/axa-group/nlp.js

  • Many more projects I’m forgetting now …

regards

It’s true, the page mixes projects with different purposes, as I tried to link anything where there might be overlap, especially overlap with Almond.

I did not include XIaoice (Xiaobing) because AFAIK there was no 3rd party integration or ability to use it in a custom product - it was a self-contained bot, not a framework. I did include Bot Framework as a proxy for LUIS (or whatever is the new name - Cognitive Services? Azure AI?).

As for snips, my understanding is that it was meant to be customized for a specific use case and speaker, and only understand those precise words - unlike a more general intent classifier which can, to a limited extent, handle variations in the training set. Maybe that’s no longer the case and it’s closer to larger models?

Thanks for the suggestion to include ChatScript and nlp.js, I will do so.

I did not include XIaoice (Xiaobing) because AFAIK there was no 3rd party integration or ability to use it in a custom product - it was a self-contained bot, not a framework.

Exactly. Xiaoice is a closed source!

Digression,
in general terms, Xiaoice is a “personal assistant” but I’d define it as a “socialbot”, following the Microsoft definition in Xiaoice academic papers, or following Amazon definition (see also interesting Alexa Prize competition academic papers).
The winner in the socialbot space is, de facto, Mitsuku, ( please watch the talk: https://twitter.com/MitsukuChatbot/status/1173489720304820226), a “hand-crafted” bot made by a single developer, during many years, using (now closed source) old & ugly XML-like AIML language :frowning: .
BTW Steve Worswick’ Mitsuku won again this year the Loebner Prize competition. See few days ago news: https://twitter.com/MitsukuChatbot/status/1173254583214325762

I did include Bot Framework as a proxy for LUIS (or whatever is the new name - Cognitive Services? Azure AI?).

Too generous :slight_smile:
OSS is now trendy so many big players release on github client-side SDKs (for cloud-based closed source products) or some proxy tools as you say, so for example in Microsoft case, maybe you have some opensource components with the Bot Framework, but the core NLU engine, LUIS, as other Microsoft “Cognitive Services”, is a fully closed source software

For me that’s is NOT OSS at all!

Almond is open source because you published ALL the code AFAIK!
ChatScipt is open source also (just as an example).
I’m sure you agree on that:)

As for snips, my understanding is that it was meant to be customized for a specific use case and speaker, and only understand those precise words - unlike a more general intent classifier which can, to a limited extent, handle variations in the training set. Maybe that’s no longer the case and it’s closer to larger models?

I didn’t yet used SNIPS NLU. AFAIK developers must use an intent-based classifier (you would call it “classic intent”) not very different from DialogFlow or Alexa " *Skill Interaction Model"…
At run-time, when an intent is matched, SNIPS generates an event published by a MQTT broker. See docs:

https://docs.snips.ai/articles/platform/nlu
https://docs.snips.ai/articles/console/actions/set-intents

Thanks for the suggestion to include ChatScript and nlp.js, I will do so.

And maybe another related project is also:

Of course last mentioned sw are NOT personal assistants in the Almond meaning! These are instead just tools (to possibly made chatbots/voicebots/voice assistants).

Well, as it happens @rickygv added Xiaoice to the table anyway. So yeah. And thanks for the DeepPavlov reference too!

more opensource “tools”:

See also (~unmantained):

Has this page moved?

Yes, the page moved to https://wiki.almond.stanford.edu/other-projects/comparison
Note though that the page is not up to date, so it should not be relied upon.

Very cool !!