新功能:个性化推荐算法
This commit is contained in:
@@ -87,21 +87,36 @@ spec_kit/Personalized Reco/
|
||||
|
||||
> 原则:先把“数据可查”打通,再实现“可排序”,最后做“可对外提供(API/任务)”与“可观测”。
|
||||
|
||||
1. **`modules/db-design/`(数据库设计与迁移)**
|
||||
1. **`modules/db-design/`(数据库设计与迁移)**已实施
|
||||
- 交付:表结构 + Alembic 迁移可跑通;能插入/读取最小 `ContentProfile` 字段。
|
||||
2. **`modules/content-repository/`(数据访问层)**
|
||||
2. **`modules/content-repository/`(数据访问层)**已实施
|
||||
- 交付:按场景/回退层级拉候选、按 ID(`content_id` 自增 `int`)批量查;risk_flags 旧→新映射与默认值兜底。
|
||||
- 语言:`text` 按客户端 `locale` 输出(当前仅 EN/TC),且不允许语言回退(缺语言内容直接过滤)。
|
||||
- 口径:suitability 读取层统一输出稳定结构;缺失时补齐“全 0.5”,key 集合固定为:
|
||||
- context:`family/work/relationship/friends/health`
|
||||
- need:`emotional_support/parenting_pressure/self_worth/anxiety_relief/rest_balance`
|
||||
3. **`modules/scoring/`(打分)**
|
||||
3. **`modules/scoring/`(打分)** 已实施
|
||||
- 交付:`final_score` 与缺失字段保守策略(V1.2)实现;Push 的 `P_uncertainty`;Widget 情绪区间软降权。
|
||||
4. **`modules/rerank-freqcap/`(去重/重排/频控)**
|
||||
4. **`modules/rerank-freqcap/`(去重/重排/频控)** 已实施
|
||||
- 交付:基于传入历史集合的去重;Feed 的 MMR;Push/Widget 冷却窗口规则(先保证“同句不重复”)。
|
||||
5. **`modules/observability/`(可观测)**
|
||||
5. **`modules/observability/`(可观测)** 已实施
|
||||
- 交付:统一 `meta` 结构与字段;能准确定位候选在何阶段被清空/回退。
|
||||
6. **`modules/reco-engine/`(引擎编排)**
|
||||
- 交付:串起候选→过滤→打分→重排→回退;输出 items+meta;在画像缺失/候选不足时仍稳定返回。
|
||||
7. **`modules/integration-api-worker/`(API + Celery 集成)**
|
||||
- 交付:FastAPI 路由 + Celery 任务都能调用同一引擎;相同输入下结果一致(忽略时间戳差异)。
|
||||
6. **`modules/reco-engine/`(引擎编排)** 已实施
|
||||
- 交付:新增后端 `reco_engine`(编排器 + Hard Filter);串起候选→过滤→打分→重排→回退;输出 items+meta;默认开启轻量 explanations;在画像缺失/候选不足时仍稳定返回。
|
||||
7. **`modules/integration-api-worker/`(API + Celery 集成)** 已实施
|
||||
- 交付:新增 `/v1/reco/{feed|push|widget}` 三个推荐接口(含 `Accept-Language→en/tc` 与 `X-Now` 注入);新增按 IP 限流 10/min;新增 Celery 任务 `tasks.reco.generate` 与 `tasks.reco.push_once`,均调用同一 `Reco Engine`。
|
||||
|
||||
---
|
||||
|
||||
## 6. 变更记录
|
||||
|
||||
- 2026-02-02:完成 `modules/scoring/` 的 `plan.md` 与 `tasks.md`,并新增后端打分模块 `server/app/features/personalized_reco/scoring/` 与单元测试 `server/tests/test_scoring.py`。
|
||||
- 2026-02-02:完成 `modules/rerank-freqcap/` 的 `plan.md` 与 `tasks.md`,并新增后端重排/频控模块 `server/app/features/personalized_reco/rerank_freqcap/` 与单元测试 `server/tests/test_rerank_freqcap.py`。
|
||||
- 2026-02-02:完成 `modules/observability/` 的 `plan.md` 与 `tasks.md`,并新增后端可观测模块 `server/app/features/personalized_reco/observability/` 与单元测试 `server/tests/test_observability.py`。
|
||||
- 2026-02-02:完成 `modules/reco-engine/` 的 `plan.md` 与 `tasks.md`,并新增后端引擎编排模块 `server/app/features/personalized_reco/reco_engine/`(含 Hard Filter + Orchestrator)与单元测试 `server/tests/test_reco_engine.py`。
|
||||
- 2026-02-02:完成 `modules/integration-api-worker/` 的 `plan.md` 与 `tasks.md`,并新增后端集成:
|
||||
- FastAPI:`server/app/api/v1/reco.py`、`server/app/api/limits.py`、`server/app/main.py`
|
||||
- Celery:`server/app/tasks/reco.py`
|
||||
- 测试:`server/tests/test_integration_api_worker.py`
|
||||
- 依赖:`server/requirements.txt`(新增 `httpx` 用于 API 测试)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user