Inspiration
The concept of the Turing Test, a test in which a computer communicates with people in such a way as to trick the user into believing the AI is human, partly inspired Solace. Of course, our bot doesn't go so far as to try and fool its users. However, this initial concept brought us to the idea of making a discord bot - one centred around education because, as students, it is an environment that we are all very familiar with.
What it does
Solace is a discord bot whose wide variety of features are specialized to be most helpful in an educational setting (for instance, a discord server for a course). In particular, Solace's functionality was designed for U of T students and faculty but can apply to any university-level context. Currently, Solace has five functioning features:
- automation of creation and viewing of discussion threads
- SMS messaging alerts for the announcement command
- Solace AI Chat - a channel where users can message an "intelligent" Solace for fun, with course-related questions or for mental health check-ins
- mass creation and deletion of channels (a breakout-rooms-like feature)
- direct messaging management by Solace for messages between a student and instructors
How we built it
We coded Solace in python using the discord.py, neuralintents, and Twilio libraries.
Challenges we ran into
In general, we ran into a large number of bugs in our testing phases, partly because most of our team members were working with discord and AI simulation libraries for the first time. However, this was also largely because the time limit of 25 hours to submit the project didn't allow for as much time to be dedicated to the careful planning of all implementation details before jumping into coding.
Another big roadblock was when we tried to merge all our completed code to test and discovered that neuralintents, the library central to Solace's AI functionality, couldn't be installed on m1 and m2 Mac devices due to dependency conflicts. Thus, merging the code and running the combined parts was left to a single computer, our group's only Windows laptop.
We also attempted to host the bot on Heroku and have the bot run on the cloud. However due to the NLP the project was too large for Heroku to run.
Accomplishments that we're proud of
We're extremely proud that we are able to submit a fully functioning Solace bot by the end of this hackathon with all the features that we planned on implementing from the beginning. At times, this seemed like a very ambitious scope, especially in the midst of debugging endless errors - however, we're very happy to have fulfilled this goal in the end. Not only that, but we also managed to write a full README documentation file and a discord embed of all commands available for Solace.
I think we're also very pleased with the way that Solace's chat feature turned out. Talking with Solace is a lot of fun, and it feels almost like speaking with a real person at times.
What we learned
In terms of hard coding skills, we all received a crash course on how discord.py works and how to integrate different libraries in python code. However, over the last 25 hours, we also gained some valuable knowledge about hackathons and working in development teams in general. Although rewarding, hackathons are exhausting - we learned that we should bring sleeping bags, pillows and lots of snacks and get lots of sleep the night before next time. As for working in development projects, we learned the importance of following the proper workflow in GitHub to ensure that no one's changes get overridden in the main branch, and so we don't lose track of which version of code is where.
What's next for Solace Discord Bot
The great thing about discord bots is that they're never complete - you can always add more features and more commands! Naturally, the Solace that we are submitting is only a prototype-like first stage of what it can be, given more time.
We used Cog from the discord.py library, which allowed us to organize the implementation of Solace's different features in classes within different python files instead of having one enormous main.py script for all of them. This greatly improved the organization and readability of our code and made it a lot easier to add and edit features.
It can also be said that the current implementations of Solace's features are only the foundational base - they can be made cleaner and more sophisticated with time. For instance, just with the Solace AI Chat feature, we imagine that in the future:
intents.json, the training/input-output data that drives Solace's personality and "intelligence" can be expanded so that Solace's responses correspond more closely to random user input messages, making it a better conversation partner.- we might even work beyond
neuralintentsfor the "intelligent" behaviour of Solace's dialogue. The level of sophistication with input-training-values matching is currently not ideal, and the interface is somewhat difficult to work with as there is no documentation.
Due to our implementation Solace can currently only manage one server at a time. Augmenting the program and fixing this limitation would make Solace more scalable and usable, bringing our bot to more users!
Log in or sign up for Devpost to join the conversation.