AI 晨间摘要
每天 06:00(tenant 时区)— 80-150 字的 KPI delta + 洞察 + 动作建议。任何 PII 都不会进入 LLM。
概览
晨间摘要告诉你什么
最近 24 小时的头条数字 + 原因 + 该做什么。
本地 06:00
按 tenant 时区的 06:00 — 欧盟用 06:00 CET、美国用本地 06:00 等。Cron 按 workspace 运行。
80-150 字
简短可扫读。头条 KPI delta + 1-2 句洞察 + 一条建议动作(带链接)。
TR 主语言 + EN
跟随 workspace 语言。ZH/AR 目前回退到 EN(Phase 3 后期原生翻译)。
你在哪儿看
Dashboard 首页顶部卡片 — /app 打开就能看到。也可通过 notification 设置推送到 Discord/email webhook。
5 模型 fallback 链
永不掉线
DeepSeek 主,4 个 fallback。任一模型失败时下一个自动运行。UI 中 provider badge 告诉你是哪个。
- 01
主 — DeepSeek
快、便宜、土耳其语 + 英语表现强。默认主 provider。
deepseek-chat · global - 02
Fallback 1 — MiniMax
中国 provider,长上下文可靠。DeepSeek 挂掉时启用。
abab6.5s-chat · global - 03
Fallback 2 — AWS Bedrock Nova
eu-central-1 区域。AWS 区域锁定的 managed AI(Bedrock 例外)— 战略性永不掉线选择。
amazon.nova-lite-v1 · eu-central-1 - 04
Fallback 3 — Qwen
Alibaba Cloud。多语种强,structured output 稳定。
qwen-max · global - 05
Fallback 4 — Kimi(Moonshot)
最后 fallback。如果一切都挂了,回退到静态模板摘要。
moonshot-v1-32k · global
CH 聚合
events_canonical 最近 24 小时
在 ClickHouse 中聚合的原始指标作为 context 传给 prompt。
哪些指标?
events_canonical 最近 24 小时 — 粒度足够有用,又不至于压垮 LLM。
- 头条 KPI delta(outcomes 与前 24h 对比)
- 按体量 top 5 events
- Top 5 source domains(UTM/referrer)
- DAU/MAU + identity merge 次数 + retention 切片
- 活跃 health alarm 数 + 最近 24h 新增 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;全量假名化
任何 PII 不会进入 LLM
Email、phone、UUID、Stripe ID — 都会在进入 prompt 之前被剥离。用确定性 alias 顶替。
我们的承诺
不向任何 LLM provider 发送 PII。Regex 剥离 + 确定性 alias 是强制的 — prompt 中每个值都假名化。
- docsModules.aiMorning.pseudonymize.promise.bullets.email
- docsModules.aiMorning.pseudonymize.promise.bullets.phone
- docsModules.aiMorning.pseudonymize.promise.bullets.ids
- Workspace 加盐的确定性 alias — 同一用户始终命中同一 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
tenants.sector_pack prompt context
5 个 sector pack — 摘要使用各行业的术语 + KPI。
电商
聚焦购物车、AOV、转化率、退款。
SaaS
聚焦激活、MRR、扩展、churn 风险。
Fintech
聚焦 onboarding、KYC、首笔交易、交易量。
内容 / 出版
聚焦活跃读者、session 深度、付费墙转化。
博彩 / iGaming
聚焦 bet 数、GGR、存款、负责任博彩。
配额
Free 150 / Custom 无限
M28 W3 配额维度 'ai_calls'。晨间摘要 + Anomaly Explainer + 每次 AI 调用都从这个桶扣。
ai_callsai_callsAnomaly Explainer
Alarm → AI 原因建议
当 M7 event-health alarm 触发时,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 样例
相关文档
下一步阅读
在摘要中观察受众变动、在 playground 寻找 patterns、深入 AI Layer。