上线版: 产品表单统一+form嵌套修复+用户管理+部署+三套叙事

- 产品编辑入口统一走 ProductFormFull(卖点/风格/人群/品牌词全字段);
  修复开任务页 <form> 套 <form> 致"编辑产品"报错、改不了、跳回首个产品
- dashboard 入口卡片对齐实际路由: 系统管理(/config) 与 工作配置(/settings) 分开;
  settings ?tab=products 直达改用挂载后读 URL, 消除 hydration mismatch
- 新增用户管理(users API/admin service/改密页) + alembic 022/023/024
- 上线部署: Dockerfile / docker-compose.prod+https / nginx https / .env.example
- A8 三套正交叙事(痛点/场景/成分背书) + beige 调色去AI化 + 飞轮 text_import 高权重信号

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-30 18:08:13 +08:00
parent a77212781c
commit df1856d793
150 changed files with 8616 additions and 1765 deletions

View File

@@ -1,26 +1,44 @@
"""Task#6 端到端真跑3套正交配图。建真实task(product_id=1倍分子素颜霜)
image_count=2 → 每套2张(hook+product_closeup特写) ×3套 = 6张。
验:①strategy=A/B/C各2张 ②尺寸1024×1536 ③品牌词进特写图 ④三套图真不同。"""
"""Task 端到端真跑临时验证脚本
手动运行:
cd backend && python3 test_3sets_e2e.py
"""
import sys
sys.path.insert(0, "/app")
from app.core.database import SessionLocal
from app.models.task import GenerationTask
from app.constants.enums import TaskStatus
db = SessionLocal()
t = GenerationTask(
workspace_id=3, product_id=1, operator_id=3,
theme="伪素颜·黄黑皮提亮·3套正交",
text_count=1, image_count=2, track="ai",
need_product_image=True, status=TaskStatus.PENDING,
)
db.add(t); db.commit(); db.refresh(t)
task_id = t.id
print(f"建task成功 task_id={task_id} image_count=2 (期望3套×2=6张)")
db.close()
def main():
from app.core.database import SessionLocal
from app.models.task import GenerationTask
from app.constants.enums import TaskStatus
from app.workers.tasks import run_generation_pipeline
from app.workers.tasks import run_generation_pipeline
print(f"=== 同步执行 run_generation_pipeline({task_id}) ===")
result = run_generation_pipeline.apply(args=[task_id]).get()
print(f"=== 结果: {result} ===")
db = SessionLocal()
try:
task = GenerationTask(
workspace_id=3,
product_id=1,
operator_id=3,
theme="伪素颜·黄黑皮提亮·3套正交",
text_count=1,
image_count=2,
track="ai",
need_product_image=True,
status=TaskStatus.PENDING,
)
db.add(task)
db.commit()
db.refresh(task)
task_id = task.id
print(f"建task成功 task_id={task_id} image_count=2 (期望3套×2=6张)")
finally:
db.close()
print(f"=== 同步执行 run_generation_pipeline({task_id}) ===")
result = run_generation_pipeline.apply(args=[task_id]).get()
print(f"=== 结果: {result} ===")
if __name__ == "__main__":
main()