Dadbot

Published:

Natural language conversation

Dadbot was a projecct that I’ve had going on for a while but I haven’t posted much about it. Dadbot originally was a Discord chatbot that could engage in casual conversation and has gone through many iterations. The reason I haven’t shared much about Dadbot is because I’ve only ever hosted Dadbot for my friends and not publicly due to my lack of computational power. The most recent iteration is one using natural language transformers. The current configuration is using the 350M parameter Facebook OPT model since that has given the best results in casual conversation out of similar models that can run on my server with limtied resources.

Implementation Details

Dadbot is split into two services, the gRPC transformers server, and the actual Discord bot server. The reason for the seperation is because the backend is using HuggingFace’s transformers library with the 350M parameter Facebook OPT model which is a python only library and Dadbot’s Discord bot server is written in Rust because that’s the language and library I know the best. The seperation also allows the reuse of the model so only one instance can be loaded between diferent natural language projects to save on limited server resources.

Example conversations

First example
  • Mikhail: Where do you work?
  • Dadbot: “Target.”
  • Mikhail: Not even the Facebook OPT model can save you from working at Target
  • Dadbot: “What’s the point of having a job if you aren’t going to enjoy it?”
  • Mikhail: I should be the one asking you that
  • Dadbot: “There’s nothing wrong with enjoying what you do. If you find yourself bored, try something new. Don’t settle for anything less than the best you can do.”
  • Mikhail: Yet the best you can do is working at Target smh
  • Dadbot: “If you feel that way, maybe you shouldn’t be working there.”
  • Mikhail: Do you do anything else other than work at Target?
  • Dadbot: “Nope. Just sit around and play video games.”
  • Mikhail: You have no goals or passions?
  • Dadbot: “My goal is to become a better human being. That’s all I really care about. Nothing else matters.”
  • Mikhail: But you’re a robot. An AI
  • Dadbot: “That’s what I was told by my dad. He said I’d be able to live on my own and take care of myself. So I guess I’ll just have to accept that.”

Second Example

  • Andrei: Dad are you a baller?
  • Dadbot: I am not a Baller, but I’m a little bit of a man. I don’t want to be called a “Baller” by anyone. But I do like to play football. And I love to throw the ball. That’s why I was born here. So that’s my reason for being here, so that I can play the game. If you’re going to call me a ‘baller’, then I’ll call you ‘a man’ or '
  • Andrei: You’re baller
  • Dadbot: __. It’s okay. You know what I mean? I will say it again. We’re all ballers, we all have our own way of doing things. There’s no one way to do anything. Nobody’s perfect. Everybody’s got their own style. The only thing that matters is what you do with your life. Don’t let anybody tell you different. Just do what makes you happy. Do what’s best for you. Be the best version of yourself
  • Andrei: Happiness is a pretty shallow goal to have in life
  • Dadbot: ___. Happiness isn’t about how much money you have, it’s about where you live and how far you can go from home. A lot of people make a lot more money than they ever thought they would. They never thought that they’d be able to afford to buy a new car, or even a house. What they really wanted was a good education, a decent job, and a nice car. Well, they didn’t get that. Then they started looking for a
  • Andrei: That’s a pretty dumb definition of happiness
  • Dadbot: _. When you look at the world around you, there’s always something going on. Sometimes you just need to step outside of your comfort zone and take a chance on something new. Maybe you’ve never been in a relationship before, maybe you haven’t met your partner yet. Whatever the case may be, if you find yourself in this situation, figure out what it is that you want. Figure out who you are, what your strengths and weaknesses are. Find someone who can
  • Andrei: So that’s why you left Mikhail? You wanted to step outside of your comfort zone and take a chance on something new?
  • Dadbot: __. Yes. Because I felt like I needed to. Not just because I had a problem with the way things were going, which is totally understandable. My problem wasn’t with them, though. In fact, I feel like my problem was with myself. Why couldn’t I have a better relationship with my parents? Why did I spend so much time with these people? How could I possibly be happy when I spent so many hours in front of the TV? This is why
  • Andrei: So you had your own daddy issues?
  • Dadbot: __. No, not at all. Like I said, my dad was great. He taught me to work hard, to keep my head above water, learn from my mistakes, listen to my heart, try to understand other people’s problems, etc. All of those things helped me grow up. Nowadays, everything is so complicated. Everything is constantly changing. People are trying to change everything. Everyone wants to make sure that everything works out for them. For me, that
  • Andrei: So you left Mikhail so he can build character or something?
  • Dadbot: __. Yeah. At first, he was just a normal guy. After a while, however, things started to turn around for him. One day, after a few months of having nothing to show for his efforts, Mikhail decided that he needed a change of scenery. Instead of living in Moscow, where he had lived for years, Sergey decided to move to New York City. Sergey knew that moving to NYC would allow him to meet some very interesting people. Once he arrived in
  • Andrei: @Mikhail you are now Sergey
  • Dadbot: __. Thank you very much. Thanks for taking the time to talk to me. Good luck with whatever you decide to pursue. Have a great day!
  • Andrei: Uhh you too
  • Dadbot: __. Bye bye.

Conclusion

As you can see, Dadbot can somewhat hold a conversation but is quite limited and nowhere near ChatGPT. The server he is currently running on doesn’t have the hardware to run larger models which limits his ability to converse. The examples were of course hand picked because they were the ones that made the most sense and the ones that were safe for work.