Files
geo/docs/superpowers/specs/2026-04-16-kol-feature-design.md
T
root 6b2810fc74 docs: revise KOL spec v2 — align with existing prompt sharing architecture
Addresses all critical findings from review:
- KOL identity via prompt_share_profiles, not platform_role
- Prompts stored as sealed article_templates, not parallel system
- Platform-level packages with proper API path separation
- Generation pipeline integrated with existing tx/quota/idempotency
- Variable model with immutable IDs and version snapshots
- Independent kol_assist_tasks table (decoupled from template_assist_tasks)
- Complete resource lifecycle and auth chain
- Consistent tenant-level subscription entity

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 22:24:11 +08:00

25 KiB
Raw Blame History

KOL 功能设计文档(v2 — 对齐既有架构)

本文档是对 geo-platform-ops-admin-tech-architecture-v1.md §6.2.4 / §13.11.2 既有 KOL/Prompt 分享架构的补全,在其基础上新增"市场浏览 → 订阅 → 生成"用户流程、KOL 提示词管理工作台、数据看板三层能力。不取代也不重复既有模型。

概述

为 GEO 工具平台新增 KOL 功能模块。KOL 是平台中的超级用户——拥有普通用户的全部功能,同时可以创建、管理精调 prompt 订阅包,供其他租户订阅使用。平台记录订阅和使用数据,后续用于给 KOL 结算。

核心概念

  • KOL 身份:通过既有 prompt_share_profiles 建模(kol_profile),不是 RBAC 权限角色,不参与 platform_role 鉴权(参见架构文档 §6.2.4
  • 订阅包(PackageKOL 发布的一组 sealed prompt 的集合,面向某个行业/场景(如"家具行业精调包")
  • Prompt:包内的具体提示词,存储为 article_templatesscope='kol_package', prompt_visibility='sealed', origin_type='kol_authored'),通过 protected_prompt_asset_key 保护原文
  • 动态表单:每个 prompt 由 KOL 定义变量槽位(schema_json),用户填写后替换生成,prompt 内容对用户不可见
  • 订阅:租户级别(tenant)订阅 KOL 包,第一版通过申请 + 管理员审批/手动绑定,不做支付
  • 导入物化:租户订阅后,包内 prompt 通过 prompt_share_codes 机制物化为租户自己的 article_templatesorigin_type='kol_share', share_code_id 关联),与既有分享码导入流程一致

实现策略

在既有 prompt_share_profilesprompt_share_codesarticle_templates 体系上扩展,新增"订阅包"聚合层和"市场/看板"展示层。生成链路完全复用现有事务/幂等/额度闭环。

与既有架构的关系

既有概念 本次扩展
prompt_share_profiles — KOL 身份 复用,新增 share_enabled 条件控制市场可见性
prompt_share_codes — 分享码 复用,订阅激活后自动为包内每个 prompt 生成分享码
article_templatessealed prompt 复用,KOL 原始 prompt 存储为 scope='kol_package' 的模板
article_templates(导入后物化) 复用,订阅方租户内物化为 origin_type='kol_share' 的模板
生成链路(事务/额度/幂等) 完全复用,source_type='kol' 走同一管道
template_assist_tasks 不复用,新建 kol_assist_tasks 表,解耦 template_id 强依赖

1. 数据模型

1.1 新增表

kol_packages — 订阅包(平台级资源)

CREATE TABLE kol_packages (
    id                BIGSERIAL PRIMARY KEY,
    profile_id        BIGINT NOT NULL REFERENCES prompt_share_profiles(id),
    name              VARCHAR(200) NOT NULL,
    description       TEXT,
    cover_url         TEXT,
    industry          VARCHAR(100),
    tags              JSONB NOT NULL DEFAULT '[]',
    price_note        VARCHAR(200),
    status            VARCHAR(20) NOT NULL DEFAULT 'draft',  -- draft / published / archived
    created_at        TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at        TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    deleted_at        TIMESTAMPTZ
);
CREATE INDEX idx_kol_packages_profile ON kol_packages(profile_id) WHERE deleted_at IS NULL;
CREATE INDEX idx_kol_packages_status ON kol_packages(status) WHERE deleted_at IS NULL;

设计要点

  • profile_id 关联 prompt_share_profilesKOL 身份),不直接关联 users.id
  • tenant_id:订阅包是平台级资源,不属于任何租户。API 走 /api/platform/kol/* 路径(KOL 身份鉴权),不走 /api/tenant/*

kol_package_templates — 包与模板关联

CREATE TABLE kol_package_templates (
    id              BIGSERIAL PRIMARY KEY,
    package_id      BIGINT NOT NULL REFERENCES kol_packages(id),
    template_id     BIGINT NOT NULL REFERENCES article_templates(id),
    sort_order      INT NOT NULL DEFAULT 0,
    created_at      TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE UNIQUE INDEX uk_kol_pkg_tpl ON kol_package_templates(package_id, template_id);

设计要点

  • KOL 的 prompt 存储在既有 article_templates 表中(scope='kol_package', prompt_visibility='sealed', origin_type='kol_authored'
  • 本表只做包→模板的聚合关联,一个包包含多个 sealed template
  • schema_json 中的变量槽位定义直接复用 article_templates.schema_json

kol_subscriptions — 租户级订阅关系

CREATE TABLE kol_subscriptions (
    id          BIGSERIAL PRIMARY KEY,
    tenant_id   BIGINT NOT NULL REFERENCES tenants(id),
    package_id  BIGINT NOT NULL REFERENCES kol_packages(id),
    status      VARCHAR(20) NOT NULL DEFAULT 'pending',  -- pending / active / expired / revoked
    approved_by BIGINT REFERENCES users(id),
    start_at    TIMESTAMPTZ,
    end_at      TIMESTAMPTZ,
    created_at  TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at  TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE UNIQUE INDEX uk_kol_sub_active ON kol_subscriptions(tenant_id, package_id)
    WHERE status IN ('pending', 'active');

设计要点

  • 订阅主体是 tenant,不是 user。文案、审批、权限、结算全部以 tenant 为口径
  • 订阅激活(pending → active)时,自动为包内每个 active template 生成 prompt_share_codes 记录,并物化为订阅方租户的 article_templatesorigin_type='kol_share', share_code_id 关联)

kol_usage_logs — 使用记录

CREATE TABLE kol_usage_logs (
    id                       BIGSERIAL PRIMARY KEY,
    package_id               BIGINT NOT NULL REFERENCES kol_packages(id),
    source_template_id       BIGINT NOT NULL REFERENCES article_templates(id),
    tenant_id                BIGINT NOT NULL REFERENCES tenants(id),
    article_id               BIGINT REFERENCES articles(id),
    generation_task_id       BIGINT REFERENCES generation_tasks(id),
    template_version_no      INT NOT NULL,
    variables_snapshot       JSONB,
    schema_snapshot          JSONB,
    rendered_prompt_hash     VARCHAR(64),
    created_at               TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_kol_usage_package ON kol_usage_logs(package_id, created_at DESC);
CREATE INDEX idx_kol_usage_tenant ON kol_usage_logs(tenant_id, created_at DESC);

设计要点

  • source_template_id 指向 KOL 原始 templatescope='kol_package'),不是订阅方物化的副本
  • template_version_no:记录使用时的模板版本号,确保历史可复现
  • schema_snapshot:记录使用时的 schema_json 快照,KOL 后续修改不影响历史记录
  • rendered_prompt_hash:变量替换后的最终 prompt 的 SHA-256,用于幂等去重和结算审计
  • generation_task_id:关联到 generation_tasks,闭合与额度系统的追溯链

kol_assist_tasks — KOL AI 辅助任务

CREATE TABLE kol_assist_tasks (
    id              VARCHAR(64) PRIMARY KEY,
    profile_id      BIGINT NOT NULL REFERENCES prompt_share_profiles(id),
    tenant_id       BIGINT NOT NULL REFERENCES tenants(id),
    task_type       VARCHAR(50) NOT NULL,  -- ai_generate / ai_optimize
    template_id     BIGINT REFERENCES article_templates(id),
    status          VARCHAR(20) NOT NULL DEFAULT 'queued',
    request_json    JSONB NOT NULL DEFAULT '{}'::jsonb,
    result_json     JSONB,
    error_message   TEXT,
    started_at      TIMESTAMPTZ,
    completed_at    TIMESTAMPTZ,
    created_at      TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at      TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_kol_assist_profile ON kol_assist_tasks(profile_id, created_at DESC);
CREATE INDEX idx_kol_assist_status ON kol_assist_tasks(status, created_at DESC);

设计要点

  • 独立于 template_assist_tasks,解耦 template_id 强依赖(template_id 此处可为 NULL,AI 生成新 prompt 时还没有 template
  • tenant_id 用于 AI 模型费用归属(结算记到 KOL 所在的 tenant)
  • profile_id 关联 KOL 身份,鉴权走 KOL 身份校验

1.2 现有表变更

article_templates 表

新增字段值(不改表结构):

  • scope = 'kol_package'KOL 原始 prompt 模板
  • origin_type = 'kol_authored'KOL 创作的原始模板
  • origin_type = 'kol_share':订阅方物化的副本(已有设计,参见架构文档 §13.11.2 line 1330
  • prompt_visibility = 'sealed':prompt 正文服务端只读,前端不返回(已有设计)

articles 表

新增 source_type 值:"kol" template_id 字段已存在,指向订阅方物化后的 article_template

generation_tasks 表

新增 task_type 值:"kol"

input_params_json 存储:

{
  "source_template_id": 42,
  "template_version_no": 3,
  "variables": {
    "公司名称": "宜家家居",
    "行业": "家具",
    "主要竞品": "全友、顾家",
    "月预算": 50
  },
  "schema_snapshot": [...],
  "rendered_prompt_hash": "a1b2c3d4..."
}

幂等键tenant_id + source_type('kol') + request_hash(rendered_prompt_hash) + schedule_slot(null),与既有幂等体系一致。


2. 生成链路(对齐既有事务/额度闭环)

严格遵循架构文档 §10.1 和 §13.7.3 的事务边界:

2.1 提交路径(单 PostgreSQL 事务)

  1. 校验租户身份、订阅有效性(package active + subscription active + 有效期内 + prompt active + package published
  2. 从 KOL 原始 template 读取 prompt_contentprotected_prompt_asset_key 解密)
  3. 变量替换,计算 rendered_prompt_hash
  4. 单事务内
    • 额度预扣(quota_reservations
    • 创建 generation_taskstask_type='kol', request_hash=rendered_prompt_hash
    • 创建 articles 占位记录(source_type='kol', template_id 指向物化副本)
    • 写入 kol_usage_logsstatus 为 pending,关联 generation_task_id
  5. 事务提交后写入 RabbitMQ

2.2 成功路径(单 PostgreSQL 事务)

  • 写入 article_versions
  • 更新 articles.generate_status = 'completed'
  • 确认额度消耗
  • 更新 kol_usage_logs(关联 article_id

2.3 失败路径(单 PostgreSQL 事务)

  • 更新 generation_tasks.status = 'failed'
  • 额度退还/释放
  • 不写入 kol_usage_logs(或标记为 failed

3. 变量模型(不可变 ID + 版本快照)

3.1 schema_json 格式

复用 article_templates.schema_json,变量 key 默认中文,也支持英文:

{
  "variables": [
    {
      "id": "var_a1b2c3",
      "key": "公司名称",
      "label": "公司名称",
      "type": "input",
      "required": true,
      "placeholder": "请输入您的公司名"
    },
    {
      "id": "var_d4e5f6",
      "key": "行业",
      "label": "行业",
      "type": "select",
      "options": ["家具", "建材", "家电"],
      "required": true
    },
    {
      "id": "var_g7h8i9",
      "key": "主要竞品",
      "label": "主要竞品",
      "type": "textarea",
      "required": false
    },
    {
      "id": "var_j0k1l2",
      "key": "月预算",
      "label": "月预算(万)",
      "type": "number",
      "required": false
    }
  ]
}

设计要点

  • 每个变量有不可变 idvar_ + nanoid),KOL 修改 key/label 时 id 不变
  • prompt 模板内部按 {{id}} 引用(如 {{var_a1b2c3}}),编辑器显示为 {{公司名称}}
  • 用户表单根据 label 显示,提交时按 id 映射值
  • 修改 key/label 不会导致旧 prompt 失效
  • 支持的 type 值:inputtextareaselectnumbercheckbox

3.2 版本快照策略

  • article_templates.version_no 每次 KOL 保存时递增
  • 生成时记录 template_version_no + schema_snapshotgeneration_tasks.input_params_jsonkol_usage_logs
  • 历史生成任务可完整复现:哪个版本的 prompt + 哪个版本的 schema + 什么变量值 → 什么 hash

4. 页面结构与路由

4.1 侧边栏导航变更

现有导航:
  Workspace
  文章创作: 模版生成 | 自定义生成 | 自由创作 | 发布管理
  品牌管理: 品牌库
  品牌追踪: 追踪详情
  内容管理: 知识库 | 图片库

新增:
  KOL 市场: 模版市场                    ← 所有用户可见
  KOL 工作台: 提示词管理 | 数据看板      ← 仅 kol_profile.share_enabled=true 的用户可见

"KOL 工作台" 根据 prompt_share_profiles.share_enabled 动态显示/隐藏,不走 RBAC。

4.2 新增路由

路由 组件 角色 说明
/kol/marketplace KolMarketplaceView 所有用户 浏览/筛选/订阅 KOL 包
/kol/packages/:id KolPackageDetailView 所有用户 包详情 → prompt 列表 → 选择 prompt
/kol/generate/:promptId KolGenerateView 已订阅租户 动态表单(填变量)→ 提交生成
/kol/manage KolManageView 仅 KOL 管理订阅包 + AI 辅助编写 prompt
/kol/dashboard KolDashboardView 仅 KOL 订阅数据统计看板

4.3 用户入口(3个)

  1. 侧边栏「模版市场」→ 浏览/筛选 → 订阅 → 选 prompt → 表单 → 生成
  2. Workspace 卡片区:已订阅且物化的 KOL 模板显示为卡片 → 点击 → 表单 → 生成
  3. 模版生成页面:物化的 KOL 模板出现在模版选择器 modal 中(origin_type='kol_share'

5. API 设计

5.1 KOL 市场(所有登录用户,走 tenant API)

GET    /api/tenant/kol/marketplace/packages           -- 市场列表(筛选:industry, tags, keyword
GET    /api/tenant/kol/marketplace/packages/:id       -- 包详情(含 prompt 名称列表,不含 prompt_content
POST   /api/tenant/kol/marketplace/packages/:id/subscribe  -- 申请订阅(tenant 级)
GET    /api/tenant/kol/subscriptions                  -- 当前租户的订阅列表

5.2 KOL 生成(已订阅租户,走 tenant API)

GET    /api/tenant/kol/prompts/:id/schema             -- 获取物化模板的 schema_json(不含 prompt_content
POST   /api/tenant/kol/prompts/:id/generate           -- 提交生成(body: variables 对象)

生成接口内部走 §2 的完整事务链路。

5.3 KOL 管理(走 platform APIKOL 身份鉴权)

GET    /api/platform/kol/packages                     -- 我的包列表
POST   /api/platform/kol/packages                     -- 创建包
PUT    /api/platform/kol/packages/:id                 -- 更新包
DELETE /api/platform/kol/packages/:id                 -- 删除包(软删除)
PUT    /api/platform/kol/packages/:id/publish         -- 发布包
PUT    /api/platform/kol/packages/:id/archive         -- 下架包

POST   /api/platform/kol/packages/:id/templates       -- 创建 prompt(创建 sealed article_template + 关联)
PUT    /api/platform/kol/templates/:id                -- 更新 prompt(递增 version_no
DELETE /api/platform/kol/templates/:id                -- 删除 prompt(软删除 article_template + 移除关联)

POST   /api/platform/kol/assist/generate              -- AI 辅助生成 prompt
POST   /api/platform/kol/assist/optimize              -- AI 辅助优化 prompt

鉴权:中间件校验请求者有 active 的 prompt_share_profile,且 share_enabled=true资源归属:管理接口以 profile_id 过滤,KOL 只能操作自己的包和 prompt。 AI 费用assist 任务的 tenant_id 取 KOL 用户所在租户,费用记到该 tenant。

5.4 KOL 看板(走 platform APIKOL 身份鉴权)

GET    /api/platform/kol/dashboard/overview           -- 总体指标
GET    /api/platform/kol/dashboard/packages           -- 按包维度统计
GET    /api/platform/kol/dashboard/trend              -- 趋势数据(query: period=7d/30d/90d

5.5 管理员操作(走 platform APIplatform_role 鉴权)

PUT    /api/platform/admin/kol/subscriptions/:id/approve   -- 审批订阅
POST   /api/platform/admin/kol/subscriptions               -- 手动绑定开通
PUT    /api/platform/admin/kol/subscriptions/:id/revoke    -- 撤销订阅

5.6 Workspace 集成

GET    /api/tenant/workspace/template-cards           -- 现有接口,扩展返回 origin_type='kol_share' 的模板卡片

6. 订阅激活流程

当管理员审批或手动绑定(status: pending → active)时:

  1. 查找 package 内所有 status='active'article_templates
  2. 为每个 template 生成 prompt_share_codes 记录(snapshot_json 含卡片信息 + 变量槽位,protected_prompt_asset_key 引用原始 prompt
  3. 将每个 share_code 物化为订阅方租户的 article_templatesscope='tenant', origin_type='kol_share', share_code_id 关联, prompt_visibility='sealed'
  4. 物化后的模板出现在订阅方的 Workspace 和模版选择器中

KOL 后续新增 prompt 到已发布包时,自动为所有 active 订阅方同步物化。


7. 资源生命周期

7.1 删除策略

资源 软删除字段 删除行为
kol_packages deleted_at 软删除,级联将包内所有 template 标记 status='archived'
article_templatesKOL authored deleted_at 软删除,同时移除 kol_package_templates 关联
kol_subscriptions 无(状态机) active → revoked,不物理删除
kol_usage_logs 审计数据,不删除

7.2 生成鉴权完整校验链

用户访问 /kol/generate/:promptId 时,后端必须逐项校验:

  1. 物化 template 存在且 deleted_at IS NULL
  2. 物化 template 的 share_code_id 关联的 prompt_share_codes.status = 'active'
  3. 对应的 kol_packages.status = 'published'deleted_at IS NULL
  4. 租户有该 package 的 kol_subscriptions.status = 'active'
  5. 订阅在有效期内(start_at <= now() <= end_at
  6. 原始 template status = 'active'

任一不满足返回 403。


8. KOL 提示词编辑器(KolManageView

8.1 包管理

  • 列表展示 KOL 自己创建的所有订阅包(按 profile_id 过滤)
  • 创建/编辑包:名称、描述、封面、行业、标签、定价说明
  • 包状态管理:draft → published → archived

8.2 Prompt 编辑器(核心组件)

三栏布局:

  • 左栏 — 变量组件面板(200px

    • 5 种可拖拽组件:输入框、多行文本、选择框、数字框、多选框
    • 拖入编辑区光标位置触发配置
  • 中栏 — Prompt 编辑区

    • 顶部 AI 辅助栏:
      • AI 生成:KOL 描述需求 → AI 生成完整 prompt 模板(含变量)
      • AI 优化:选中现有 prompt → AI 优化措辞/结构
      • 通过 kol_assist_tasks 异步执行
    • 编辑区:变量以彩色标签形式内联展示(显示 {{公司名称}},内部存储 {{var_a1b2c3}}
    • 操作栏:预览表单、保存草稿(递增 version_no)、发布
  • 右栏 — 变量配置面板(260px

    • 展示所有已添加的变量卡片
    • 可编辑:key(默认中文)、显示名(label)、类型、必填、提示语、选项列表
    • 修改 key/label 不影响 id,不会破坏已有 prompt 引用

8.3 拖拽交互流程

  1. KOL 从左侧面板拖一个组件到编辑区光标位置
  2. 弹出配置弹窗:填写显示名(默认中文,自动同步为 key)、必填、提示语/选项
  3. 确认后:系统分配不可变 idvar_ + nanoid),编辑区插入 {{显示名}} 标签(内部 {{id}}),右侧出现配置卡片
  4. 后续修改 key/label 时,编辑区标签同步更新显示,但底层 {{id}} 不变

8.4 Prompt 内容保护

  • 原始 prompt 通过 protected_prompt_asset_key 存储为受保护资产(与既有 sealed prompt 机制一致)
  • 面向普通用户的 API 永远不返回 prompt 原文
  • 用户端只获取 schema_json(变量槽位定义)用于渲染表单
  • KOL 管理 API/api/platform/kol/*)可读取原文,仅限 KOL 本人

9. KOL 数据看板(KolDashboardView

9.1 数据指标

  • 总订阅租户数:所有包的 active 订阅租户总数(去重)
  • 本月新增订阅:当月新增 active 订阅
  • 总使用次数:所有 prompt 被使用生成文章的总次数
  • 本月使用次数:当月使用次数

9.2 按包维度

  • 每个包的订阅租户数、使用次数
  • 包内各 prompt 的使用次数排行

9.3 趋势图

  • 订阅数随时间变化趋势
  • 使用次数随时间变化趋势

9.4 数据来源

  • 订阅数据:查询 kol_subscriptions 表(以 tenant 为统计口径)
  • 使用数据:查询 kol_usage_logs
  • 后续扩展:收益计算、结算报表(基于 rendered_prompt_hash 做结算审计)

10. 普通用户流程

10.1 模版市场(KolMarketplaceView

  • 卡片网格展示所有 status='published' 的 KOL 订阅包
  • 筛选:按行业、标签、KOL 名称
  • 每张卡片展示:封面、包名、KOL 显示名、行业标签、prompt 数量、订阅租户数
  • 卡片操作:点击进入包详情

10.2 包详情(KolPackageDetailView

  • 头部:包名、描述、KOL 信息、行业标签
  • 订阅状态区:
    • 未订阅 → 显示「申请订阅」按钮(tenant 级,状态变为 pending
    • 待审批 → 显示「审核中」状态
    • 已订阅 → 显示有效期
  • Prompt 列表:展示包内所有 active prompt 的名称 + 平台标识(不含 prompt 内容)
  • 点击某个 prompt → 跳转到生成页面(需已订阅)

10.3 动态表单生成(KolGenerateView

  • 根据物化模板的 schema_json.variables 动态渲染表单
  • 支持的字段类型:input、textarea、select、number、checkbox
  • 用户填写变量 → 点击「生成文章」
  • 走 §2 的完整事务链路

11. 前端关键组件

组件 说明
KolMarketplaceView.vue 模版市场页面,卡片网格 + 筛选
KolPackageDetailView.vue 包详情,prompt 列表 + 订阅操作
KolGenerateView.vue 动态表单生成页面
KolManageView.vue KOL 包和 prompt 管理
KolPromptEditor.vue 核心组件:三栏 prompt 编辑器
KolVariablePanel.vue 左侧变量组件拖拽面板
KolVariableConfig.vue 右侧变量配置面板
KolDynamicForm.vue 根据 schema_json 渲染动态表单(用户端 + 预览)
KolDashboardView.vue KOL 数据看板
KolPackageCard.vue 市场/Workspace 中的订阅包卡片组件

12. 权限与鉴权

12.1 KOL 身份判断

  • 通过 prompt_share_profiles 表判断,share_enabled = truestatus = 'active'
  • 不走 RBAC,不在 platform_user_roles 中添加 KOL 角色
  • 前端通过 user info API 返回的 kol_profile 字段判断是否展示工作台

12.2 API 路径分离

路径前缀 鉴权方式 适用场景
/api/tenant/kol/* 标准 tenant 身份 市场浏览、订阅、生成(带 tenant scope
/api/platform/kol/* KOL profile 身份 包管理、prompt 编辑、AI 辅助、看板
/api/platform/admin/kol/* platform_role 鉴权 管理员审批/绑定订阅

12.3 生成鉴权

见 §7.2 完整校验链。


13. i18n

zh-CN.tsen-US.ts 中新增 kol 命名空间:

kol.marketplace.title          -- 模版市场 / KOL Marketplace
kol.marketplace.filter.*       -- 筛选相关
kol.package.subscribe          -- 申请订阅
kol.package.subscribed         -- 已订阅
kol.package.pending            -- 审核中
kol.generate.title             -- 生成文章
kol.generate.submit            -- 提交生成
kol.manage.title               -- 提示词管理
kol.manage.createPackage       -- 创建订阅包
kol.manage.editor.*            -- 编辑器相关
kol.dashboard.title            -- 数据看板
kol.dashboard.totalSubs        -- 总订阅租户数
kol.dashboard.monthSubs        -- 本月新增
kol.dashboard.totalUsage       -- 总使用次数
kol.dashboard.monthUsage       -- 本月使用
nav.kolMarketplace             -- 模版市场
nav.kolManage                  -- 提示词管理
nav.kolDashboard               -- 数据看板
status.sourceType.kol          -- KOL 生成

14. 第一版范围与不做的事

第一版做

  • KOL 身份(复用 prompt_share_profiles
  • 订阅包 CRUD + 发布/下架
  • Prompt 编辑器(变量拖拽 + 不可变 ID + AI 辅助)
  • 模版市场浏览/筛选
  • 租户级申请订阅 + 管理员审批/手动绑定 + 物化到订阅方
  • 动态表单 → 文章生成(完整事务/额度/幂等闭环)
  • 使用记录含版本快照 + prompt hash
  • KOL 数据看板(基础指标 + 趋势,以 tenant 为统计口径)
  • Workspace 和模版选择器集成
  • i18n 中英文支持

第一版不做

  • 在线支付(用申请 + 管理员审批代替)
  • 收益计算和提现(数据已埋点,后续可扩展)
  • KOL 申请入驻流程(由管理员手动创建 prompt_share_profiles
  • 订阅包评价/评分系统
  • Prompt A/B 测试