AI 智能体赋能电商:LikeShop 单商户高级版商品信息自动生成与批量上架二开实践
一、引言
随着大模型能力的成熟,AI 智能体开始从实验性应用走向业务落地。在电商商品运营场景中,商品上新、文案撰写、属性补全、SEO 优化是高频重复工作,非常适合通过 AI 智能体实现自动化处理。
LikeShop 单商户高级版本身具备完整的商品、SKU、库存、分类、上下架体系,但在商品内容生产环节仍依赖人工输入。对于运营人员来说,一款商品从关键词整理到最终上架,通常需要经历标题生成、卖点提炼、详情文案撰写、规格属性补全、SEO 信息设置等多个环节。商品数量较大时,人工处理不仅效率低,还容易出现内容质量不稳定、参数遗漏、关键词覆盖不足等问题。
本文提出一种基于 AI 智能体的商品信息自动生成与批量上架方案,在不侵入 LikeShop 核心业务逻辑的前提下,通过新增 AI 服务层、任务调度层和审核入库层,实现商品内容的自动生成、批量处理与人工确认后上架。
二、业务痛点与问题分析
LikeShop 单商户版原有商品管理流程主要存在以下问题:
2.1 商品上新效率低
商品内容生产依赖人工逐款编辑。一款商品通常需要花费数十分钟完成标题、卖点、详情、属性和 SEO 信息整理。批量上架数百款商品时,运营周期会被显著拉长。
2.2 内容质量不稳定
文案质量受运营人员经验影响较大。不同人员输出的标题吸引力、详情转化力、卖点表达能力存在明显差异,难以形成统一的商品内容标准。
2.3 属性补全难度高
不同品类商品需要不同的规格参数。人工填写时容易遗漏关键属性,导致商品筛选条件不完整,影响前台搜索和筛选体验。
2.4 SEO 优化能力不足
多数运营人员缺乏系统的 SEO 方法,商品关键词、页面描述、标题词频设置不够规范,影响站内搜索曝光和外部收录效果。
AI 智能体的价值,在于将这些重复性内容生产工作标准化、自动化,让运营人员从机械录入工作中解放出来,专注于商品审核、选品和运营策略。
三、方案设计目标与原则
3.1 设计目标
本方案希望实现以下目标:
- 自动生成商品内容:包括标题、卖点、详情、标签、规格属性和 SEO 信息;
- 支持批量处理:通过批量导入实现批量生成,提升大商品量场景下的上新效率;
- 人工审核可控:AI 结果必须经过人工确认后才能正式入库;
- 低侵入二开:不破坏 LikeShop 原有商品体系,便于后续版本升级;
- 可配置可扩展:支持不同品类、不同模型、不同 Prompt 策略的灵活配置。
3.2 设计原则
为保证方案的可落地性,设计时遵循以下原则:
- 最小侵入原则:新增 AI 任务表、AI 服务层和审核流程,不直接改造 LikeShop 核心商品表;
- 能力复用原则:商品入库、SKU 管理、库存、上下架等能力全部复用 LikeShop 原生服务;
- 人工可控原则:AI 生成结果不得直接上架,必须经过审核确认;
- 异步处理原则:批量生成任务异步执行,避免影响前端交互体验;
- 可观测原则:任务状态、Token 消耗、失败原因、生成结果全部可追踪。
四、整体架构设计
4.1 分层架构
本方案采用四层架构设计:
应用层:商家后台、运营后台、批量导入页面
↓
AI 业务层:任务管理、Prompt 执行、内容解析、审核入库
↓
大模型适配层:模型客户端、限流控制、Token 统计、配置管理
↓
原生业务层:LikeShop 商品服务、分类服务、SKU 服务、库存服务
4.2 核心流程设计
商品 AI 生成与批量上架的完整流程如下:
- 运营人员导入商品基础信息;
- 系统创建批量任务;
- 异步调度器逐行执行 AI 生成;
- 大模型返回结构化内容;
- 系统解析并暂存生成结果;
- 运营人员审核并修改内容;
- 审核通过后调用 LikeShop 原生服务完成商品入库;
- 商品进入原有上下架流程。
4.3 技术选型建议
| 模块 | 选型建议 | 说明 |
|---|---|---|
| 大模型 | 通义千问、文心一言、豆包、OpenAI | 统一接口封装,便于切换 |
| 异步任务 | 消息队列 / 线程池 | 批量生成异步执行 |
| 数据存储 | 新增 AI 任务表、导入记录表、Prompt 配置表 | 不侵入核心商品表 |
| 审核机制 | 人工审核 + 自动校验 | 降低错误内容入库风险 |
五、功能模块设计
5.1 商品信息智能生成模块
该模块负责生成商品核心内容,包括:
- 商品标题;
- 商品副标题或卖点;
- 商品详情文案;
- 商品标签;
- SEO 关键词;
- SEO 页面描述。
生成过程中,系统根据商品分类加载对应 Prompt 模板,将关键词、价格、分类、目标人群等变量传入大模型,并要求模型返回结构化 JSON 结果。
5.2 规格属性自动补全模块
不同品类商品需要不同属性。系统根据商品分类匹配属性模板,并调用大模型生成属性值。
例如:
- 服装类:材质、尺码、风格、季节;
- 数码类:品牌、型号、配置、接口;
- 食品类:配料、保质期、储存方式、规格。
生成后的属性值会映射到 LikeShop 商品属性体系中,减少人工逐条录入成本。
5.3 SEO 优化模块
SEO 优化模块围绕站内搜索和页面收录展开,主要包括:
- 标题关键词优化;
- 页面关键词生成;
- 页面描述生成;
- 标签补全;
- 文案结构规范化。
5.4 批量导入与生成模块
批量导入模块支持运营人员通过 Excel 导入商品基础信息,包括:
- 商品分类;
- 商品关键词;
- 价格;
- 库存;
- 货号;
- 备注信息。
系统导入后生成批量任务,并通过异步方式逐款调用 AI 生成。
5.5 审核入库模块
AI 生成结果进入待审核列表,运营人员可查看、编辑和确认。审核通过后,系统调用 LikeShop 原生商品服务完成创建。
六、数据库设计
为降低侵入性,本方案采用新增表方式扩展能力。
6.1 AI 商品生成任务表
CREATE TABLE ls_goods_ai_generate_task (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
task_no VARCHAR(32) NOT NULL,
task_type TINYINT NOT NULL,
goods_id BIGINT DEFAULT NULL,
category_id BIGINT NOT NULL,
keywords VARCHAR(255) NOT NULL,
extra_params TEXT,
model_type VARCHAR(32) NOT NULL,
prompt_version VARCHAR(32),
input_tokens INT DEFAULT 0,
output_tokens INT DEFAULT 0,
status TINYINT NOT NULL DEFAULT 0,
audit_status TINYINT DEFAULT 0,
fail_reason VARCHAR(255),
result_content TEXT,
create_time DATETIME NOT NULL,
finish_time DATETIME,
create_by BIGINT,
INDEX idx_task_no(task_no),
INDEX idx_status(status),
INDEX idx_goods_id(goods_id)
);
6.2 批量导入记录表
CREATE TABLE ls_goods_batch_import (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
batch_no VARCHAR(32) NOT NULL,
total_count INT NOT NULL,
success_count INT DEFAULT 0,
fail_count INT DEFAULT 0,
import_file VARCHAR(255),
status TINYINT NOT NULL DEFAULT 0,
create_time DATETIME NOT NULL,
create_by BIGINT,
INDEX idx_batch_no(batch_no)
);
6.3 Prompt 配置表
CREATE TABLE ls_ai_prompt_config (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
category_id BIGINT,
prompt_type VARCHAR(32) NOT NULL,
prompt_template TEXT NOT NULL,
model_config VARCHAR(255),
status TINYINT DEFAULT 1,
create_time DATETIME NOT NULL,
INDEX idx_category_id(category_id)
);
七、核心实现逻辑
7.1 大模型统一接口封装
为屏蔽不同模型厂商差异,系统抽象统一模型接口。
public interface LlmService {
LlmResponse generate(String prompt, LlmConfig config);
}
@Service
public class QwenLlmService implements LlmService {
@Value("${ai.qwen.api-key}")
private String apiKey;
@Override
public LlmResponse generate(String prompt, LlmConfig config) {
QwenClient client = new QwenClient(apiKey);
QwenResult result = client.call(prompt, config.getModelName(), config.getTemperature());
LlmResponse response = new LlmResponse();
response.setContent(result.getOutput().getText());
response.setInputTokens(result.getUsage().getInputTokens());
response.setOutputTokens(result.getUsage().getOutputTokens());
return response;
}
}
7.2 商品信息生成服务
@Service
public class GoodsAiGenerateService {
@Autowired
private LlmService llmService;
@Autowired
private AiPromptConfigMapper promptConfigMapper;
@Autowired
private GoodsAiTaskMapper taskMapper;
@Autowired
private GoodsService goodsService;
@Transactional(rollbackFor = Exception.class)
public GoodsAiTaskVO generateGoodsInfo(GoodsAiGenerateDTO dto) {
GoodsAiGenerateTask task = new GoodsAiGenerateTask();
task.setTaskNo(SnGenerator.generate("AI"));
task.setCategoryId(dto.getCategoryId());
task.setKeywords(dto.getKeywords());
task.setStatus(1);
taskMapper.insert(task);
try {
AiPromptConfig promptConfig = promptConfigMapper.getByCategory(dto.getCategoryId(), "full");
String prompt = buildPrompt(promptConfig.getPromptTemplate(), dto);
LlmConfig config = new LlmConfig();
config.setModelName("qwen-plus");
config.setTemperature(0.7);
LlmResponse response = llmService.generate(prompt, config);
task.setResultContent(response.getContent());
task.setInputTokens(response.getInputTokens());
task.setOutputTokens(response.getOutputTokens());
task.setStatus(2);
task.setFinishTime(new Date());
taskMapper.updateById(task);
return BeanCopyUtils.copy(task, GoodsAiTaskVO.class);
} catch (Exception e) {
task.setStatus(3);
task.setFailReason(e.getMessage());
taskMapper.updateById(task);
throw new BizException("AI生成失败:" + e.getMessage());
}
}
}
7.3 审核入库逻辑
@Transactional(rollbackFor = Exception.class)
public Long auditAndPublish(Long taskId) {
GoodsAiGenerateTask task = taskMapper.selectById(taskId);
if (task.getAuditStatus() != 0) {
throw new BizException("请勿重复审核");
}
GoodsAiResult result = JSON.parseObject(task.getResultContent(), GoodsAiResult.class);
GoodsCreateDTO goodsDTO = new GoodsCreateDTO();
goodsDTO.setName(result.getTitle());
goodsDTO.setSubtitle(result.getSubtitle());
goodsDTO.setCategoryId(task.getCategoryId());
goodsDTO.setDescription(result.getDetail());
goodsDTO.setKeywords(result.getSeoKeywords());
goodsDTO.setPrice(result.getPrice());
goodsDTO.setStock(result.getStock());
Long goodsId = goodsService.createGoods(goodsDTO);
task.setAuditStatus(1);
task.setGoodsId(goodsId);
taskMapper.updateById(task);
return goodsId;
}
7.4 批量生成异步处理
@Component
public class GoodsBatchGenerateConsumer {
@Autowired
private GoodsAiGenerateService generateService;
@Autowired
private GoodsBatchImportMapper batchMapper;
@RocketMQMessageListener(topic = "goods_ai_batch_topic", consumerGroup = "goods_ai_group")
public class BatchGenerateListener implements RocketMQListener<BatchGenerateMessage> {
@Override
public void onMessage(BatchGenerateMessage message) {
String batchNo = message.getBatchNo();
List<GoodsImportItem> items = message.getItems();
int success = 0;
int fail = 0;
for (GoodsImportItem item : items) {
try {
GoodsAiGenerateDTO dto = new GoodsAiGenerateDTO();
dto.setCategoryId(item.getCategoryId());
dto.setKeywords(item.getKeywords());
dto.setPrice(item.getPrice());
generateService.generateGoodsInfo(dto);
success++;
} catch (Exception e) {
fail++;
log.error("批量生成失败,item={}", item, e);
}
}
batchMapper.updateResult(batchNo, success, fail, 2);
}
}
}
八、Prompt 设计策略
Prompt 是影响生成质量的关键因素。本方案建议按品类建立 Prompt 模板库。
8.1 Prompt 结构建议
一个完整的商品生成 Prompt 应包含以下部分:
- 角色设定;
- 商品品类说明;
- 用户输入信息;
- 输出字段要求;
- 格式约束;
- 风格约束;
- 合规约束。
8.2 输出格式建议
为便于程序解析,应要求大模型返回标准 JSON。
示例输出结构:
{
"title": "商品标题",
"subtitle": "商品副标题",
"sellingPoints": ["卖点1", "卖点2"],
"detail": "商品详情内容",
"tags": ["标签1", "标签2"],
"seoKeywords": "关键词",
"seoDescription": "页面描述",
"specs": {
"材质": "纯棉",
"尺码": "M/L/XL"
}
}
九、审核与质量控制
AI 生成内容不能直接等同于可上架商品,必须建立审核机制。
9.1 审核内容
审核人员重点确认以下内容:
- 标题是否准确;
- 卖点是否完整;
- 详情是否通顺;
- 属性是否正确;
- SEO 信息是否合理;
- 是否存在违规或敏感内容。
9.2 质量控制建议
- 所有结果默认进入待审核状态;
- 敏感品类增加专项审核;
- 建立违规词检测机制;
- 对失败任务自动记录原因;
- 对低质量结果进行 Prompt 迭代。
十、成本控制与限流
AI 批量生成会产生模型调用成本,需要进行控制。
10.1 成本控制方式
- 记录每次调用的 Token 消耗;
- 设置批量任务并发上限;
- 设置单日调用阈值;
- 不同场景使用不同模型;
- 高频字段使用缓存结果。
10.2 限流建议
| 场景 | 建议策略 |
|---|---|
| 单款生成 | 同步调用,实时返回 |
| 批量生成 | 异步执行,控制并发 |
| 高频字段 | 结果缓存 |
| 大模型异常 | 自动重试并告警 |
十一、方案收益评估
本方案落地后,可带来以下收益:
- 商品上新效率提升;
- 文案内容标准化;
- 属性补全更完整;
- SEO 信息更规范;
- 批量处理能力增强;
- 人工审核可控;
- 对 LikeShop 核心系统侵入低。
对于商品数量较多、上新频率较高的商家,这套方案能够显著降低运营人员的机械录入成本。
十二、风险与避坑建议
12.1 大模型输出不稳定
大模型可能出现格式错误、内容幻觉、字段缺失等问题。
建议:
- 要求输出标准 JSON;
- 增加结果校验;
- 对解析失败任务标记为失败;
- 持续优化 Prompt。
12.2 直接生成后自动上架
AI 结果未经审核直接入库,可能带来错误内容和合规风险。
建议:
- 所有结果必须人工审核;
- 敏感品类加强审核;
- 建立内容校验规则。
12.3 侵入 LikeShop 核心逻辑
如果 AI 能力与商品核心逻辑深度耦合,后续升级会很困难。
建议:
- AI 层只负责生成内容;
- 商品入库复用原生服务;
- 新增表和新服务层独立维护。
12.4 批量任务阻塞主线程
批量生成如果同步执行,会导致前端超时。
建议:
- 批量任务异步处理;
- 任务状态可查询;
- 失败任务可追踪。
十三、结语
AI 智能体在电商商品运营中的价值,不在于替代运营人员,而在于将高频、重复、机械的内容生产工作自动化。LikeShop 单商户高级版具备成熟的商品和交易底座,在此基础上增加 AI 商品信息生成与批量上架能力,不需要重构核心业务,只需要围绕 AI 任务、内容解析和审核入库建立独立扩展层,就能获得明显的效率提升。
对于商品量大、上新频率高的商家来说,这类二开方案的投入产出比很高。它既保留了 LikeShop 原有系统的稳定性,又让 AI 能力真正落到具体业务场景中。