diff --git a/docs/06-tasks.md b/docs/06-tasks.md index 67c938d..66bdbe1 100644 --- a/docs/06-tasks.md +++ b/docs/06-tasks.md @@ -84,7 +84,7 @@ | T-603 | django-admin 中文化(第 4 层·字段级) | T-602 | 给各模型**字段**加中文 `verbose_name`,使 admin 列表/编辑页的字段标签显示中文,在 T-602(1-3 层)之上做。范围覆盖 `users`/`billing`/`ai`(及 portal 相关)模型的业务字段,例如 `points_balance`→点数余额、`key_prefix`→Key 前缀、`points_delta`→点数变动、`balance_after`→变动后余额、`amount_money`→金额、`exchange_rate`→汇率、`points_granted`→到账点数、`api_type`/`capabilities`/`is_active`/`created_at` 等;`admin.py` 里自定义显示方法(`@admin.display(description=...)`)同步中文。**仅显示层**:`verbose_name` 只改展示,**不改字段名、不改代码引用、英文字段名保持不变**;产出的是 `AlterField`(metadata-only,**无 DB schema 变更**)迁移。验收:`makemigrations`(仅 AlterField,无 schema 变更)→ `migrate` → `check` 0 issues → `test` 全绿 → `/admin/` 字段标签目视中文,并在 `../progress.md` 留证据。T-605 已解除邮箱验证口径阻塞;当前待在稳定 MySQL 测试库上补跑完整验证后再标 `DONE` | TODO | | T-605 | 落实「免邮箱验证」策略 | T-501 | 把 `ACCOUNT_EMAIL_VERIFICATION="none"`(注册即可用、不发验证邮件、邮箱仍必填且唯一)作为**既定策略**清理落地:① `config/settings.py` 把 `ACCOUNT_EMAIL_VERIFICATION = "none"#"mandatory"` 改为干净的 `"none"`(去行内注释),并把免验证下无实际意义的 `ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION` 设为 `False`;② 更新 `apps/portal/tests.py` 里假设 mandatory 的 2 条测试(signup 不再依赖验证邮件、未验证也可直接登录),改为断言「注册后可直接登录」;③ 同步全项目文档口径(`02-requirements`/`05-coding-rules`/`api`/`04-architecture`/`03-tech-stack`/`routes`/`env`/`deployment`/`00-ai-start-here` 中「邮箱验证」→「免邮箱验证,邮箱仍唯一」)。验收:`check` 通过,`apps.portal` 26 tests OK;全量 `manage.py test` 已尝试,跑到 95/131 后因远程 MySQL 连接超时失败(WinError 10051/10060),非本任务断言失败,详见 `../progress.md` | DONE | | T-604 | 中文敏感词本地过滤(本地 keyword provider) | T-302, T-401 | 按 [`moderation.md`](moderation.md) 实施。**范围收紧**:T-604 只做输入 prompt 的本地敏感词快筛,不做云内容安全、不做输出审核、不做图片审核。**关键时序**:serializer 后先审 prompt,命中即 `400 content_blocked`;不得先下载 `image_url`,不得预扣点,不写 `CallRecord` / `PointsLedger`,不调上游。**核心实现**:新增 `apps.moderation`、`SensitiveWord` 模型/admin/迁移、keyword provider、归一化管线、Aho-Corasick matcher;`ahocorapy` 作为候选依赖,编码前必须验证 PyPI 可用性和 API 形状。**缓存**:matcher 进程内缓存,词库变更用共享 cache 版本号失效,不能只靠 `post_save` signal;生产依赖共享 cache。**配置**:`MODERATION_ENABLED=false` 默认 no-op;启用时 `MODERATION_PROVIDER=keyword`;MVP `SensitiveWord.action` 只支持 `block`。**验收**:`check`/`test` 全绿,覆盖 no-op、命中拦截且不扣点/不建记录/不调上游/不下载图片、归一化防绕过、词库变更后 matcher 重建;真实词库数据不进仓库,`__pycache__` 不进 Git | DONE | -| T-606 | 公开首页 + 客户端下载入口 | T-501 | 给网站补「前门」并提供桌面端下载。**路由改造**:`/` 从「重定向到 `/dashboard`」改为**公开首页**(匿名可访问、不跳登录);已登录用户显示「进入控制台」,匿名显示「注册/登录 + 下载客户端」。**首页内容**(SSR 模板):项目一句话介绍(生成标题/图片、按点数计费)+ 三步上手(注册→充值→建 API Key→桌面端填 Key)+ 下载入口 + 文档链接。**`DownloadRelease` 模型**:`platform`(如 windows)、`version`、`file`(FileField,**前期存 `MEDIA_ROOT`、服务器托管**) + `external_url`(URLField 可选,**后续切对象存储/CDN 用,有则优先**)、`sha256`、`is_current`(每平台仅一个当前版本)、`release_notes`、时间戳;admin 可上传安装包并标记当前版本;迁移。**下载区块**:展示当前 release 的版本、下载按钮、**SHA256 校验值**、可选 release notes;无 current release 时优雅提示「暂未发布」。**托管策略**:**前期安装包放本服务器**(生产由 **Nginx 直接服务 media/下载文件、不走 Django**,与 T-403 static/media serving 一致,大文件不占 gunicorn worker);`external_url` 预留,后续切对象存储只改后台链接不改代码。**安全**:下载走 HTTPS,页面展示 SHA256 供校验;**代码签名**作为决策登记——未签名 Windows 安装包会被 SmartScreen 拦「未知发布者」、macOS 被 Gatekeeper 拦,首页先给「如何忽略警告」说明,正式签名后续补(挂 Backlog / deployment)。**含测试**:`/` 匿名 200 不跳登录、下载区展示当前 release、无 current release 优雅处理、已登录用户显示「进入控制台」。验收 `check`/`test`/`init` 全绿并在 `../progress.md` 留证据 | TODO | +| T-606 | 公开首页 + 客户端下载入口 | T-501 | 给网站补「前门」并提供桌面端下载。**路由改造**:`/` 从「重定向到 `/dashboard`」改为**公开首页**(匿名可访问、不跳登录);已登录用户显示「进入控制台」,匿名显示「注册/登录 + 下载客户端」。**首页内容**(SSR 模板):项目一句话介绍(生成标题/图片、按点数计费)+ 三步上手(注册→充值→建 API Key→桌面端填 Key)+ 下载入口 + 文档链接。**`DownloadRelease` 模型**:`platform`(如 windows)、`version`、`file`(FileField,**前期存 `MEDIA_ROOT`、服务器托管**) + `external_url`(URLField 可选,**后续切对象存储/CDN 用,有则优先**)、`sha256`、`is_current`(每平台仅一个当前版本)、`release_notes`、时间戳;admin 可上传安装包并标记当前版本;迁移。**下载区块**:展示当前 release 的版本、下载按钮、**SHA256 校验值**、可选 release notes;无 current release 时优雅提示「暂未发布」。**托管策略**:**前期安装包放本服务器**(生产由 **Nginx 直接服务 media/下载文件、不走 Django**,与 T-403 static/media serving 一致,大文件不占 gunicorn worker);`external_url` 预留,后续切对象存储只改后台链接不改代码。**安全**:下载走 HTTPS,页面展示 SHA256 供校验;**代码签名**作为决策登记——未签名 Windows 安装包会被 SmartScreen 拦「未知发布者」、macOS 被 Gatekeeper 拦,首页先给「如何忽略警告」说明,正式签名后续补(挂 Backlog / deployment)。**含测试**:`/` 匿名 200 不跳登录、下载区展示当前 release、无 current release 优雅处理、已登录用户显示「进入控制台」。**视觉原型(已定 v1)**:按 `prototypes/cmhub-homepage-v1.svg` 落地——「生成台」方向:靛蓝=生成 / 琥珀=点数;Hero 为「商品图 + 一句话 → 吸睛标题 + 生成主图 + 点数计量」转化图;四步上手 01–04、两张能力卡、深色计费 band、下载区(版本/SHA256/未签名提示);配色、间距、结构照此原型转成 Django 模板(Bootstrap + 本地 static)。验收 `check`/`test`/`init` 全绿并在 `../progress.md` 留证据 | TODO | ## 里程碑 diff --git a/progress.md b/progress.md index ad3b55a..7945ebf 100644 --- a/progress.md +++ b/progress.md @@ -1281,3 +1281,12 @@ - 落点:`06-tasks.md` T-606(依赖 T-501);`02-requirements.md` 新增「公开首页 + 客户端下载」P1 功能行。 - ID 说明:T-605 已用于「免邮箱验证」,故本任务用 T-606。 - 下一步:实现 T-606(路由改造 + DownloadRelease 模型/admin/迁移 + 首页/下载 SSR 模板 + 测试)。 + +## 2026-07-06 决策:T-606 首页视觉方向定为 v1「生成台」 + +- 背景:为 T-606(公开首页 + 客户端下载)出了两版 SVG 原型,写入 `prototypes/`: + - `cmhub-homepage-v1.svg`——「生成台」:冷调纸白 + 靛蓝(生成)×琥珀(点数),Hero 为「商品图+一句话 → 标题+主图 + 点数计量」转化图,面向电商卖家、讲价值。 + - `cmhub-homepage-v2.svg`——「API 终端」:深色控制台 + 等宽字体,Hero 为真实 `curl → JSON`,面向开发者。 +- 决策:**首页采用 v1「生成台」方向**。理由:首页第一受众是自助注册的电商卖家,v1 的「看图就懂 + 讲价值」更利于转化;v2 的终端质感更适合后续「开发者/文档页」,可保留复用,非二选一。 +- 落点:`06-tasks.md` T-606 验收要点已指向 `prototypes/cmhub-homepage-v1.svg`,要求配色/间距/结构照此原型转 Django 模板(Bootstrap + 本地 static)。 +- 说明:`prototypes/` 两个 SVG 为设计存档,未来实现 T-606 时以 v1 为准;v2 留作开发者页参考。 diff --git a/prototypes/cmhub-homepage-v1.svg b/prototypes/cmhub-homepage-v1.svg new file mode 100644 index 0000000..b4f9d49 --- /dev/null +++ b/prototypes/cmhub-homepage-v1.svg @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cmhub + + 功能 + 计费 + 文档 + + 登录 + + 免费注册 + + + + + + + AI 电商生成 · 按点数计费 + 把商品图和一句话, + 变成能卖货的 + 标题与主图 + 。 + + cmhub 把「生成标题」「生成主图」封装成 HTTP 接口,桌面端拿 + API Key 直接用,按点数计费——换底层模型,价格不变。 + + + + 免费注册 → + + + + 下载 Windows 客户端 + v1.0.0 · 48 MB + + + + + 注册不送点数 · 邮箱即用免验证 · 生成标题 2 点 起 + + + + + + + + + + + cmhub 生成台 + 实时预览 + + + + 输入 + + + + + 白色纯棉基础款 T 恤 + 提示词:夏季清爽 · 男女同款 · 主图去背景 + + + + + + 生成中 · 计量扣点 + + + 输出 + + + + 纯棉白T恤男夏季薄款情侣装宽松半袖 + −2 + + + 日系基础款白色短袖打底衫百搭上衣 + −2 + + + 纯色圆领纯棉T恤男女同款舒适透气 + −2 + + + + + + + 主图 −10 + + + + + + + 开始使用 + 四步,在你自己的程序里生成 + 用户端负责注册、充值、管 Key;生成走 API。运营在后台配模型和价格,调用方零改动。 + + + + + + + 01 + + 注册账号 + 邮箱 + 密码即注册即用, + 免验证,不送点数。 + + + 02 + + 扫码充值点数 + 微信/支付宝扫码, + 按汇率换成点数。 + + + 03 + + 生成 API Key + 自助生成,明文只显示 + 一次,库内只存哈希。 + + + 04 + + 桌面端填 Key 用 + 客户端带 Key 调接口, + 生成标题与主图。 + + + + + + 能做什么 + 两件事,做到能直接上架 + + + + + + + 生成标题 + + 2 点 / 次起 + 给商品生成多个吸睛中文标题,可纯文字,也可看图生成。 + 别名调用,换底层模型价格不变;失败自动退点。 + + + + + + + + + 生成主图 / 改图 + + 10 点 / 次起 + 传商品原图 + 提示词,同步产出电商主图(改图类需原图)。 + 按分辨率计价,结果以 URL 返回,客户端直接下载。 + + + + + + 怎么计费 + 按「操作 + 能力别名 + 分辨率」定价 + 运营在后台配价,你只认稳定别名。换供应商、换模型,你的账单口径不变。 + + + + + 充值→点数,充多少到多少 + + + + 失败自动退点,不白扣 + + + + 并发扣点安全,不超扣 + + + + 当前余额 + 1,280 + 点 + + + ≈ 128 次标题 / 128 点消耗本月 + + + + + 下载客户端 + 装上桌面端,填 Key 就能生成 + + + + + + + + cmhub 桌面客户端 + Windows 10/11 · v1.0.0 · 更新于 2026-07-06 · 48 MB + SHA256 9f2c…a17e (下载后请核对校验值) + 首次安装若提示「未知发布者」,点『更多信息 → 仍要运行』——客户端正在申请代码签名。 + + + + 下载 .exe + 前期由本站直连下载 + + + + + + + + cmhub + 自助用户端 · 计费 AI 能力网关 · 运营后台,三合一。 + + 产品 + 功能 + 计费说明 + + 开发者 + 接口文档 + 可用模型 + + 账户 + 登录 + 免费注册 + + © 2026 cmhub + 粤ICP备 000000 号(占位) + + diff --git a/prototypes/cmhub-homepage-v2.svg b/prototypes/cmhub-homepage-v2.svg new file mode 100644 index 0000000..bf33650 --- /dev/null +++ b/prototypes/cmhub-homepage-v2.svg @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cmhub + / 生成 API + + 功能 + 计费 + 文档 + + 登录 + + 免费注册 + + + + + + + + + HTTP 接口 · 拿 Key 就调 + + 你的程序, + 一次调用, + 标题 和 主图 就到。 + + 生成标题、生成主图,全封装成 HTTP 接口。桌面端带一把 + API Key 直接调,按点数计费——换底层模型,价格不变。 + + + 免费注册 → + + + + 下载 Windows 客户端 + v1.0.0 · 48 MB + + 注册即用 · 免邮箱验证 · 失败自动退点 · 生成标题 2 点 起 + + + + + + + + + + + generate-title · request + + + + + + 123 + 456 + 789 + 101112 + 13 + + + + + $ curl -X POST cm.833729.com/api/v1/generate/title \ + -H "Authorization: Bearer sk_cmhub_••••" \ + -d '{"prompt":"白色纯棉基础款T恤"}' + + // 200 OK + { + "titles": ["纯棉白T恤男夏季薄款…", …], + "alias": "title-standard", + "model_used": "gpt-5.5", + + + "points_cost": 2, ← 本次扣点 + "points_balance": 98 + }▋ + + + + 200 · 128 ms + ● Bearer 鉴权 · 只认 Key + + + + + + + 开始使用 + 四步,在你的程序里生成 + 用户端负责注册、充值、管 Key;生成走 API。后台配模型和价,调用方零改动。 + + + + + 01 + + 注册账号 + 邮箱 + 密码即注册即用, + 免验证,不送点数。 + + + 02 + + 扫码充值点数 + 微信 / 支付宝扫码, + 按汇率换成点数。 + + + 03 + + 生成 API Key + 明文只显示一次, + 库内只存哈希。 + + + 04 + + 桌面端填 Key 用 + 客户端带 Key 调接口, + 生成标题与主图。 + + + + + + 两个端点 + 调两个接口,产出能上架 + + + + + POST /generate/title + + 2 点起 + 生成标题 + 给商品生成多个吸睛中文标题,可纯文字也可看图。 + 传能力别名,换底层模型价格不变;失败自动退点。 + + + + + POST /generate/image + + 10 点起 + 生成主图 / 改图 + 传商品原图 + 提示词,同步产出电商主图(改图需原图)。 + 按分辨率计价,结果以 URL 返回,客户端直接下载。 + + + + + + + 怎么计费 + 按「操作 + 能力别名 + 分辨率」定价 + 运营在后台配价,你只认稳定别名。换供应商、换模型,你的账单口径不变。 + + + ✓ 充值→点数,充多少到多少 + ✓ 失败自动退点,不白扣 + ✓ 并发扣点安全,不超扣 + + + 当前余额 + 1,280 + 点 + + + ≈ 128 次标题 · 本月已消耗 128 点 + + + + + 下载客户端 + 装上桌面端,填 Key 就能生成 + + + + + + + + cmhub 桌面客户端 + Windows 10/11 · v1.0.0 · 更新 2026-07-06 · 48 MB + SHA256 9f2c…a17e (下载后请核对校验值) + 首次安装若提示「未知发布者」,点『更多信息 → 仍要运行』——客户端正在申请代码签名。 + + + + 下载 .exe + 前期由本站直连下载 + + + + + + + cmhub + 自助用户端 · 计费 AI 能力网关 · 运营后台,三合一。 + + 开发者 + 接口文档 + 可用模型 + 账户 + 登录 + 免费注册 + + © 2026 cmhub · v1.0.0 + 粤ICP备 000000 号(占位) + +