Skip to content

slack bot written in go that processes DM's / app mentions and replies with chat-gpt's response

License

Notifications You must be signed in to change notification settings

drkennetz/slackgpt

Repository files navigation

slackgpt

GitHub go.mod Go version GitHub Workflow Status Issues

slackgpt is a simple slack bot server which handles DM's and app mention events, sending the event to chat-gpt and responding to the channel with chat-gpt's response.

slackgpt can respond to both direct messages, or threads in a channel. It can handle multiple conversations concurrently, enabling parallel conversations to happen simultaneously in channels it has been added to.

Table of Contents

Quick Start

Build the binary, add tokens to config, and run!

Build

# requires >= go 1.18 to build from source
git clone https://github.com/drkennetz/slackgpt.git
cd slackgpt && go build -o ./bin/slackgpt

Config

For a more thorough walk-through of setting up the bot and getting tokens, visit this detailed doc.

CGPT_API_KEY=sk-...z7
SLACK_APP_TOKEN=xapp-1-...47
SLACK_BOT_TOKEN=xoxb-...S0

Run

Help

This program is a slack bot that sends mentions to chat-gpt and responds with chat-gpt result

VERSION: development

Usage: slackgpt --config CONFIG [--type TYPE] [--debug]

Options:
  --config CONFIG, -c CONFIG
                         config file with slack app+bot tokens, chat-gpt API token
  --type TYPE, -t TYPE   the config type [json, toml, yaml, hcl, ini, env, properties]; if not passed, inferred from file ext
  --debug                set debug mode for client logging
  --help, -h             display this help and exit
  --version              display version and exit

Run

./bin/slackgpt -c ./config.env [-t config type] [--debug]
2023/02/01 14:53:19 Config values parsed
socketmode: 2023/02/01 14:53:19 socket_mode_managed_conn.go:258: Starting SocketMode
2023/02/01 14:53:19 Connecting to Slack with Socket Mode...
...

DMS

Conversation in DM's

DMS

Threads

Conversation in threads

Threads

Slack Commands

Command Description Usage Example
clear convo clear conversation of thread where command is called '@slackgpt clear convo'

Contributing

Please follow the Contribution File to contribute to this repo.

Issues

To submit an issue, select the issue template that most closely corresponds with your issue type and submit. Someone will get to you soon!

Code of Conduct

Please note that slackgpt has a Code of Conduct. By participating in this community, you agree to abide by its rules. Failure to abide will result in warning and potentially expulsion from this community.

About

slack bot written in go that processes DM's / app mentions and replies with chat-gpt's response

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published