Files
makemd/server/src/services/AdMimicryService.ts
wurenzhi 136c2fa579 feat: 初始化项目结构并添加核心功能模块
- 新增文档模板和导航结构
- 实现服务器基础API路由和控制器
- 添加扩展插件配置和前端框架
- 引入多租户和权限管理模块
- 集成日志和数据库配置
- 添加核心业务模型和类型定义
2026-03-17 22:07:19 +08:00

61 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import db from '../config/database';
import { AIService } from './AIService';
import { AuditService } from './AuditService';
/**
* [BIZ_MKT_10] 竞品广告素材深度模仿与差异化生成
* 负责分析竞品爆款广告TikTok/FB/IG并利用 AI 模仿其风格同时加入差异化卖点
*/
export class AdMimicryService {
/**
* 基于竞品素材生成差异化新素材
*/
static async generateMimicry(
tenantId: string,
competitorAdId: string,
originalContent: string,
traceId: string
): Promise<string> {
// 1. 风格提取 (模拟调用 AIService 分析竞品素材风格)
const style = await AIService.extractAdStyle(originalContent);
// 2. 差异化逻辑 (注入租户产品的独有优势)
const differentiation = "Fast 2-day global shipping & Eco-friendly materials";
// 3. 生成新素材内容 (模拟基于 AI 的风格迁移生成)
const mimickedContent = await AIService.generateAdFromStyle(style, differentiation);
// 4. 持久化记录
await db('cf_ad_mimicry').insert({
tenant_id: tenantId,
competitor_ad_id: competitorAdId,
original_content: originalContent,
mimicked_content: mimickedContent,
differentiation_logic: differentiation,
similarity_score: 0.85 // 模仿相似度指标
});
// 5. 审计记录
await AuditService.log({
tenant_id: tenantId,
action: 'AD_MIMICRY_GENERATED',
target_type: 'AD_CREATIVE',
target_id: competitorAdId,
trace_id: traceId,
new_data: JSON.stringify({ mimickedContent }),
metadata: JSON.stringify({ originalAdId: competitorAdId, style })
});
return mimickedContent;
}
/**
* 获取租户所有广告模仿任务
*/
static async getMimicryHistory(tenantId: string) {
return await db('cf_ad_mimicry')
.where({ tenant_id: tenantId })
.orderBy('created_at', 'desc');
}
}