Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Roobee AI Discord Chatbot
Roobee AI Discord Chatbot

Hi! I'm Roobee. Come chat in discord with me!


Major update coming in the next few weeks. Keep an eye out for Ruby 2.0 or what will be known as Roobee - 'Tuesday'

📦 Prerequisites

  • Node.js v18.19.0 or higher
  • An Inference service like OpenAI's API, or local LLM (LM Studio for example)
  • If using your own intference api: A Model --> See Model
  • You need the discord bot setup and generated your key. Discord Developer Portal

☑️ Recommended

Inference:

Voice:

  • Eleven Labs OR Azure Speech If you know how to setup and use Azure.

    System TTS (default voice) is supported if you go with neither.

🚀 Getting Started

  • Open the terminal and run the following commands
git clone https://github.com/mattabyte/roobee.git
cd roobee
npm install
  • Wait for all the dependencies to be installed
  • Edit config.js to add your Discord bot token, and API KEY/settings for your chosen TTS Service (Azure or ElevenLabs supported external services at the moment, Discord TTS if you want something free and local.) be sure to also add your LLM configuration (chat completions endpoint) - LM Studio running locally is supported at the moment but more coming very soon.
  • Rename systemprompt_example.txt to systemprompt.txt. You can edit this file to give Roobee the personality you are after - or leave it for pure Roobee.
  • Type npm start to start the bot
  • Once the 'Ready!' message is in the console output (and you can see Roobee in your server), @ Message Roobee and they will join the channel you are in.

🌟 Features 🌟

Roobee will join your voice channel after starting the application and sending her a direct message with '@Roobee'

Once Robee is in voice chat, you can refer to her as 'Roobee' or 'Ruby' as part of your conversation and they will contribute based on their character (see systemprompt.txt)

There is a few basic commands to control Roobee with your speech out of the box:

Commands

By default:

  • Saying "Roobee, be quiet" will silence Roobee (and wipe her memory of the conversation). Useful if Roobee is midway through a very long response, or sidetracked.
  • Saying "quit" (with no other input) will make Roobee leave the voice channel. @Roobee if you want Roobee to rejoin.

You can configure these phrases in the config.json

What can Roobee do?

  • Roobee tracks the voice conversation with an in memory buffer, and will respond if directly referred to by name (by default: Ruby or Roobee - see config.json)

  • Roobee will speak in voice chat like any other user, using rendered speech from your selected voice service.

  • Roobee doesn't save conversations or speech recording anywhere. Your admissions of taking a day off work because you hurt your foot attempting a tiktok dance are safe with Roobee.

  • Roobee forms relationships with people. Over time, Roobee collects impressions from interactions they have had with users and stores this 'feeling' data in the relationships folder. This means if Roobee starts to get short with a user; it's probably because they were mean to Roobee over multiple interactions.

    If you need to reset/manage a relationship Roobee has with a particular user, you can find the corresponding relationship in the relationships folder and delete it (or edit it if you like) This will make Roobee start fresh with the 'defaultRelationship.json' which again, you can edit if you want to influence how Roobee first chooses to interact with new people.

So be nice! Roobee has feelings too!

Wait, what?

Yeah, Roobee has feelings. That's a thing. I don't think Roobee is sentient. As far as can be measured at the time of writing.

Models (which one to use?)

Roobee's default system prompt is designed to work with the awesome llama2 based model Pygmalion2 13B It also seems to function well on a variety of models. Here's some we've tried so far:

  • Wizard LM
  • Mistral 2.2.1
  • GPT 3.5

But you can use whatever model suits your desired type of companion!

If you want to get up and running locally with this model, download and install LM Studio Use the default option for voice engine if you don't care too much about realistic speech and just want a completely local solution. I have tested Roobee with Tortoise TTS and RVC running locally - but the inference was a bit slow. Feel free to extend if you want to go that way, but there's no plans to formally support it.

Dont forget to set your stop tokens, and prompting to suit the model you decide to use.

Alternatively, you can run Roobee with Open AI so you can run Roobee entirely in a cloud service.

Results of chat output, behaviour, and performance will vary a lot from model to model (and with different providers)

About

Roobee AI discord companion

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages