A chatbot for a local BlueBlubbles server.
Go to file
Daniel Dayley a3e5e364a7
All checks were successful
git.cronocide.net/bluebubbles-bot/pipeline/head This commit looks good
ChatGPT should not respond to it's own messages
2023-04-18 09:39:26 -06:00
bin Added basic ChatGPT as a skill 2023-04-17 22:46:50 -06:00
persona ChatGPT should not respond to it's own messages 2023-04-18 09:39:26 -06:00
build.sh
Dockerfile Dockerfile updates 2023-04-11 00:19:32 -06:00
Jenkinsfile
LICENSE
README.md Added basic ChatGPT as a skill 2023-04-17 22:46:50 -06:00
setup.py Added basic ChatGPT as a skill 2023-04-17 22:46:50 -06:00

bluebubbles_bot

A chatbot for a local BlueBlubbles server.

Build Status

Usage

usage: bluebubbles_bot [-h] [-l LOG] [-v]

optional arguments:
  -h, --help         show this help message and exit
  -l LOG, --log LOG  Specify a file to log to.
  -v, --verbose      Include verbose information in the output. Add 'v's for more output.

Example:
	bluebubbles_bot -h

bluebubbles_bot loads instances of the PersonaSkill class from python files in the skills folder. You may configure the skill by specifying startup and shutdown functions to configure your skills as required. It will be helpful to follow the examples in the skills folder for designing your skills for the bot.

Installation

As with most of my software, this can be installed as a python package or a Docker container.

  • pip3 install bluebubbles_bot
  • docker build -t blue_bubbles_bot .

Configuration

The following environment variables must be set to configure the bot:

BB_SERVER_URL : The URL of the BlueBubbles server, including protocol and port.

BB_SERVER_PASSWORD : The password to the BlueBubbles server.

BIND_PORT : The port to bind to to receive callbacks from the BlueBubbles server.

USE_PRIVATE_API : Whether or not to use the Private API in BlueBubbles. Default is false

Configuring Skills

Each skill consumes it's own environment variables to configure and run. Here are some of the configurable options for the included skills:

chatgpt.py

OPENAI_API_KEY : The API key to OpenAI, from OpenAI.

OPENAI_ORGANIZATION : The Organization ID from OpenAI.

RESPONSE_PREAMBLE : Instructions to ChatGPT for how it should respond and behave, given as a preamble for any conversation with it. A default preamble is provided (see persona/skills/chatgpt.py.

Justification

Initially all I wanted to do was translate Apple Music links to Spotify links and vice-versa. But building platforms is more fun than building tools.