Skip to main content
في هذا الدليل، ستتعلّم كيفية إنشاء وكيل SlackBot. يتيح لك هذا البوت طرح أسئلة حول بيانات ClickHouse مباشرةً من Slack باستخدام اللغة الطبيعية. ويعتمد على ClickHouse MCP server وPydanticAI.
مشروع نموذجييمكن العثور على الشيفرة الخاصة بهذا المثال في مستودع examples.

المتطلبات الأساسية

  • ستحتاج إلى تثبيت uv
  • ستحتاج إلى الوصول إلى مساحة عمل في Slack
  • ستحتاج إلى مفتاح API من Anthropic، أو مفتاح API من مزوّد LLM آخر
1

أنشئ تطبيق Slack

  1. انتقل إلى slack.com/apps وانقر على Create New App.
  2. اختر الخيار From scratch وامنح تطبيقك اسمًا.
  3. حدّد مساحة العمل الخاصة بك في Slack.
2

ثبّت التطبيق في مساحة العمل الخاصة بك

بعد ذلك، ستحتاج إلى إضافة التطبيق الذي أنشأته في الخطوة السابقة إلى مساحة العمل الخاصة بك. يمكنك اتباع التعليمات الواردة في “Add apps to your Slack workspace” ضمن وثائق Slack.
3

اضبط إعدادات تطبيق Slack

  • انتقل إلى App Home
    • ضمن Show TabsMessages 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:read
        • assistant:write
        • chat:write
        • im:history
        • im:read
        • im:write
        • channels:history
      • ثبّت التطبيق في مساحة العمل الخاصة بك، ودوّن قيمة Bot User OAuth Token لمتغير البيئة SLACK_BOT_TOKEN.
    • انتقل إلى Event Subscriptions
      • فعّل Events
      • ضمن Subscribe to bot events، أضف:
        • app_mention
        • assistant_thread_started
        • message:im
      • Save Changes
4

أضف متغيرات البيئة (.env)

أنشئ ملف .env في جذر المشروع باستخدام متغيرات البيئة التالية، والتي ستسمح لتطبيقك بالاتصال بـ بيئة SQL التفاعلية الخاصة بـ ClickHouse.
يمكنك تعديل متغيرات ClickHouse لاستخدام ClickHouse server الخاص بك أو instance على Cloud، إذا كنت تفضّل ذلك.
5

استخدام البوت

  1. ابدأ تشغيل البوت:
  2. في 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 المستخدم وملخصًا لكيفية التوصل إلى الإجابة.
آخر تعديل في ٢٣ يوليو ٢٠٢٦