架构 - 后端从 flat routes/ 重构为 modules/<domain>/ 模块化结构(8个模块) - 四层架构:Route -> Service -> Repository -> Prisma - 新增 shared/ 基础设施(AppError 异常体系、ALS 上下文、prom-client 指标) - 前端 Toast/Skeleton/Alert 组件基建 + formulaService 模板 安全 - JWT 签名算法修复(HS256 用 createHmac 而非 createHash) - 密码哈希 async scrypt + timingSafeEqual - API Key 从 localStorage 迁移至服务端 runtime/config.json - Helmet 安全头 + rate-limit 全局限流 100 req/min - 全局 auth preHandler + RBAC + Ownership 中间件 颜色引擎 - 色匹配切换为 cube 粗筛 + CIEDE2000 精排 - PantoneColor 表 + 种子数据 + 搜索端点 - AI 配色 Prompt 注入成分库 colorant 列表 配方推演 - 本地优化引擎(同 category 替换 + 成本排序) - baseFormulaId 支持 + Pareto 散点图 文档 - ADR-0003 四层架构、ADR-0004 RBAC 授权模型 - 更新 ADR-0001/0002 - api-reference.md(29端点)、project-overview.md 部署 - Dockerfile * 2 + nginx.conf + docker-compose.prod.yml - 健康探针 + 优雅关闭 + pg_dump 备份脚本 - ESLint + Prettier + tsconfig strict
71 lines
3.8 KiB
Markdown
71 lines
3.8 KiB
Markdown
# CONTEXT.md — 配方研发智能平台
|
||
|
||
## 项目概述
|
||
|
||
AI 驱动的化妆品配方研发智能平台(纯 Web 端),为化妆品研发工程师提供颜色管理、可视化配方调整、配方记录管理和配方推演四大核心能力。
|
||
|
||
## 领域词汇表
|
||
|
||
### 核心实体
|
||
|
||
| 术语 | 英文 | 定义 |
|
||
| :--- | :--- | :--- |
|
||
| **配方** | Formula | 一组成分按特定比例和工艺组合的完整方案,包含多个相 |
|
||
| **相** | Phase | 配方中按工艺阶段划分的组成部分(如油相、水相、后添加相),每个相包含若干成分 |
|
||
| **成分** | Ingredient | 化妆品原料,按功能分类(乳化剂、保湿剂、防腐剂等),有 INCI 名称和中文名 |
|
||
| **配方版本** | FormulaVersion | 配方的某个时间点快照,记录该版本完整的成分列表和比例 |
|
||
| **颜色配方** | ColorFormula | 颜色调配的专门记录,含目标色值(Lab/潘通)、色浆组合、实际 ΔE |
|
||
| **色浆** | Colorant | 用于调配颜色的基础着色剂(如氧化铁红、二氧化钛等) |
|
||
| **色差** | Delta E (ΔE) | 两颜色之间的感知差异量化值,标准为 CIEDE2000,目标 ≤ 1.0 |
|
||
|
||
### 配方指标
|
||
|
||
| 术语 | 英文 | 定义 |
|
||
| :--- | :--- | :--- |
|
||
| **肤感指数** | Sensory Index | AI 模型基于成分组合预测的使用肤感评分(0-100),含铺展性、吸收速度、黏腻度等子维度 |
|
||
| **稳定性评分** | Stability Score | AI 预测的配方稳定性评分(0-100),考量成分相容性和乳化稳定性 |
|
||
| **成本估算** | Cost Estimate | 基于各成分单价和比例计算的单位成本(元/kg) |
|
||
|
||
### 色彩科学
|
||
|
||
| 术语 | 英文 | 定义 |
|
||
| :--- | :--- | :--- |
|
||
| **CIELAB** | CIELAB | 设备无关的颜色空间(L*亮度, a*红绿轴, b*黄蓝轴),平台内部颜色表示标准 |
|
||
| **Display P3** | Display P3 | 广色域色彩空间,色域比 sRGB 大 25%,平台渲染目标色域 |
|
||
| **潘通色号** | Pantone | 国际标准色卡编号系统,颜色匹配输入格式之一 |
|
||
| **取色棒** | Color Picker / EyeDropper | 从参考图片中提取颜色的交互工具 |
|
||
|
||
### 配方推演
|
||
|
||
| 术语 | 英文 | 定义 |
|
||
| :--- | :--- | :--- |
|
||
| **推演** | Exploration | 基于约束条件生成多个候选配方方案的过程 |
|
||
| **逆向推演** | Reverse Exploration | 从目标功效指标反推成分组合的推理过程 |
|
||
| **Pareto 前沿** | Pareto Frontier | 成本-功效等多目标优化中,无法在不损害其他目标的情况下改进某一目标的最优解集合 |
|
||
|
||
### AI 相关
|
||
|
||
| 术语 | 英文 | 定义 |
|
||
| :--- | :--- | :--- |
|
||
| **预测** | Prediction | AI 根据成分比例预测肤感/稳定性/成本等指标 |
|
||
| **推荐** | Recommendation | AI 根据约束条件推荐成分或配方方案 |
|
||
| **置信度** | Confidence | AI 预测结果的可靠程度评分 |
|
||
| **降级** | Fallback | AI API 不可用时返回缓存结果或友好提示的容错机制 |
|
||
| **Prompt 模板** | Prompt Template | 每种 AI 能力的标准化提示词模板,包含角色、上下文、输出格式 |
|
||
| **向量搜索** | Vector Search | 将配方/查询转为向量,通过 pgvector HNSW 索引进行语义相似搜索 |
|
||
|
||
## 架构约定
|
||
|
||
- **ADRs**: `docs/adr/` — 架构决策记录
|
||
- **PRD**: `.scratch/formula-rd-platform/PRD.md`
|
||
- **Issues**: `.scratch/<feature-slug>/issues/`
|
||
|
||
## 当前 ADRs
|
||
|
||
| ADR | 主题 | 状态 |
|
||
| :--- | :--- | :--- |
|
||
| [0001](./docs/adr/0001-architecture-stack.md) | 整体技术栈选型 | 已决议 (修订 2026-05-21) |
|
||
| [0002](./docs/adr/0002-ai-api-strategy.md) | AI 通过外部 API 调用 | 已决议 (修订 2026-05-21) |
|
||
| [0003](./docs/adr/0003-four-layer-module-architecture.md) | 后端四层模块化架构 | 已决议 |
|
||
| [0004](./docs/adr/0004-rbac-ownership-authorization.md) | RBAC + 资源级 Ownership 授权 | 已决议 |
|