Some time ago I was challenged with a topic for a talk I was suppose to give at FOSSASIA in Singapore, the topic was “Search Engine of the Future”. I came of with the open answer:
"The search engine of the future will give answers to all questions".
Right now there are not only web search engines but also some about weather, news, flight status, sports, jobs, products and so on. The usual process to get answers (for a human) is:
So if we could do an automatization of that process, add a natural language engine (speech to text, text to speech) we would actually not only create the “search engine of the future” but also something that is now well-known as “personal assistant” or “smart speaker”.
The challenge was therefore
"How can we standardize the integration of different search engines and other data sources"
This was the starting point for the SUSI.AI project. We actually created this open-source personal assistant as a RaspberryPi appliance:
The following shows the workflow for the process of a human request:
The tiny small part “skills” is the aggregation of all challenges that has search inside as well, together with a complex rule-based expert system.
As the Smart Speaker actually now existed, we wanted to attach devices in our home and do a steering of these devices.
So because all data sources that are attached to the SUSI.AI smart speaker must provide a JSON API, we needed hardware that has an enablement for that protocol. The following devices had been used: a ESP8255
… and a NODEMCU
We also developed a program that can run of these devices. This is a very simple http server responding with the IO status of the device ports:
It can be tested with a browser and it returns JSON:
The skills using this API in the SUSI.AI skill language:
The result using these skills in a chat:
If you want to see all these things in action, please watch the following video:
SUSI.AI is a large project that has inside a complex expert system-like architecture. The basic data structure that is handled with the SUSI skills is a “SUSI Thought”. And those “thoughts” are simply search result lists. SUSI is the integration of the idea of a meta-search engine together with a rule-based search result selection system:
The core of SUSI is a n expert system which takes in a query, finds skills to process the query and runs a deduction on the rules, instantiated with the query.
This is a large project where dozens of contributors have worked on. If you are interested in the details, please have a look at
- https://susi.ai the SUSI home page and content management system for skills
- The rapid development platform for new skills: dream.susi.ai - just an etherpad (!)
- Source code repository for the susi server and the susi skills
- Download of a SUSI image for the RaspberryPi based Smart Speaker, see also a susi assembly guide video
- the source code for the ESP8266 device
- A development tutorial for SUSI Skills
- The slides from the presentation at NGI FORWARD: DIALOGUES ON THE FUTURE OF SEARCH: “The Future of Search and IoT” (pdf)
Right now we have a very large collection of already-finished skills, please have a look at SUSI.AI and browse through the large skill archive. This shall become the “wikipedia for skills”!
Please make your own skill!