Engage into interesting conversations with this multi-purpose chatbot
This project interesting conversational agent, beginning with:
- describing itself and its current abilities;
- answering open-ended questions with information from Wikipedia;
- showing Weather data, optionally specifying location; if none is given, the user is asked for the desired city;
- telling Chuck Norris jokes, optionally specifying the category; the list of categories can also be requested.
- languages: HTML5, JavaScript (ES6), CSS3;
- Rivets.js - for data-binding;
- DOMtastic - for DOM manipulation (and traversal).
Python3 ASGI Web server hosted on the CloudFoundry service.
- Uvicorn;
- BareASGI - for serving static files and handling HTTP requests;
- Watson Assistant, for classifying natural language intents ;
- Wikipedia Search API - for retrieving answers to open-ended questions;
- Weather Company Data for IBM Bluemix - for fetching weather information;
- Chuck Norris jokes API.
This project is utilizing two Assistant instances:
- chatbot - for regular intent processing;
- wikibot - for storing search snippets obtained from Wikipedia as intents (questions) with corresponding dialog nodes (answers).
The current model supports the following types of inquiries:
- chatbot-related: identity, description, capabilities;
- weather-related: general information, temperature, wind speed, optionally specifying location; uses last-specified location if none is given;
- Chuck Norris jokes;
In the case where no specific intent is recognized, the query is interpreted as an open-ended question and handled via Wikipedia's Search API; the result is stored in wikibot for later retrieval.