TRY IT OUT
Inspiration
Have you ever gotten a text and didn't know how to reply? Maybe you're too tired to come up with something clever, or perhaps you've left them on read for two weeks and don't know what to say. Say no more. Just send our co:here Natural-Language-Processing (NLP) powered slack bot the message to reply to and it will generate three completely original responses for you—a positive, negative, and random one—along with a suitable meme to go with the reply.
What it does
To activate the Say No More bot, users can send a direct message to user Say No More containing the contents of the text they’d like to reply to. The Slackbot then sends this information to our backend.
The first stage in the backend pipeline uses the gptd-instruct-tft text generation model from co:here along with an associated prompt to generate replies to a given message. In order to generate a range of responses to the message, we designed the prompt to provide a one-line response with a positive, negative, and a random sentiment. This prompt specified both the general goal for the model, and provided several examples of desired performance. Different parameters were tuned including the temperature, training examples, and p value to output the most appropriate, yet interesting, responses.
Next, we use co:here again to figure out which meme to associate with the generated text. We first found a database of the 100 most popular memes annotated with their descriptions. These descriptions are represented in vector space through co:here's text embedding model and cached. Given replies are also projected to vector space and compared with the meme embeddings to find the meme with the minimum L2 error.
The resulting meme and reply are then put into a standard format and sent to the Slackbot. From there, the Slackbot sends the memes to the user as a series of direct messages. These memes can then be forwarded directly to the corresponding channel.
Challenges we ran into
Finding the similarity between a meme and a given reply was difficult. In addition, formatting the resulting reply and meme was difficult due to the different sizes of memes and different lengths of text. The Slack API was difficult to work with at first because of how spread out the documentation was, but turned out to be fine once we got an initial prototype working.
Accomplishments that we're proud of
It was great to be able to get all the different parts of the project working individually, as well as integrate everything together.
What we learned
We learned how to use the co:here API to generate text and learn text sentiment embeddings. We also learned how to use the Slack API to create an interactive bot which could respond to user events, like tagging the bot in a channel or sending the bot a direct message.
What's next for Say No More?
Why don’t we ask the Say No More bot? We would also like to expand into Twitter, Instagram, TikTok, and a separate website in order to allow more users to interact with Say No More!
Query: What’s next for this project?
Positive: More Research!

Negative: More important things like stopping the world from ending.

Random: Discovering new universes and proving the existence of god.





Log in or sign up for Devpost to join the conversation.