① 系统架构
客户端 · Browser / 微信
路由与鉴权 · Next.js Edge
ph_session / ph_role cookie 控制 /app/*、/internal-panel/* 访问API Routes · app/api/*
/[id]/chat·diagnose·directions·concepts·brief·assets·messages·abort-generationUPLOAD_DIR)业务逻辑层 · lib/*
extract 对话抽取元信息(≤3 追问)
diagnose 多模态包装诊断 + 2-3 方向
concept gpt-image-2 异步出图
brief 设计 Brief 生成
prompts 系统提示词集中管理
数据层 · Prisma + PostgreSQL
外部服务
image gpt-image-2 1024² high
统一指数退避 / 错误码 502/503
② 核心业务流程:从对话到设计 Brief
用户从「描述需求」到「拿到设计 Brief」的主链路,括号中为对应 API 与 Prisma 实体。
登录 / 注册
邮箱密码或微信扫码登录,写入 ph_session。
新建项目 + 对话
AI 抽取品类/受众/目标,最多 3 个追问澄清。
POST /api/projects · /[id]/chat上传包装图
至少 1 张 pack_front,落到 Asset + 本地存储。
AI 包装诊断
多模态分析(图+文),同时产出 2-3 个优化方向。
POST /[id]/diagnose选定方向
用户勾选 1 个或多个 Direction,触发后续出图。
PATCH /[id]/directions/[did]异步生成概念图
gpt-image-2 1024² · 立即返回 pending,前端轮询。
POST /[id]/directions/[did]/concepts生成设计 Brief
合并诊断 + 方向 + 概念图,输出最终交付。
POST /[id]/brief积分扣费(横向贯穿)
诊断 / 出图 / Brief 各步在调用前 reserve,成功 commit,失败走 RefundOutbox 异步退款补偿。
充值 / 订单
积分不足时跳转下单 → 微信支付 → 回调写 Payment / WxFinalizeLog(幂等 nonce)。
/api/orders · /api/wx/*记录 & 继续
「我的记录」可恢复上下文:/app/chat?project=<id>,「继续优化对话」回到 chat。
管理端介入
internal-panel 可调系统价格、查看订单、人工标记失败的异步任务。
/app/api/internal-panel/*400 PRECONDITION_FAILED);② 步骤 6 状态机
pending → succeeded | failed,失败自动退款;③ 所有 AI 调用统一指数退避 max 8 次(base 2s,cap 60s)。
③ 支付 / 积分子流程
下单
用户在 /app/credits 选套餐 → 创建 Order(pending)。
调起微信支付
经共享网关返回 prepay/二维码。
POST /api/wx/order支付回调
WxFinalizeNonce 幂等去重,写 Payment。
POST /api/wx/finalize积分入账
CreditLog +N · 用户余额更新。
lib/creditsAI 调用扣费
reserve → 调 AI → commit / rollback。
/api/projects/[id]/*失败补偿
RefundOutbox + cron 重试退款。
/api/cron/*本图源数据来自仓库 README.md、prisma/schema.prisma、app/api/**、lib/**。 打开方式:浏览器直接打开本文件即可,无任何外部依赖。