Files
meida_backend/scripts/seed_pdf_e2e.sql
T
xsl cd0ddb131b feat(report): 报告 PDF 导出管线(Phase A,WeasyPrint 服务端渲染)
- POST /reports/{id}/export:request_key 幂等 + hd_export 日配额三段式(reserve/commit/refund)+ tier2 熔断场景闸(BudgetGuardDep),仅 succeeded 报告可导
- GET /reports/{id}/export/download:归属校验 + 路径收敛(rendered_asset_key 必须落在 report_export_dir 内),FileResponse 携带 UTF-8 文件名
- celery 任务 meida.report.export(cpu 队列):渲染→落盘 var/exports→回写 rendered_asset_key;业务性拒绝(报告状态变化)结案退款不重试,基础设施异常重试一次后兜底结案退款
- packages/report/pdf:Jinja2 模板 + WeasyPrint 渲染器(url_fetcher 全拒外部资源防 SSRF;维度中文名按 DIMENSION_BY_KEY 回填;色板维度渲染色卡)
- 单测 10 例(资格/幂等/并发同键/下载校验/渲染);scripts/seed_pdf_e2e.sql 供本地 E2E 造数
2026-08-30 13:17:23 +08:00

40 lines
3.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
INSERT INTO rp_report (user_id, tier, status, version, result, model_info, content_code, cost_cents, completed_at)
VALUES (
219679774354706432,
'basic',
'succeeded',
1,
'{
"diagnosis": {
"dimensions": [
{"number": 1, "key": "gender", "status": "ok", "value": "女", "confidence": 1.0, "evidence": "问卷填写"},
{"number": 2, "key": "height_weight", "status": "ok", "value": "165cm / 52kg", "confidence": 1.0, "evidence": "问卷填写"},
{"number": 5, "key": "body_shape", "status": "ok", "value": "沙漏型(X 型)", "confidence": 0.86, "evidence": "肩胯宽度接近,腰线明显,腰臀比约 0.72"},
{"number": 8, "key": "face_shape", "status": "ok", "value": "鹅蛋脸", "confidence": 0.9, "evidence": "脸长宽比约 1.4,下颌线条流畅"},
{"number": 12, "key": "skin_tone", "status": "ok", "value": "中性二白", "confidence": 0.82, "evidence": "面部 Lab 采样 L*=68.3,色相偏中性"},
{"number": 17, "key": "season_code", "status": "ok", "value": "浅春型", "confidence": 0.78, "evidence": "中明度、中低彩度、偏暖,对比度中等"},
{"number": 19, "key": "best_colors", "status": "ok", "value": [{"hex": "#F5CBA7", "name_cn": "杏色"}, {"hex": "#A9CCE3", "name_cn": "雾霾蓝"}, {"hex": "#F1948A", "name_cn": "珊瑚粉"}, {"hex": "#D5DBDB", "name_cn": "浅灰"}], "confidence": 0.8, "evidence": "浅春色板映射"},
{"number": 21, "key": "avoid_colors", "status": "ok", "value": [{"hex": "#1B2631", "name_cn": "深炭黑"}, {"hex": "#7B241C", "name_cn": "酒红"}], "confidence": 0.75, "evidence": "高对比深色压气色"},
{"number": 25, "key": "gene_style", "status": "ok", "value": "少女型", "confidence": 0.72, "evidence": "轮廓偏曲、量感中小、动静偏静"},
{"number": 26, "key": "psyche_style", "status": "ok", "value": "优雅知性", "confidence": 0.88, "evidence": "问卷风格偏好聚类"},
{"number": 27, "key": "fusion_style_name", "status": "ok", "value": "清甜优雅风", "confidence": 0.8, "evidence": "基因风格 × 心理风格规则融合"},
{"number": 28, "key": "core_goals", "status": "ok", "value": ["通勤得体", "约会加分", "显瘦"], "confidence": 0.95, "evidence": "问卷核心诉求"},
{"number": 31, "key": "hair_status", "status": "skipped", "value": null, "evidence": "初级版未覆盖"}
]
},
"copy": {
"summary": "你是典型的浅春型清甜优雅风:鹅蛋脸配沙漏身形,底色干净、对比柔和。穿搭上抓住「浅色暖调 + 柔线条 + 高腰线」三件事,通勤与约会场景都能稳定出彩。",
"sections": [
{"title": "色彩建议", "paragraphs": ["最佳色以浅春暖调为主:杏色、珊瑚粉、雾霾蓝都能提亮气色;浅灰作为中性过渡色安全百搭。", "避雷深炭黑与酒红这类高对比深色——它们会让你的面部显得疲惫,如需深色,请用驼色或燕麦色替代。"]},
{"title": "版型与搭配", "paragraphs": ["沙漏型身材的重点是「顺腰线」:收腰连衣裙、高腰 A 字裙、短外套配高腰下装都是你的优势版型。", "避免直身廓形与 oversized 上衣完全盖住腰线;若要穿宽松款,用腰带或塞衣角点出腰的位置。"]},
{"title": "风格落地", "paragraphs": ["你的融合风格是「清甜优雅风」:少女感来自于柔线条与浅亮色,优雅感来自于简洁剪裁与低饱和配色。", "通勤场景建议:雾霾蓝衬衫 + 浅灰高腰西裤 + 杏色针织外套;约会场景建议:珊瑚粉收腰连衣裙 + 珍珠耳饰。"]}
]
}
}'::jsonb,
'{"pipeline": "seed-for-pdf-e2e"}'::jsonb,
'PDFE2E01',
0,
now()
);
SELECT report_id, status, content_code FROM rp_report;