Inspiration

Going into this event, all of us had a fascination with computer vision and machine learning and once we learned about the themes of this hackathon, we decided on implementing our interest into a keybase bot.

What it does

KeybaseVision lets user's call on it by typing the phrase !classify after having uploaded an image to a Keybase channel (which the bot is present in), from which the user will be greeted with a list of guesses of what the item could be followed by a short description of and link to the wikipedia article of the bot's first guess.

How I built it

The bot was built in Node.js, primarily taking advantage of the google cloud vision API for image classification. The next component of the bot utilizes wikijs to provide a short description of the uploaded image to the user.

Challenges we ran into

Many of the difficulties came with implementing the google cloud vision API. It took us a while to debug the code involving the API keys upon setting it up as an environment variable. Primarily, it took us the first while to understand how the Keybase bot service worked and to familiarize ourselves with the documentation. We were able to overcome many of these challenges with thanks to the mentors/sponsors from Keybase. Debugging took us an extremely long time as we realized that much of our code logic had to be changed from synchronous to asynchronous and vice versa. For example, images needed to be fully downloaded before we could play around with them so we needed to use async await in many cases.

Accomplishments that we're proud of

This was our first time creating a Keybase bot and we were proud to be able to create a working product that utilized an API.

What we learned

Aside from learning how to implement the different technologies used in the project, we further familiarized ourselves with asynchronous programming. Along the process, our JavaScript knowledge was significantly increased as well.

What's next for KeybaseVision

There was one functionality that we were unable to complete by the end which entailed uploading the wikipedia main image back to the user in addition to providing the description. This would have been done utilizing http requests for the URL. We would like to use KeybaseVision as a learning tool to help further develop our skill set surrounding the Keybase service and more. In the future, we could potentially look into training our own image recognition ML model as opposed to using the cloud vision API.

Built With

Share this project:

Updates