This is a code repo that shares my personal telegram bot. The bot is a side project I built combining IBM's Watson AI services and other third party APIs. The integration of all services happens on a Node-RED server hosted in the IBM Cloud.
All of this is possible with a free account.
The bot's capabilities shown below can of course be used in many other use cases. So you might wonder what the bot is capable of doing? It can see, hear and understand in a way that resembles us humans. Check out the following demos...
One of the bot's skills is to see what you see
Also, you can dictate your bot something and it will transcribe the spoken words for you. The supported languages are:
English | French | German | Spanish | Japanese | Korean | Mandarin | Arabic
The bot can also assist you with translations. It will automatically detect which language the input has and translate it to the user desired output language.
Get the latest weather updates by asking your bot for it. The location is picked from your input and then translated into coordinates by a third party. These coordinates will be used to query the Weather Company's database and return accurate results.
- Free IBM Cloud account
- Bot created with Telegram's Botfather
- Free opencagedata account
- The Telegram messenger installed on your smartphone
The following IBM Cloud services need to be instantiated. Free/light plans are always sufficient. No need to add any payment method.
- Watson Assistant
- Watson Visual Recognition
- Watson Speech-to-Text
- Watson Language Translator
- Weather Company Data (UPDATE 08.11.2019: Service no longer available on IBM Cloud. Get an API key elsewhere)
- Node-RED
The following modules are required and can be installed directly in Node-RED (equivalent to "npm install")
- node-red-bluemix-nodes
- node-red-contrib-telegrambot
- node-red-node-cf-cloudant
- node-red-node-watson
- node-red-contrib-media-utils
The Node-RED server in this example is hosted on the IBM cloud but it can just as well run on any local device such as a Raspberry Pi or other servers/desktops/laptops as long as they have internet access. Check the instructions.
Thanks to Node-RED and the well documented APIs it's really no rocket science. If you want to get started yourself, check out the build folder for instructions. Feel free to modify the existing project to your needs. In case you want me to integrate other skills, send me a message and I'll see what I can do.
So far not every possible user exception is caught and dealt with. Since it is just a demo, I left that out for now.