M27 · AI Layer

الملخص الصباحي بالذكاء الاصطناعي

كل صباح عند 06:00 (المنطقة الزمنية للـ tenant) — 80-150 كلمة من KPI delta + رؤية + إجراء مقترح. لا تصل أي PII إلى الـ LLM.

نظرة عامة

ما الذي يخبرك به الملخص الصباحي

الأرقام العريضة لآخر 24 ساعة + السبب + ما الذي ستفعله.

  • 06:00 محلياً

    06:00 بتوقيت الـ tenant — 06:00 CET للاتحاد الأوروبي، 06:00 محلياً للولايات المتحدة وهكذا. Cron يعمل لكل workspace.

  • 80-150 كلمة

    قصير، قابل للمسح. KPI delta عريض + جملة أو جملتين رؤية + إجراء مقترح (مع رابط).

  • TR أساسية + EN

    يتبع لغة workspace. لـ ZH/AR، يقع حالياً على EN كـ fallback (ترجمة أصلية في أواخر Phase 3).

  • أين تراه

    البطاقة العلوية في صفحة dashboard — مباشرة عند فتح /app. يمكن أيضاً دفعه إلى webhooks Discord/email عبر إعدادات الإشعار.

سلسلة fallback من 5 نماذج

ملف عدم انقطاع

DeepSeek أساسي مع 4 fallbacks. إن فشل أي نموذج يعمل التالي تلقائياً. provider badge في UI يخبرك أيّ منها.

  1. 01

    أساسي — DeepSeek

    سريع، رخيص، قوي في التركية والإنجليزية. الأساسي افتراضياً.

    deepseek-chat · global
  2. 02

    Fallback 1 — MiniMax

    مزود صيني، موثوق على السياق الطويل. يدخل عند انقطاع DeepSeek.

    abab6.5s-chat · global
  3. 03

    Fallback 2 — AWS Bedrock Nova

    منطقة eu-central-1. AWS managed AI مقيّد بالمنطقة (استثناء Bedrock) — اختيار استراتيجي لعدم الانقطاع.

    amazon.nova-lite-v1 · eu-central-1
  4. 04

    Fallback 3 — Qwen

    Alibaba Cloud. متعدد اللغات قوي، structured output مستقر.

    qwen-max · global
  5. 05

    Fallback 4 — Kimi (Moonshot)

    آخر fallback. إن انقطع كل شيء نعود إلى ملخص قالب ثابت.

    moonshot-v1-32k · global

تجميع CH

events_canonical آخر 24 ساعة

تُمرَّر المقاييس الخام المجمَّعة في ClickHouse إلى الـ prompt كسياق.

أي مقاييس؟

آخر 24 ساعة من events_canonical — تفاصيل كافية لتكون مفيدة، خفيفة بحيث لا ترهق الـ LLM.

  • KPI delta عريض (outcomes مقابل آخر 24 ساعة)
  • أهم 5 أحداث بالحجم
  • أهم 5 source domains (UTM/referrer)
  • DAU/MAU + عدد دمج identity + لقطة retention
  • عدد alarms الصحية النشطة + alarms جديدة في آخر 24 ساعة
-- 24-saatlik headline delta + top events + sources
SELECT
  countIf(event_class = 'outcome') AS outcomes_24h,
  countIf(event_class = 'interaction') AS interactions_24h,
  uniqExact(person_id) AS dau,
  topK(5)(event_name) AS top_events,
  topK(5)(source_context['source_domain']) AS top_sources
FROM events_canonical
WHERE
  tenant_id = {tenant_id:UUID}
  AND ts >= now() - INTERVAL 24 HOUR;

تعمية كاملة

لا تصل أي PII إلى الـ LLM

Email، phone، UUID، Stripe ID — كلها تُجرَّد قبل دخولها الـ prompt. تحلّ محلها aliases حتمية.

وعدنا

