diff --git a/docs/examples/data_connectors/SlackDemo.ipynb b/docs/examples/data_connectors/SlackDemo.ipynb index 88cca29894f33e9d23788787b82d8797e06b1a00..0f05debf3e9aa0a2194169b2d5149f40ff84afe0 100644 --- a/docs/examples/data_connectors/SlackDemo.ipynb +++ b/docs/examples/data_connectors/SlackDemo.ipynb @@ -15,7 +15,36 @@ "metadata": {}, "source": [ "# Slack Reader\n", - "Demonstrates our Slack data connector" + "Demonstrates our Slack data connector\n", + "\n", + "Requires a Slack Bot. \n", + "Here's a manafest that can be used to create the bot in your slack workspace\n", + "\n", + "```yml\n", + "_metadata:\n", + " major_version: 1\n", + " minor_version: 1\n", + "display_information:\n", + " name: Slack Reader Bot\n", + " description: This bot will index channels for purposes of AI queries\n", + "features:\n", + " bot_user:\n", + " display_name: Slack Reader Bot\n", + " always_online: true\n", + "oauth_config:\n", + " scopes:\n", + " bot:\n", + " - channels:history\n", + " - channels:read\n", + " - groups:history\n", + " - groups:read\n", + " - im:history\n", + " - im:read\n", + "settings:\n", + " org_deploy_enabled: false\n", + " socket_mode_enabled: false\n", + " token_rotation_enabled: false\n", + "```" ] }, { @@ -34,7 +63,13 @@ "metadata": {}, "outputs": [], "source": [ - "!pip install llama-index" + "# venv required because conflicts with default Colab libraries\n", + "! apt install python3.10-venv\n", + "! python -m venv env\n", + "! source env/bin/activate\n", + "! pip install llama-index\n", + "! pip install slack-sdk\n", + "# and restart notebook." ] }, { @@ -46,9 +81,16 @@ "source": [ "import logging\n", "import sys\n", + "import os\n", "\n", "logging.basicConfig(stream=sys.stdout, level=logging.INFO)\n", - "logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))" + "logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))\n", + "\n", + "os.environ[\"SLACK_BOT_TOKEN\"] = \"xoxb-\"\n", + "\n", + "import openai\n", + "\n", + "openai.api_key = \"sk-\" # OpenAI API key" ] }, { @@ -58,9 +100,9 @@ "metadata": {}, "outputs": [], "source": [ - "from llama_index import SummaryIndex, SlackReader\n", - "from IPython.display import Markdown, display\n", - "import os" + "from llama_index import SummaryIndex\n", + "from llama_index.readers.slack import SlackReader\n", + "from IPython.display import Markdown, display" ] }, { @@ -71,7 +113,9 @@ "outputs": [], "source": [ "slack_token = os.getenv(\"SLACK_BOT_TOKEN\")\n", - "channel_ids = [\"<channel_id>\"]\n", + "channel_ids = [\n", + " \"<channel_id>\"\n", + "] # Find this in the URL of the channel; Right-click : Copy : Copy Link\n", "documents = SlackReader(slack_token=slack_token).load_data(\n", " channel_ids=channel_ids\n", ")"