# AI 算力积分计费系统方案 > **文档版本**:v1.0 > **创建日期**:2025-01-15 > **最后更新**:2025-01-15 --- ## 目录 1. [方案概述](#方案概述) 2. [积分体系设计](#积分体系设计) 3. [充值套餐方案](#充值套餐方案) 4. [服务积分消耗标准](#服务积分消耗标准) 5. [成本分析](#成本分析) 6. [用户福利政策](#用户福利政策) 7. [积分有效期规则](#积分有效期规则) 8. [数据库设计](#数据库设计) 9. [API 接口设计](#api-接口设计) 10. [业务流程](#业务流程) 11. [运营策略建议](#运营策略建议) --- ## 方案概述 ### 背景 Jointo视频工作台采用 **AI 算力积分** 作为唯一的计费方式,取消传统的订阅层级(免费版/专业版/企业版)。用户通过充值获得积分,使用 AI 功能时消耗相应积分。 ### 核心目标 1. **成本可控**:确保积分定价覆盖 API 成本 + 合理利润空间(30-50%) 2. **用户友好**:新用户获得足够积分体验核心功能,降低使用门槛 3. **激励充值**:通过阶梯式优惠鼓励用户大额充值 4. **灵活调整**:支持根据市场变化和成本波动灵活调整定价 ### 设计原则 - **透明定价**:每项服务的积分消耗清晰明确 - **按需付费**:用户只为实际使用的功能付费 - **公平合理**:高成本服务(视频生成)消耗更多积分,低成本服务(字幕生成)消耗较少 - **用户体验优先**:避免过度复杂的计费规则 --- ## 积分体系设计 ### 基础兑换比例 **标准比例**:1 元人民币 = 10 积分 **选择理由**: - 计算简单,用户心理接受度高 - 便于后期调整单项服务的积分消耗 - 与主流平台(如阿里云、腾讯云)的积分体系接近 ### 积分类型 | 积分类型 | 获取方式 | 有效期 | 说明 | | ------------ | -------------------- | -------- | -------------------- | | **充值积分** | 用户付费充值 | 永久有效 | 主要积分来源,不过期 | | **赠送积分** | 新用户注册、活动奖励 | 1 个月 | 激励用户使用平台 | | **活动积分** | 限时活动、推广任务 | 30-90 天 | 短期运营活动 | ### 积分消耗优先级 当用户同时拥有多种类型积分时,按以下顺序扣除: 1. **即将过期的积分**(按过期时间排序) 2. **赠送积分** 3. **充值积分** --- ## 充值套餐方案 ### 套餐列表 | 套餐名称 | 充值金额 | 获得积分 | 单价(元/积分) | 额外赠送 | 推荐度 | | -------- | -------- | -------- | --------------- | -------- | ---------- | | 体验套餐 | ¥10 | 100 | ¥0.100 | - | ⭐⭐⭐ | | 进阶套餐 | ¥50 | 550 | ¥0.091 | +10% | ⭐⭐⭐⭐ | | 高级套餐 | ¥100 | 1,200 | ¥0.083 | +20% | ⭐⭐⭐⭐⭐ | | 专业套餐 | ¥500 | 6,500 | ¥0.077 | +30% | ⭐⭐⭐⭐⭐ | ### 套餐使用场景 #### 体验套餐(¥10 = 100 积分) **适合人群**:新用户、轻度使用者 **可使用次数**: - 生成 50 张图片 - 生成 1 个 5 秒视频 - 生成 5 个 10 秒音效 - 配音 10,000 字 - 生成 100 分钟字幕 #### 进阶套餐(¥50 = 550 积分) **适合人群**:中度使用者、内容创作者 **可使用次数**: - 生成 275 张图片 - 生成 5 个 5 秒视频 - 生成 27 个 10 秒音效 - 混合使用多种功能 #### 高级套餐(¥100 = 1,200 积分)⭐ 推荐 **适合人群**:重度使用者、专业创作者 **可使用次数**: - 生成 600 张图片 - 生成 12 个 5 秒视频 - 生成 60 个 10 秒音效 - 混合使用多种功能 #### 专业套餐(¥500 = 6,500 积分) **适合人群**:企业用户、工作室 **可使用次数**: - 生成 3,250 张图片 - 生成 65 个 5 秒视频 - 生成 325 个 10 秒音效 - 大规模内容生产 --- ## 服务积分消耗标准 ### 图片生成服务 **基础定价**:2 积分/张 | 分辨率 | 积分消耗 | 说明 | | --------- | -------- | ------------------ | | 512x512 | 1 积分 | 低分辨率,快速预览 | | 1024x1024 | 2 积分 | 标准分辨率(推荐) | | 1024x1792 | 3 积分 | 竖屏高清 | | 1792x1024 | 3 积分 | 横屏高清 | | 2048x2048 | 4 积分 | 超高清(如果支持) | **模型差异**: - Stable Diffusion:标准价格 - DALL-E 3:标准价格 × 1.5 - Midjourney:标准价格 × 2(如果接入) ### 视频生成服务 **基础定价**:100 积分/5秒 | 视频类型 | 时长 | 积分消耗 | 说明 | | ---------- | ---- | -------- | ------------ | | 文本转视频 | 5秒 | 100 积分 | 基础视频生成 | | 文本转视频 | 10秒 | 200 积分 | 长视频 | | 图片转视频 | 5秒 | 100 积分 | 图片动画化 | | 图片转视频 | 10秒 | 200 积分 | 长动画 | | 关键帧动画 | 5秒 | 150 积分 | 多关键帧插值 | | 视频融合 | 5秒 | 120 积分 | 两段视频融合 | | 视频替换 | 5秒 | 80 积分 | 局部替换 | **分辨率加成**: - 720p:标准价格 - 1080p:标准价格 × 1.5 - 4K:标准价格 × 3 **帧率加成**: - 24fps:标准价格 - 30fps:标准价格 × 1.2 - 60fps:标准价格 × 1.5 ### 音效生成服务 **基础定价**:20 积分/10秒 | 时长 | 积分消耗 | 说明 | | ---- | -------- | -------- | | 5秒 | 10 积分 | 短音效 | | 10秒 | 20 积分 | 标准音效 | | 30秒 | 50 积分 | 长音效 | | 60秒 | 90 积分 | 背景音乐 | **音质加成**: - 标准音质(44.1kHz):标准价格 - 高音质(48kHz):标准价格 × 1.2 - 无损音质(96kHz):标准价格 × 1.5 ### 配音生成服务(TTS) **基础定价**:1 积分/100字 | 字数 | 积分消耗 | 说明 | | ----------- | -------- | ------------ | | 0-100字 | 1 积分 | 最小计费单位 | | 101-500字 | 5 积分 | 短文本 | | 501-1000字 | 10 积分 | 中等文本 | | 1001-5000字 | 50 积分 | 长文本 | **语音类型**: - 标准语音:标准价格 - 情感语音:标准价格 × 1.5 - 名人声音克隆:标准价格 × 3(如果支持) **语言加成**: - 中文/英文:标准价格 - 小语种:标准价格 × 1.2 ### 字幕生成服务(STT) **基础定价**:1 积分/分钟 | 时长 | 积分消耗 | 说明 | | --------- | -------- | ------------ | | 0-1分钟 | 1 积分 | 最小计费单位 | | 1-10分钟 | 10 积分 | 短视频 | | 10-30分钟 | 30 积分 | 中等视频 | | 30-60分钟 | 60 积分 | 长视频 | **功能加成**: - 基础转写:标准价格 - 智能断句:标准价格 × 1.2 - 多语言识别:标准价格 × 1.5 - 说话人分离:标准价格 × 2 --- ## 成本分析 ### API 成本估算 基于主流 AI 服务提供商的定价(2025年1月): | 服务类型 | API 成本(USD) | API 成本(CNY) | 积分消耗 | 积分价值(CNY) | 利润率 | | --------------------- | --------------- | --------------- | -------- | --------------- | ------ | | 图片生成(1024x1024) | $0.02 | ¥0.14 | 2 积分 | ¥0.20 | 43% | | 视频生成(5秒) | $1.00 | ¥7.00 | 100 积分 | ¥10.00 | 43% | | 音效生成(10秒) | $0.20 | ¥1.40 | 20 积分 | ¥2.00 | 43% | | 配音生成(100字) | $0.0015 | ¥0.01 | 1 积分 | ¥0.10 | 900% | | 字幕生成(1分钟) | $0.006 | ¥0.04 | 1 积分 | ¥0.10 | 150% | **汇率**:1 USD = 7 CNY(参考汇率) **积分价值**:1 积分 = ¥0.10(基础套餐) ### 利润空间分析 #### 高成本服务(图片、视频、音效) - **目标利润率**:30-50% - **实际利润率**:43% - **评估**:✅ 符合预期,可持续运营 #### 低成本服务(配音、字幕) - **目标利润率**:100-500% - **实际利润率**:150-900% - **评估**:✅ 高利润率,但用户感知价值高,定价合理 ### 成本优化策略 1. **批量采购**:与 AI 服务商谈判批量折扣(预计可降低 10-20% 成本) 2. **自建模型**:对于高频服务(如图片生成),考虑自建 Stable Diffusion 集群 3. **缓存机制**:相同参数的生成结果可复用,降低重复调用成本 4. **动态定价**:根据 API 成本波动,季度调整积分消耗标准 --- ## 用户福利政策 ### 新用户注册福利 **赠送积分**:100 积分 **有效期**:1 个月 **使用限制**:无限制,可用于任何 AI 功能 **体验能力**: - 生成 50 张标准图片 - 生成 1 个 5 秒视频 - 生成 5 个 10 秒音效 - 配音 10,000 字 - 生成 100 分钟字幕 ### 首次充值奖励 **条件**:用户首次充值任意金额 **奖励**:额外赠送 20% 积分 **示例**:首次充值 ¥50,获得 550 + 110 = 660 积分 ### 邀请奖励 **邀请人奖励**:被邀请人首次充值后,邀请人获得 10% 返利积分 **被邀请人奖励**:注册后额外获得 50 积分 **示例**: - 用户 A 邀请用户 B - 用户 B 注册获得 100 + 50 = 150 积分 - 用户 B 充值 ¥100,获得 1,200 积分 - 用户 A 获得 120 积分返利 ### 会员日活动 **时间**:每月 15 日 **优惠**:充值额外赠送 10% **叠加规则**:可与套餐赠送叠加 **示例**:会员日充值 ¥100 高级套餐 - 基础积分:1,000 - 套餐赠送(+20%):200 - 会员日赠送(+10%):100 - 总计:1,400 积分 --- ## 积分有效期规则 ### 充值积分 **有效期**:永久有效 **说明**:用户付费购买的积分不设过期时间,保障用户权益 ### 赠送积分 **有效期**:1 个月 **说明**:包括新用户注册赠送、首次充值奖励、邀请奖励等 **过期提醒**: - 过期前 7 天:邮件 + 站内信提醒 - 过期前 3 天:邮件 + 站内信 + 短信提醒 - 过期前 1 天:邮件 + 站内信 + 短信提醒 ### 活动积分 **有效期**:30-90 天(根据活动规则) **说明**:限时活动、推广任务获得的积分 ### 积分冻结规则 **冻结场景**: - 用户账号异常(如刷单、作弊) - 充值退款纠纷期间 - 系统检测到异常消耗行为 **解冻条件**: - 账号安全验证通过 - 纠纷解决 - 异常行为排查完成 --- ## 数据库设计 ### credit_transactions(积分交易记录表) ```sql CREATE TABLE credit_transactions ( transaction_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, user_id BIGINT NOT NULL REFERENCES users(user_id) ON DELETE CASCADE, -- 交易信息 transaction_type TEXT NOT NULL CHECK (transaction_type IN ('recharge', 'consume', 'refund', 'gift', 'reward')), amount INTEGER NOT NULL, -- 正数为增加,负数为减少 balance_after INTEGER NOT NULL, -- 交易后余额 -- 积分类型 credit_type TEXT NOT NULL CHECK (credit_type IN ('paid', 'gift', 'activity')), expires_at TIMESTAMPTZ, -- 积分过期时间(充值积分为 NULL) -- 关联信息 order_id BIGINT REFERENCES orders(order_id) ON DELETE SET NULL, -- 充值订单 ai_job_id BIGINT REFERENCES ai_jobs(job_id) ON DELETE SET NULL, -- AI 任务 description TEXT, -- 交易描述 metadata JSONB, -- 额外信息 -- 时间戳 created_at TIMESTAMPTZ NOT NULL DEFAULT now(), -- 索引 CONSTRAINT credit_transactions_amount_check CHECK (amount != 0) ); -- 索引 CREATE INDEX idx_credit_transactions_user_id ON credit_transactions (user_id, created_at DESC); CREATE INDEX idx_credit_transactions_type ON credit_transactions (transaction_type, created_at DESC); CREATE INDEX idx_credit_transactions_order_id ON credit_transactions (order_id) WHERE order_id IS NOT NULL; CREATE INDEX idx_credit_transactions_ai_job_id ON credit_transactions (ai_job_id) WHERE ai_job_id IS NOT NULL; CREATE INDEX idx_credit_transactions_expires_at ON credit_transactions (expires_at) WHERE expires_at IS NOT NULL; ``` ### credit_packages(充值套餐表) ```sql CREATE TABLE credit_packages ( package_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- 套餐信息 package_name TEXT NOT NULL, -- 套餐名称 amount NUMERIC(10, 2) NOT NULL, -- 充值金额(元) credits INTEGER NOT NULL, -- 获得积分 bonus_credits INTEGER NOT NULL DEFAULT 0, -- 额外赠送积分 -- 显示信息 description TEXT, -- 套餐描述 display_order INTEGER NOT NULL DEFAULT 0, -- 显示顺序 is_recommended BOOLEAN NOT NULL DEFAULT false, -- 是否推荐 -- 状态 is_active BOOLEAN NOT NULL DEFAULT true, -- 是否启用 -- 时间戳 created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- 索引 CREATE INDEX idx_credit_packages_active ON credit_packages (is_active, display_order); -- 触发器 CREATE TRIGGER update_credit_packages_updated_at BEFORE UPDATE ON credit_packages FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); ``` ### credit_pricing(服务定价表) ```sql CREATE TABLE credit_pricing ( pricing_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- 服务信息 service_type TEXT NOT NULL, -- 服务类型:image, video, sound, voice, subtitle service_name TEXT NOT NULL, -- 服务名称 -- 定价信息 base_credits INTEGER NOT NULL, -- 基础积分消耗 unit TEXT NOT NULL, -- 计费单位:per_image, per_second, per_minute, per_100_chars -- 参数配置 parameters JSONB, -- 服务参数(分辨率、时长等) multiplier NUMERIC(3, 2) DEFAULT 1.0, -- 价格倍数 -- 状态 is_active BOOLEAN NOT NULL DEFAULT true, -- 时间戳 created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), -- 唯一约束 CONSTRAINT credit_pricing_unique UNIQUE (service_type, service_name, parameters) ); -- 索引 CREATE INDEX idx_credit_pricing_service_type ON credit_pricing (service_type, is_active); -- 触发器 CREATE TRIGGER update_credit_pricing_updated_at BEFORE UPDATE ON credit_pricing FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); ``` ### 初始化数据 ```sql -- 插入充值套餐 INSERT INTO credit_packages (package_name, amount, credits, bonus_credits, description, display_order, is_recommended) VALUES ('体验套餐', 10.00, 100, 0, '适合新用户体验', 1, false), ('进阶套餐', 50.00, 500, 50, '额外赠送10%', 2, false), ('高级套餐', 100.00, 1000, 200, '额外赠送20%,推荐', 3, true), ('专业套餐', 500.00, 5000, 1500, '额外赠送30%', 4, false); -- 插入服务定价 INSERT INTO credit_pricing (service_type, service_name, base_credits, unit, parameters) VALUES -- 图片生成 ('image', '标准图片生成', 2, 'per_image', '{"resolution": "1024x1024", "model": "stable_diffusion"}'), ('image', '低分辨率图片', 1, 'per_image', '{"resolution": "512x512", "model": "stable_diffusion"}'), ('image', '高清图片生成', 3, 'per_image', '{"resolution": "1024x1792", "model": "stable_diffusion"}'), -- 视频生成 ('video', '标准视频生成', 100, 'per_5_seconds', '{"resolution": "720p", "fps": 24, "type": "text2video"}'), ('video', '图片转视频', 100, 'per_5_seconds', '{"resolution": "720p", "fps": 24, "type": "img2video"}'), -- 音效生成 ('sound', '标准音效生成', 20, 'per_10_seconds', '{"quality": "standard"}'), -- 配音生成 ('voice', '标准配音', 1, 'per_100_chars', '{"voice_type": "standard", "language": "zh-CN"}'), -- 字幕生成 ('subtitle', '标准字幕生成', 1, 'per_minute', '{"language": "zh"}'); ``` --- ## API 接口设计 ### 1. 查询充值套餐 ``` GET /api/v1/credits/packages ``` **响应**: ```json { "packages": [ { "package_id": 1, "package_name": "体验套餐", "amount": 10.0, "credits": 100, "bonus_credits": 0, "total_credits": 100, "description": "适合新用户体验", "is_recommended": false }, { "package_id": 3, "package_name": "高级套餐", "amount": 100.0, "credits": 1000, "bonus_credits": 200, "total_credits": 1200, "description": "额外赠送20%,推荐", "is_recommended": true } ] } ``` ### 2. 创建充值订单 ``` POST /api/v1/credits/recharge ``` **请求体**: ```json { "package_id": 3 } ``` **响应**: ```json { "order_id": 123456, "amount": 100.0, "credits": 1200, "payment_url": "https://pay.example.com/...", "expires_at": "2025-01-15T12:00:00Z" } ``` ### 3. 查询积分余额 ``` GET /api/v1/credits/balance ``` **响应**: ```json { "total_balance": 1500, "paid_credits": 1200, "gift_credits": 300, "expiring_soon": [ { "amount": 100, "expires_at": "2025-02-15T00:00:00Z", "days_left": 31 } ] } ``` ### 4. 查询积分交易记录 ``` GET /api/v1/credits/transactions?page=1&limit=20&type=consume ``` **响应**: ```json { "transactions": [ { "transaction_id": 789, "transaction_type": "consume", "amount": -100, "balance_after": 1400, "description": "视频生成(5秒)", "ai_job_id": 456, "created_at": "2025-01-15T10:30:00Z" } ], "pagination": { "page": 1, "limit": 20, "total": 50 } } ``` ### 5. 查询服务定价 ``` GET /api/v1/credits/pricing?service_type=video ``` **响应**: ```json { "pricing": [ { "service_type": "video", "service_name": "标准视频生成", "base_credits": 100, "unit": "per_5_seconds", "parameters": { "resolution": "720p", "fps": 24, "type": "text2video" } } ] } ``` ### 6. 计算服务费用 ``` POST /api/v1/credits/calculate ``` **请求体**: ```json { "service_type": "video", "parameters": { "duration": 10, "resolution": "1080p", "fps": 30 } } ``` **响应**: ```json { "estimated_credits": 360, "breakdown": { "base_credits": 200, "resolution_multiplier": 1.5, "fps_multiplier": 1.2, "total": 360 }, "sufficient_balance": true, "current_balance": 1500 } ``` --- ## 业务流程 ### 充值流程 ```mermaid sequenceDiagram participant User as 用户 participant Frontend as 前端 participant API as API 服务 participant Payment as 支付网关 participant DB as 数据库 User->>Frontend: 选择充值套餐 Frontend->>API: POST /api/v1/credits/recharge API->>DB: 创建订单记录 API->>Payment: 生成支付链接 Payment-->>API: 返回支付 URL API-->>Frontend: 返回订单信息 Frontend->>User: 跳转支付页面 User->>Payment: 完成支付 Payment->>API: 支付回调通知 API->>DB: 更新订单状态 API->>DB: 增加用户积分 API->>DB: 记录积分交易 API-->>Payment: 确认收到通知 Payment->>User: 支付成功提示 Frontend->>API: 轮询订单状态 API-->>Frontend: 返回充值成功 Frontend->>User: 显示积分到账 ``` ### 消耗流程 ```mermaid sequenceDiagram participant User as 用户 participant Frontend as 前端 participant API as API 服务 participant CreditService as 积分服务 participant AIService as AI 服务 participant DB as 数据库 User->>Frontend: 发起 AI 生成请求 Frontend->>API: POST /api/v1/ai/generate-* API->>CreditService: 计算所需积分 CreditService->>DB: 查询用户余额 alt 余额不足 CreditService-->>API: 余额不足错误 API-->>Frontend: 返回错误提示 Frontend->>User: 提示充值 else 余额充足 CreditService->>DB: 预扣积分(冻结) CreditService-->>API: 预扣成功 API->>AIService: 提交 AI 任务 AIService-->>API: 返回任务 ID API-->>Frontend: 返回任务信息 AIService->>AIService: 执行 AI 生成 alt 生成成功 AIService->>CreditService: 确认消耗积分 CreditService->>DB: 正式扣除积分 CreditService->>DB: 记录消耗交易 AIService->>DB: 保存生成结果 AIService-->>Frontend: 推送完成通知 Frontend->>User: 显示生成结果 else 生成失败 AIService->>CreditService: 退还积分 CreditService->>DB: 解冻积分 AIService-->>Frontend: 推送失败通知 Frontend->>User: 显示错误信息 end end ``` ### 过期积分清理流程 ```mermaid sequenceDiagram participant Cron as 定时任务 participant CreditService as 积分服务 participant DB as 数据库 participant Notification as 通知服务 Cron->>CreditService: 每日凌晨执行 CreditService->>DB: 查询即将过期积分(30天内) DB-->>CreditService: 返回用户列表 loop 遍历用户 CreditService->>Notification: 发送过期提醒 Notification->>User: 邮件/站内信/短信 end CreditService->>DB: 查询已过期积分 DB-->>CreditService: 返回过期记录 loop 遍历过期记录 CreditService->>DB: 扣除过期积分 CreditService->>DB: 记录过期交易 CreditService->>Notification: 发送过期通知 end CreditService-->>Cron: 清理完成 ``` --- ## 运营策略建议 ### 定价策略 #### 1. 动态定价 **目标**:根据成本波动和市场竞争调整定价 **实施方案**: - 每季度评估 API 成本变化 - 监控竞品定价策略 - 根据用户反馈调整积分消耗标准 - 保持充值比例稳定(1元 = 10积分) #### 2. 差异化定价 **目标**:针对不同用户群体提供差异化服务 **实施方案**: - **个人用户**:标准定价 - **企业用户**:批量采购折扣(充值 ≥ ¥5,000,额外赠送 40%) - **教育用户**:学生认证后,充值额外赠送 20% - **开发者**:API 调用模式,按量计费 #### 3. 心理定价 **目标**:提高用户充值意愿 **实施方案**: - 套餐定价采用 ¥9.9、¥49.9、¥99.9(而非整数) - 突出"推荐套餐"标签,引导用户选择高价值套餐 - 显示"节省金额",强化优惠感知 ### 促销活动 #### 1. 限时充值活动 **时间**:每月 15 日(会员日)、双 11、618 等 **优惠**: - 充值额外赠送 10-20% - 限时套餐(如:¥88 = 1,500 积分) - 满减活动(充值 ≥ ¥200,立减 ¥20) #### 2. 新用户专享 **目标**:提高新用户转化率 **优惠**: - 注册赠送 100 积分 - 首次充值额外赠送 20% - 新手任务奖励(完成教程获得 50 积分) #### 3. 老用户回馈 **目标**:提高用户留存率 **优惠**: - 连续充值奖励(连续 3 个月充值,额外赠送 10%) - VIP 等级制度(累计充值达到阈值,享受永久折扣) - 生日福利(生日当月充值额外赠送 15%) #### 4. 邀请裂变 **目标**:获取新用户 **机制**: - 邀请人:被邀请人首次充值后,获得 10% 返利积分 - 被邀请人:注册额外获得 50 积分 - 阶梯奖励:邀请 10 人,额外奖励 500 积分 ### 用户分层运营 #### 1. 新用户(注册 ≤ 7 天) **策略**:降低使用门槛,快速体验核心功能 **动作**: - 赠送 100 积分(有效期 1 个月) - 推送新手教程 - 首次充值额外赠送 20% #### 2. 活跃用户(月消耗 ≥ 500 积分) **策略**:提高充值频次和金额 **动作**: - 推送充值优惠活动 - 提供专属客服支持 - 邀请参与内测新功能 #### 3. 沉睡用户(30 天未使用) **策略**:唤醒用户,重新激活 **动作**: - 赠送 50 积分(有效期 7 天) - 推送新功能介绍 - 发送限时优惠券 #### 4. 流失用户(90 天未使用) **策略**:挽回用户 **动作**: - 赠送 100 积分(有效期 30 天) - 问卷调查(了解流失原因) - 提供专属优惠(充值 5 折) ### 数据监控指标 #### 1. 充值相关 - **充值转化率**:充值用户数 / 注册用户数 - **ARPU**(Average Revenue Per User):总充值金额 / 活跃用户数 - **充值频次**:用户平均充值次数 - **套餐分布**:各套餐的选择占比 #### 2. 消耗相关 - **日均消耗积分**:每日消耗积分总量 - **服务使用分布**:各 AI 服务的使用占比 - **积分利用率**:已消耗积分 / 已充值积分 - **过期积分占比**:过期积分 / 总赠送积分 #### 3. 用户行为 - **首次充值时间**:注册到首次充值的平均天数 - **复购率**:二次充值用户数 / 首次充值用户数 - **用户生命周期价值(LTV)**:用户累计充值金额 - **流失率**:30 天未使用用户占比 --- ## 风险控制 ### 1. 刷单风险 **风险描述**:恶意用户通过虚假充值、退款等方式获取积分 **防控措施**: - 充值订单实名认证 - 异常充值行为监控(如:短时间内多次小额充值) - 退款冷静期(充值后 24 小时内不可使用,退款不扣手续费) - 积分冻结机制(可疑账号积分冻结 7 天) ### 2. 积分滥用 **风险描述**:用户通过漏洞或作弊手段获取大量积分 **防控措施**: - API 调用频率限制 - 异常消耗行为监控(如:短时间内大量生成相同内容) - 账号风控评分系统 - 人工审核机制 ### 3. 成本失控 **风险描述**:AI API 成本突然上涨,导致亏损 **防控措施**: - 与 AI 服务商签订长期合同,锁定价格 - 建立成本预警机制(月成本超过预算 20% 时告警) - 动态调整积分消耗标准 - 自建模型降低依赖 ### 4. 用户投诉 **风险描述**:积分扣除争议、生成失败不退款等 **防控措施**: - 明确服务条款和退款政策 - 生成失败自动退还积分 - 提供申诉渠道 - 建立客服响应机制(24 小时内回复) --- ## 技术实现要点 ### 1. 积分扣除原子性 **问题**:并发请求可能导致积分重复扣除或余额不足仍扣除 **解决方案**:使用数据库事务 + 乐观锁 ```python async def consume_credits(user_id: int, amount: int) -> bool: async with db.transaction(): # 使用 SELECT FOR UPDATE 锁定用户记录 user = await db.execute( "SELECT * FROM users WHERE user_id = $1 FOR UPDATE", user_id ) if user.ai_credits_balance < amount: raise InsufficientCreditsError("积分余额不足") # 扣除积分 await db.execute( "UPDATE users SET ai_credits_balance = ai_credits_balance - $1 WHERE user_id = $2", amount, user_id ) # 记录交易 await db.execute( "INSERT INTO credit_transactions (user_id, amount, transaction_type) VALUES ($1, $2, 'consume')", user_id, -amount ) return True ``` ### 2. 积分过期处理 **问题**:如何高效处理大量过期积分 **解决方案**:定时任务 + 批量处理 ```python @celery.task async def expire_credits(): # 查询今天过期的积分 expired_records = await db.execute( "SELECT user_id, SUM(amount) as total FROM credit_transactions " "WHERE expires_at::date = CURRENT_DATE AND credit_type IN ('gift', 'activity') " "GROUP BY user_id" ) for record in expired_records: async with db.transaction(): # 扣除过期积分 await db.execute( "UPDATE users SET ai_credits_balance = ai_credits_balance - $1 WHERE user_id = $2", record.total, record.user_id ) # 记录过期交易 await db.execute( "INSERT INTO credit_transactions (user_id, amount, transaction_type, description) " "VALUES ($1, $2, 'expire', '积分过期')", record.user_id, -record.total ) ``` ### 3. 积分消耗优先级 **问题**:用户有多种类型积分时,如何按优先级扣除 **解决方案**:分类查询 + 按序扣除 ```python async def consume_credits_with_priority(user_id: int, amount: int): # 查询用户所有可用积分(按过期时间排序) available_credits = await db.execute( "SELECT transaction_id, amount, credit_type, expires_at " "FROM credit_transactions " "WHERE user_id = $1 AND amount > 0 " "ORDER BY expires_at NULLS LAST, credit_type DESC", user_id ) remaining = amount consumed_records = [] for credit in available_credits: if remaining <= 0: break consume_amount = min(credit.amount, remaining) consumed_records.append({ 'transaction_id': credit.transaction_id, 'amount': consume_amount }) remaining -= consume_amount if remaining > 0: raise InsufficientCreditsError("积分余额不足") # 批量扣除 async with db.transaction(): for record in consumed_records: await db.execute( "UPDATE credit_transactions SET amount = amount - $1 WHERE transaction_id = $2", record['amount'], record['transaction_id'] ) ``` --- ## 附录 ### A. 竞品对比 | 平台 | 计费方式 | 充值比例 | 图片生成 | 视频生成 | 优势 | | ---------- | -------- | ------------- | -------- | ----------- | ---------- | | Jointo | 积分制 | 1元 = 10积分 | 2积分/张 | 100积分/5秒 | 灵活、透明 | | Midjourney | 订阅制 | $10/月 | 无限生成 | 不支持 | 图片质量高 | | Runway | 积分制 | $12 = 625积分 | 5积分/张 | 5积分/秒 | 视频专业 | | 剪映 | 会员制 | ¥30/月 | 有限次数 | 有限次数 | 集成度高 | ### B. 术语表 | 术语 | 英文 | 说明 | | -------- | ------------------------ | ------------------------------ | | 积分 | Credits | 平台虚拟货币,用于消费 AI 服务 | | 充值 | Recharge | 用户购买积分的行为 | | 消耗 | Consume | 使用 AI 服务扣除积分 | | 赠送积分 | Gift Credits | 平台赠送的积分,有有效期 | | 充值积分 | Paid Credits | 用户付费购买的积分,永久有效 | | ARPU | Average Revenue Per User | 平均每用户收入 | | LTV | Lifetime Value | 用户生命周期价值 | ### C. 更新日志 | 版本 | 日期 | 更新内容 | | ---- | ---------- | -------------------------------- | | v1.0 | 2025-01-15 | 初始版本,完整的积分计费系统方案 | --- **文档版本**:v1.0 **创建日期**:2025-01-15 **最后更新**:2025-01-15 **维护人员**:产品团队 & 技术团队