feat(ops): ECR-007 行为分析与 ECR-008 内容运营后台
落地埋点 ingest/数据看板、首页宫格 CMS 与测评上下架;含账号引导、问答流式与免责声明去重,以及 review P1 审计同事务修复。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
|---|---|
|
||||
| 挂 profile 的多轮对话;场景入口 | 占卜/运势/预测未来 |
|
||||
| DeepSeek(可配)+ 规则引擎降级 | 医疗诊断 |
|
||||
| 免费次数 + 会员配额 | 无档案空聊(禁止) |
|
||||
| 免费次数 + 额度包(ask_pack)+ 会员配额 | 无档案空聊(禁止) |
|
||||
|
||||
---
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
1. **为何需要:** 看完画像仍有具体情境问题。
|
||||
2. **完成后获得:** 结合档案的结构化建议与可执行小步骤。
|
||||
3. **为何付费:** 免费次数用尽后会员提供更多回复。
|
||||
3. **为何付费:** 免费次数用尽后可购买问答额度包,或开通成长会员获得更多回复。
|
||||
|
||||
---
|
||||
|
||||
@@ -49,10 +49,10 @@
|
||||
选择档案(我 / TA)+ 可选场景
|
||||
↓
|
||||
输入问题 → 检查配额
|
||||
├─ 耗尽 → 引导会员
|
||||
└─ 有余 → 创建/续 thread → assistant 回复
|
||||
├─ 耗尽 → 引导购买额度包 / 成长会员(mock 支付后立刻加次)
|
||||
└─ 有余 → 创建/续 thread → assistant **SSE 流式**回复(delta → done)
|
||||
↓
|
||||
DeepSeek 失败/无 key → 规则引擎降级
|
||||
DeepSeek 失败/无 key → 规则引擎降级(仍按字流式输出)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -69,7 +69,7 @@
|
||||
├── Loading(发送中)
|
||||
├── Normal(历史 + 输入)
|
||||
├── Error(发送失败可重试)
|
||||
└── Quota Exhausted(引导会员)
|
||||
└── Quota Exhausted(额度包 + 会员)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -82,7 +82,7 @@
|
||||
| Loading | 发送中禁用重复点 |
|
||||
| Error | 失败 + 重试 |
|
||||
| Normal | 消息列表 |
|
||||
| Quota | 明确耗尽文案 + `/membership` |
|
||||
| Quota | 明确耗尽文案 + 额度包购买 + `/membership` |
|
||||
|
||||
---
|
||||
|
||||
@@ -91,11 +91,12 @@
|
||||
| ID | Rule |
|
||||
|---|---|
|
||||
| R1 | 每条用户消息必须绑定 `profile_id`(self 或 other) |
|
||||
| R2 | 免费回复次数有上限(实现:如 3);会员另计配额 |
|
||||
| R3 | 配额耗尽返回明确业务错误,不生成付费假回复 |
|
||||
| R2 | 免费回复次数有上限(实现:如 3);可购 `ask_pack` 加次;会员另计配额 |
|
||||
| R3 | 配额耗尽返回明确业务错误,不生成付费假回复;引导购买额度或会员 |
|
||||
| R7 | 扣次顺序:会员配额 → 已购额度包 → 免费额度(非会员);购买额度不解锁报告深度版 |
|
||||
| R4 | LLM 可选;失败降级规则引擎,仍须 lexicon 安全 |
|
||||
| R5 | 禁止运势/吉凶/算命/合盘话术;结尾免责声明 |
|
||||
| R6 | 回复宜有结构:回应用户 → 结合档案 → 可执行建议(详见 system prompt) |
|
||||
| R5 | 禁止占卜/算命/吉凶恐吓/医疗诊断;可用愈心解码·星座·人格匹配等探索向用语 |
|
||||
| R6 | 回复宜短(约 80–160 字):回应当下 → 1 条档案洞察 → 1–2 条可执行建议;system prompt 须对齐 lexicon 与产品定位 |
|
||||
|
||||
---
|
||||
|
||||
@@ -106,6 +107,7 @@
|
||||
| `ask_threads` | user_id, profile_id |
|
||||
| `ask_messages` | role, content |
|
||||
| `ask_quotas` / 等价 | 余量 |
|
||||
| `users.ask_paid_quota_left` | 已购额度包余量 |
|
||||
|
||||
---
|
||||
|
||||
@@ -115,7 +117,11 @@
|
||||
|---|---|---|
|
||||
| GET | `/api/v1/ask/quota` | 余量 |
|
||||
| POST | `/api/v1/ask/threads` | 创建线程(profile_id, scene?) |
|
||||
| POST | `/api/v1/ask/threads/{id}/messages` | 发消息拿回复 |
|
||||
| POST | `/api/v1/ask/threads/{id}/messages` | 发消息拿回复(默认 JSON) |
|
||||
| POST | `/api/v1/ask/threads/{id}/messages?stream=1` | SSE:`meta` / `delta` / `done` / `error` |
|
||||
| DELETE | `/api/v1/ask/threads/{id}` | 清空该会话(软删除) |
|
||||
| POST | `/api/v1/orders` kind=`ask_pack` | 购买额度包(plan: pack10/pack30/pack100) |
|
||||
| POST | `/api/v1/orders/{id}/pay-mock` | 支付后增加 `ask_paid_quota_left` |
|
||||
|
||||
---
|
||||
|
||||
@@ -147,7 +153,11 @@
|
||||
|
||||
**Given** 配额为 0
|
||||
**When** 再发送
|
||||
**Then** 业务错误引导会员,无助手胡编
|
||||
**Then** 业务错误引导购买额度/会员,无助手胡编
|
||||
|
||||
**Given** 免费额度耗尽
|
||||
**When** pay-mock `ask_pack` pack10
|
||||
**Then** GET `/ask/quota` remaining ≥ 10,可继续提问
|
||||
|
||||
**Given** 无 DeepSeek key
|
||||
**When** 提问
|
||||
|
||||
Reference in New Issue
Block a user