Spaces:
No application file
No application file
| --- | |
| title: '🤖 Slack' | |
| --- | |
| ## Pre-requisite | |
| - Download required packages by running `pip install --upgrade "embedchain[slack]"`. | |
| - Configure your slack bot token as environment variable `SLACK_USER_TOKEN`. | |
| - Find your user token on your [Slack Account](https://api.slack.com/authentication/token-types) | |
| - Make sure your slack user token includes [search](https://api.slack.com/scopes/search:read) scope. | |
| ## Example | |
| ### Get Started | |
| This will automatically retrieve data from the workspace associated with the user's token. | |
| ```python | |
| import os | |
| from embedchain import App | |
| os.environ["SLACK_USER_TOKEN"] = "xoxp-xxx" | |
| app = App() | |
| app.add("in:general", data_type="slack") | |
| result = app.query("what are the messages in general channel?") | |
| print(result) | |
| ``` | |
| ### Customize your SlackLoader | |
| 1. Setup the Slack loader by configuring the Slack Webclient. | |
| ```Python | |
| from embedchain.loaders.slack import SlackLoader | |
| os.environ["SLACK_USER_TOKEN"] = "xoxp-*" | |
| config = { | |
| 'base_url': slack_app_url, | |
| 'headers': web_headers, | |
| 'team_id': slack_team_id, | |
| } | |
| loader = SlackLoader(config) | |
| ``` | |
| NOTE: you can also pass the `config` with `base_url`, `headers`, `team_id` to setup your SlackLoader. | |
| 2. Once you setup the loader, you can create an app and load data using the above slack loader | |
| ```Python | |
| import os | |
| from embedchain.pipeline import Pipeline as App | |
| app = App() | |
| app.add("in:random", data_type="slack", loader=loader) | |
| question = "Which bots are available in the slack workspace's random channel?" | |
| # Answer: The available bot in the slack workspace's random channel is the Embedchain bot. | |
| ``` | |
| 3. We automatically create a chunker to chunk your slack data, however if you wish to provide your own chunker class. Here is how you can do that: | |
| ```Python | |
| from embedchain.chunkers.slack import SlackChunker | |
| from embedchain.config.add_config import ChunkerConfig | |
| slack_chunker_config = ChunkerConfig(chunk_size=1000, chunk_overlap=0, length_function=len) | |
| slack_chunker = SlackChunker(config=slack_chunker_config) | |
| app.add(slack_chunker, data_type="slack", loader=loader, chunker=slack_chunker) | |
| ``` |