title | description | icon |
---|---|---|
Slack Bot Setup |
How to set up a Slack bot to automatically answer questions |
slack |
Onyx will connect to your Slack and listen for messages to answer.
You can easily configure rules for what channels Onyx should respond in, what knowledge sets should back each configured channel, and set filters to respond or not respond to different types of messages.
When Onyx identifies valid questions, it will respond in the message thread with:
- An LLM generated answer
- Quotes of the most relevant excerpts
- Sources with highlighted keywords
Onyx also provides a configuration page so you can create custom settings for each slack channel (or you can just use the default settings for all your channels).
Since we are using Web Sockets, Onyx is able to initiate the connection. This means that this is able to work even if you are running Onyx inside a firewall protected VPC.
Note: You must be an admin of the Slack workspace to set up the Slack bot.
- Navigate and sign in to https://api.slack.com/apps.
- Create a new Slack app:
- Click the Create New App button in the top right.
- Select From an app manifest option.
- Select the relevant workspace from the dropdown and click Next.
- Select the "YAML" tab, paste the following manifest into the text box, and click Next:
display_information:
name: OnyxBot
description: I help answer questions!
features:
app_home:
home_tab_enabled: false
messages_tab_enabled: true
messages_tab_read_only_enabled: false
bot_user:
display_name: OnyxBot
always_online: true
slash_commands:
- command: /onyx
description: Get back a private answer!
usage_hint: Put your question here!
should_escape: false
oauth_config:
scopes:
bot:
- app_mentions:read
- channels:history
- channels:join
- channels:read
- chat:write
- commands
- groups:history
- groups:read
- im:history
- im:read
- mpim:history
- reactions:write
- users:read.email
- users:read
settings:
event_subscriptions:
bot_events:
- app_mention
- message.channels
- message.groups
- message.im
- message.mpim
interactivity:
is_enabled: true
org_deploy_enabled: false
socket_mode_enabled: true
token_rotation_enabled: false
- Click the Create button.
- Generate an
App-level Token
; Under Basic Information, scroll to the App-level tokens section and click the button to generate an App-level token. (learn more)
Add theconnections:write
scope to the app-level token and click Generate. Copy this somewhere safe for now, as you will need this later to initiate the Web Socket-based connection to Slack. - In the app page, navigate to the OAuth & Permissions tab under the Features header.
- Under OAuth Tokens for Your Workspace, select
Install to Workspace
and Allow the app. - Copy the Bot User OAuth Token, this will be needed later to enable us to respond to messages as OnyxBot.
Start by finding the admin page in the top right of the Onyx web UI.
On the left hand menu of the admin page, navigate to the bottom to Bots.
Provide your Slack Tokens and Onyx will start to respond to your slack channels after a short startup delay.
There are also a set of less often used / more advanced configuration options available via environment variables that can set things like how many "Reference Documents" to show per answer, etc. Refer to the available configs here