في هذا الدليل، ستتعلّم كيفية إنشاء وكيل SlackBot. يتيح لك هذا البوت طرح أسئلة حول بيانات ClickHouse مباشرةً من Slack باستخدام اللغة الطبيعية. ويعتمد على ClickHouse MCP server وPydanticAI.
المتطلبات الأساسية
- ستحتاج إلى تثبيت
uv - ستحتاج إلى الوصول إلى مساحة عمل في Slack
- ستحتاج إلى مفتاح API من Anthropic، أو مفتاح API من مزوّد LLM آخر
أنشئ تطبيق Slack
- انتقل إلى slack.com/apps وانقر على
Create New App. - اختر الخيار
From scratchوامنح تطبيقك اسمًا. - حدّد مساحة العمل الخاصة بك في Slack.
ثبّت التطبيق في مساحة العمل الخاصة بك
بعد ذلك، ستحتاج إلى إضافة التطبيق الذي أنشأته في الخطوة السابقة إلى مساحة العمل الخاصة بك. يمكنك اتباع التعليمات الواردة في "Add apps to your Slack workspace" ضمن وثائق Slack.
اضبط إعدادات تطبيق Slack
- انتقل إلى
App Home- ضمن
Show Tabs→Messages Tab: فعّلAllow users to send Slash commands and messages from the messages tab - انتقل إلى
Socket Mode- فعّل
Socket Mode - دوّن قيمة
Socket Mode Handlerلمتغير البيئةSLACK_APP_TOKEN
- فعّل
- انتقل إلى
OAuth & Permissions- أضف عناصر
Bot Token Scopesالتالية:app_mentions:readassistant:writechat:writeim:historyim:readim:writechannels:history
- ثبّت التطبيق في مساحة العمل الخاصة بك، ودوّن قيمة
Bot User OAuth Tokenلمتغير البيئةSLACK_BOT_TOKEN.
- أضف عناصر
- انتقل إلى
Event Subscriptions- فعّل
Events - ضمن
Subscribe to bot events، أضف:app_mentionassistant_thread_startedmessage:im
- Save Changes
- فعّل
- ضمن
[object Object]
أنشئ ملف .env في جذر المشروع باستخدام متغيرات البيئة التالية،
والتي ستسمح لتطبيقك بالاتصال بـ بيئة SQL التفاعلية الخاصة بـ 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=trueيمكنك تعديل متغيرات ClickHouse لاستخدام ClickHouse server الخاص بك أو instance على Cloud، إذا كنت تفضّل ذلك.
استخدام البوت
-
ابدأ تشغيل البوت:
uv run main.py -
في Slack:
- اذكر البوت في قناة:
@yourbot Who are the top contributors to the ClickHouse git repo? - ردّ داخل سلسلة الرسائل مع الإشارة إليه:
@yourbot how many contributions did these users make last week? - أرسل رسالة مباشرة إلى البوت:
Show me all tables in the demo database.
- اذكر البوت في قناة:
سيردّ البوت داخل سلسلة الرسائل، مستخدمًا جميع الرسائل السابقة فيها بوصفها سياقًا عند الاقتضاء.
سياق سلسلة الرسائل: عند الرد داخل سلسلة رسائل، يحمّل البوت جميع الرسائل السابقة (باستثناء الرسالة الحالية) ويضمّنها بوصفها سياقًا للذكاء الاصطناعي.
استخدام الأدوات: يستخدم البوت فقط الأدوات المتاحة عبر MCP (مثل schema discovery وتنفيذ SQL)، وسيعرض دائمًا استعلام SQL المستخدم وملخصًا لكيفية التوصل إلى الإجابة.