لا تُرسَل أي PII إلى أي مزود LLM. تجريد regex + alias حتمي إلزامي — كل قيمة في الـ prompt مُعمّاة.

  • docsModules.aiMorning.pseudonymize.promise.bullets.email
  • docsModules.aiMorning.pseudonymize.promise.bullets.phone
  • docsModules.aiMorning.pseudonymize.promise.bullets.ids
  • Alias حتمي مُملَّح بـ workspace — يحطّ نفس المستخدم دائماً على نفس placeholder
// PII strip — LLM'e gönderilmeden önce
function pseudonymize(input: string, salt: string): string {
  return input
    .replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g, '<EMAIL>')
    .replace(/\+?\d{10,15}/g, '<PHONE>')
    .replace(/cus_[A-Za-z0-9]+/g, '<STRIPE_CUSTOMER>')
    .replace(/sub_[A-Za-z0-9]+/g, '<STRIPE_SUB>')
    .replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi, '<UUID>')
    .replace(/\b[A-Za-z0-9_-]{20,}\b/g, (m) => deterministicAlias(m, salt));
}

Sector pack

سياق prompt من tenants.sector_pack

5 sector packs — يستخدم الملخص مصطلحات وKPI خاصة بكل قطاع.

التجارة الإلكترونية

التركيز على السلة، AOV، معدل التحويل، الـ refunds.

SaaS

التركيز على التفعيل، MRR، التوسّع، مخاطر churn.

Fintech

التركيز على onboarding، KYC، أول معاملة، الحجم.

المحتوى / النشر

التركيز على القراء النشطين، عمق الـ session، تحويل paywall.

Gambling / iGaming

التركيز على عدد bet، GGR، الإيداعات، اللعب المسؤول.

الحصة

Free 150 / Custom بلا حد

بُعد حصة M28 W3 'ai_calls'. الملخص الصباحي + Anomaly Explainer + كل استدعاء AI من هذا الدلو.

الباقة
حد الاستدعاءات الشهري
البُعد
Free
150 استدعاء/شهر (صباحي + anomaly + إعادة تشغيل يدوي)
ai_calls
Custom
بلا حد (فوترة usage-based، وحدة PostHog −60% متدرّجة)
ai_calls

Anomaly Explainer

Alarm → اقتراح سبب من AI

عند انطلاق alarm من M7 event-health، تُعيد POST /v1/ai/explain-anomaly أسباباً مولَّدة بالـ AI + إجراءات + خطوات تحقق.

ما الذي تُرجِعه

أسباب محتملة + إجراءات مقترحة + خطوات تحقق (كيف تؤكد في الـ playground). Provider badge للشفافية.

curl -X POST https://api.gurulu.io/v1/ai/explain-anomaly \
  -H "Authorization: Bearer $GURULU_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "alarm_id": "alm_01H8XYZ",
    "include_recommendations": true
  }'

# Yanıt
{
  "cause": "checkout_started event hacmi son 2 saatte %42 düştü",
  "likely_reasons": [
    "Frontend deploy 14:22 sonrası tag mismatch",
    "Ana kaynak google/cpc trafiği %38 azaldı"
  ],
  "suggested_actions": ["Rollback CDN bundle", "Google Ads kampanya pause"],
  "verification_steps": ["Playground'da add_to_cart selector test et"],
  "provider": "deepseek-chat"
}

Provider badge

أي نموذج كتب هذا؟

كل ملخص يحمل badge — يخبرك أي نموذج في سلسلة fallback عمل.

لماذا نعرضه

شفافية + audit. إن بدا الملخص غريباً، فمعرفة المُنتِج تسهّل التشخيص.

نماذج Badge

deepseek · deepseek-chatminimax · abab6.5s-chatbedrock · amazon.nova-lite-v1qwen · qwen-maxkimi · moonshot-v1-32k

وثائق ذات صلة

اقرأ بعد ذلك

تابع حركة الجمهور في الموجز، ابحث عن patterns في الـ playground، تعمّق في AI Layer.

الملخص الصباحي بالذكاء الاصطناعي — وثائق Gurulu