Projeto de exemploO código deste exemplo pode ser encontrado no repositório de exemplos.
Pré-requisitos
- Você precisará ter o
uvinstalado - Você precisará ter acesso a um workspace do Slack
- Você precisará de uma API key da Anthropic ou de outro provedor de LLM
1
Criar um Slack App
- Acesse slack.com/apps e clique em
Create New App. - Escolha a opção
From scratche dê um nome ao seu app. - Selecione seu workspace do Slack.
2
Instalar o app no seu workspace
Em seguida, você precisará adicionar ao seu workspace o app criado na etapa anterior.
Você pode seguir as instruções de “Add apps to your Slack workspace”
na documentação do Slack.
3
Configurar as definições do app do Slack
- Acesse
App Home- Em
Show Tabs→Messages Tab: habiliteAllow users to send Slash commands and messages from the messages tab - Acesse
Socket Mode- Habilite
Socket Mode - Anote o
Socket Mode Handlerpara a variável de ambienteSLACK_APP_TOKEN
- Habilite
- Acesse
OAuth & Permissions- Adicione os seguintes
Bot Token Scopes:app_mentions:readassistant:writechat:writeim:historyim:readim:writechannels:history
- Instale o app no seu workspace e anote o
Bot User OAuth Tokenpara a variável de ambienteSLACK_BOT_TOKEN.
- Adicione os seguintes
- Acesse
Event Subscriptions- Habilite
Events - Em
Subscribe to bot events, adicione:app_mentionassistant_thread_startedmessage:im
- Save Changes
- Habilite
- Em
4
Adicionar variáveis de ambiente (.env)
Crie um arquivo Você pode adaptar as variáveis do ClickHouse para usar seu próprio servidor ClickHouse
ou uma instância no Cloud, se preferir.
.env na raiz do projeto com as seguintes variáveis de ambiente,
que permitirão que seu app se conecte ao SQL playground do ClickHouse.5
Usando o bot
-
Inicie o bot:
-
No Slack:
- Mencione o bot em um canal:
@yourbot Who are the top contributors to the ClickHouse git repo? - Responda na thread com uma menção:
@yourbot how many contributions did these users make last week? - Envie uma mensagem direta para o bot:
Show me all tables in the demo database.
- Mencione o bot em um canal: