Dans ce guide, vous apprendrez à créer un agent SlackBot. Ce bot vous permet de poser des questions sur vos données ClickHouse directement depuis Slack, en langage naturel. Il utilise ClickHouse MCP server et PydanticAI.
Prérequis
- Vous devez avoir installé
uv - Vous devez avoir accès à un espace de travail Slack
- Vous devez disposer d'une clé API Anthropic ou d'une clé API d'un autre fournisseur de LLM
Créer une application Slack
- Accédez à slack.com/apps, puis cliquez sur
Create New App. - Choisissez l'option
From scratch, puis donnez un nom à votre application. - Sélectionnez votre espace de travail Slack.
Installer l'application dans votre espace de travail
Ensuite, vous devez ajouter à votre espace de travail l'application créée à l'étape précédente. Vous pouvez suivre les instructions de "Add apps to your Slack workspace" dans la documentation Slack.
Configurer les paramètres de l'application Slack
- Accédez à
App Home- Sous
Show Tabs→Messages Tab: activezAllow users to send Slash commands and messages from the messages tab - Accédez à
Socket Mode- Activez
Socket Mode - Notez le
Socket Mode Handlerpour la variable d'environnementSLACK_APP_TOKEN
- Activez
- Accédez à
OAuth & Permissions- Ajoutez les
Bot Token Scopessuivants :app_mentions:readassistant:writechat:writeim:historyim:readim:writechannels:history
- Installez l'application dans votre espace de travail, puis notez le
Bot User OAuth Tokenpour la variable d'environnementSLACK_BOT_TOKEN.
- Ajoutez les
- Accédez à
Event Subscriptions- Activez
Events - Sous
Subscribe to bot events, ajoutez :app_mentionassistant_thread_startedmessage:im
- Save Changes
- Activez
- Sous
[object Object]
Créez un fichier .env à la racine du projet avec les variables d'environnement suivantes
qui permettront à votre application de se connecter au SQL playground de ClickHouse.
SLACK_BOT_TOKEN=your-slack-bot-token
SLACK_APP_TOKEN=your-slack-app-level-token
ANTHROPIC_API_KEY=your-anthropic-api-key
CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
CLICKHOUSE_PORT=8443
CLICKHOUSE_USER=demo
CLICKHOUSE_PASSWORD=
CLICKHOUSE_SECURE=trueVous pouvez adapter les variables ClickHouse pour utiliser votre propre serveur ClickHouse ou votre propre instance Cloud, si vous le préférez.
Utiliser le bot
-
Démarrez le bot :
uv run main.py -
Dans Slack :
- Mentionnez le bot dans un canal :
@yourbot Who are the top contributors to the ClickHouse git repo? - Répondez dans le fil avec une mention :
@yourbot how many contributions did these users make last week? - Envoyez un message privé au bot :
Show me all tables in the demo database.
- Mentionnez le bot dans un canal :
Le bot répondra dans le fil en utilisant, le cas échéant, tous les messages précédents du fil comme contexte.
Contexte du fil : Lorsqu'il répond dans un fil, le bot charge tous les messages précédents (à l'exception du message actuel) et les inclut comme contexte pour l'IA.
Utilisation des outils : Le bot utilise uniquement les outils disponibles via MCP (par exemple, la découverte de schéma et l'exécution SQL) et affichera toujours le SQL utilisé ainsi qu'un résumé de la manière dont la réponse a été trouvée.