From 9b26aa113b04654d4f435ee8b6d8e741f6dcd438 Mon Sep 17 00:00:00 2001 From: crate Date: Mon, 21 Oct 2024 11:40:51 -0500 Subject: [PATCH] Update README.md --- README.md | 61 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 70eb1e3..c784496 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,52 @@ -GarfBot is a discord bot that uses openai generative pre-trained AI models to produce text and images for your personal entertainment and companionship. +Who is GarfBot? +====== +GarfBot is a discord bot that uses openai generative pre-trained AI models to produce text and images for your personal entertainment and companionship. There are a few ways you can interact with him on discord, either in a server you've invited him to or by direct message: -To interact: (not case-sensitive) +`hey garfield {prompt}` +Responds with text. -`"hey garfield {prompt}"` - responds with text. +`garfpic {prompt}` +Responds with an image. -`"garfpic {prompt}"` - responds with image. +`garfping {target}` +Responds with iputils-ping result from target. +`garfpic {target}` +Responds with dnsutils lookup result from target. -To get started, clone this repo and create a `config.py` file in GarfBot's root directory. Open your favorite text editor or IDE and add your various API tokens as such: +`garfpic {target}` +Responds with nmap scan result from target. + +`garfshop {item} {zip}` +Responds with 10 grocery {item}s from the nearest Kroger location, listed from least to most expensive. + +Installation +====== + +To get started, `git clone https://git.crate.zip/crate/garfbot.git` and create a `config.py` file in the root directory. +Open your favorite text editor and add your various API tokens: ```python -GARFBOT_TOKEN = "token" -OPENAI_TOKEN = "token" -GIF_TOKEN = "token" +GARFBOT_TOKEN = "Discord API token" +OPENAI_TOKEN = "OpenAI API token" +GIF_TOKEN = "tenor.com API token" ``` -If you want to configure a more secure setup, go ahead. -Next, I recommend building a docker image for each bot using the included DockerFile as a template. Run each container binding /usr/src/app to GarfBot's CWD. +I recommend building a docker image using the included DockerFile as a template. Run the container binding /usr/src/app to GarfBot's CWD: -A terraform file has been included to launch all three containers, or you can do it manually. - -Example: ```console crate@raspberrypi:~/garfbot $ docker build -t garfbot . crate@raspberrypi:~/garfbot $ docker run -d --restart always -v $PWD:/usr/src/app --name garfbot garfbot ``` +In case you'd rather not do it manually, a `garfbot.tf` file has been included to launch GarfBot and his friends' containers. -Or if you prefer to install dependencies (from requirements.txt) on you own host and run as a systemd service: +If you prefer to install dependencies on you own host and run as a systemd service: + +```console +crate@raspberrypi:~/garfbot $ sudo nano /etc/systemd/system/garfbot.service +``` +Replace {user} with your username: ```console [Unit] Description=garfbot @@ -38,10 +55,16 @@ After=multi-user.target [Service] Type=simple Restart=always -User=pi -WorkingDirectory=/home/crate/garfbot -ExecStart=/usr/bin/python ./garfbot.py +User={user} +WorkingDirectory=/home/{user}/garfbot +ExecStart=/usr/bin/python garfbot.py [Install] WantedBy=multi-user.target ``` +And finally: +```console +crate@raspberrypi:~/garfbot $ sudo systemctl daemon-reload +crate@raspberrypi:~/garfbot $ sudo systemctl enable garfbot +crate@raspberrypi:~/garfbot $ sudo systemctl start garfbot +``` \ No newline at end of file