AI Morning Summary
Her sabah 06:00 (tenant timezone) workspace özetin — 80-150 kelime KPI delta + insight + action suggestion. PII LLM'e gitmez.
Genel bakış
Sabah özeti neyi anlatır?
Önceki 24 saatin headline rakamları + neden öyle + ne yapmalı.
Sabah 06:00
Tenant timezone'a göre 06:00 — Avrupa için saat 06:00 EU/CET, US için 06:00 local, vb. Cron her workspace için ayrı.
80-150 kelime
Kısa, taranabilir özet. Headline KPI delta + 1-2 cümle insight + önerilen aksiyon (link'li).
TR primary + EN
Workspace dilini takip eder. ZH/AR için şimdilik EN fallback (Faz 3 sonu native çeviri).
Nerede görürsün?
Dashboard ana sayfa üst kartında — /app sayfası açılır açılmaz. Discord/email webhook'a da push edilebilir (notification ayarı).
5-modelli fallback chain
Never-down profile
DeepSeek primary, 4 fallback. Bir model hata verirse otomatik bir sonrakine geçilir. Provider badge UI'da hangisini gösterir.
- 01
Primary — DeepSeek
Hızlı, ucuz, Türkçe + İngilizce'de güçlü. Varsayılan primary.
deepseek-chat · global - 02
Fallback 1 — MiniMax
Çinli sağlayıcı, uzun context'te güvenilir. DeepSeek down olursa devreye girer.
abab6.5s-chat · global - 03
Fallback 2 — AWS Bedrock Nova
eu-central-1 region. AWS region-locked managed AI (Bedrock istisnası) — never-down için stratejik.
amazon.nova-lite-v1 · eu-central-1 - 04
Fallback 3 — Qwen
Alibaba Cloud. Multi-language güçlü, structured output stabil.
qwen-max · global - 05
Fallback 4 — Kimi (Moonshot)
Son fallback. Hepsi düştüyse statik şablon özetine düşer.
moonshot-v1-32k · global
CH aggregation
events_canonical son 24h
ClickHouse'ta aggregate edilen ham metrikler prompt'a context olarak verilir.
Hangi metrikler?
events_canonical tablosundan son 24 saat — özet için yeterli granular bilgi, LLM'e fazla yük yok.
- Headline KPI delta (outcomes vs. önceki 24h)
- Top 5 event by volume
- Top 5 source domain (UTM/referrer)
- DAU/MAU + identity merge sayısı + retention spot
- Aktif health alarm sayısı + son 24h yeni alarm
-- 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;Pseudonymize-everything
PII LLM'e gitmez
Email, phone, UUID, Stripe ID — hepsi prompt'a girmeden strip edilir. Deterministic alias ile placeholder.
Sözümüz
Hiçbir PII LLM provider'ına gönderilmez. Regex strip + deterministic alias zorunlu — prompt'ta görünen her şey pseudonymized.
- docsModules.aiMorning.pseudonymize.promise.bullets.email
- docsModules.aiMorning.pseudonymize.promise.bullets.phone
- docsModules.aiMorning.pseudonymize.promise.bullets.ids
- Workspace salt'ıyla deterministic alias — aynı kullanıcı her özette aynı placeholder'a düşer
// 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));
}Sektör pack
tenants.sector_pack prompt context
5 sektör tipi — özet sektöre özel terminoloji + KPI kullanır.
E-commerce
Sepet, AOV, geri dönüş oranı, refund odaklı.
SaaS
Activation, MRR, expansion, churn risk odaklı.
Fintech
Onboarding, KYC, ilk işlem, hacim odaklı.
Content / publishing
Active reader, session depth, paywall conversion odaklı.
Gambling / iGaming
Bet count, GGR, deposit, responsible-gaming odaklı.
Kota
Free 150 / Custom unlimited
M28 W3 quota dimension 'ai_calls'. Morning summary + Anomaly Explainer + her AI çağrısı bu havuzdan iner.
ai_callsai_callsAnomaly Explainer
Alarm → AI sebep önerisi
M7 event-health alarm tetiklendiğinde POST /v1/ai/explain-anomaly ile sebep + çözüm + verification adımları AI üretir.
Ne döner?
Olası sebep listesi + önerilen aksiyon + verification adımları (playground'da nasıl doğrularsın). Provider badge ile şeffaflık.
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
Hangi model yazdı?
Her özet altında bir badge — fallback chain'in kim devreye girdiğini söyler.
Niye gösteriyoruz?
Şeffaflık + audit. Bir özet beklenmedik geliyorsa hangi modelin yazdığını biliyorsan debug kolaylaşır.
Badge örnekleri
İlgili dokümanlar
Devamında oku
Audience hareketini özette gör, playground'da pattern ara, features sayfasında AI layer derinlemesine.