1
This commit is contained in:
@@ -83,6 +83,58 @@ public class SocialMediaServiceImpl implements ISocialMediaService
|
|||||||
/** 标题/型号清洗:去掉营销敏感词 */
|
/** 标题/型号清洗:去掉营销敏感词 */
|
||||||
private static final String DEFAULT_XIANYU_TITLE_CLEAN_REGEX = "以旧|政府|换新|领取|国家|补贴|15%|20%|国补|立减|【|】";
|
private static final String DEFAULT_XIANYU_TITLE_CLEAN_REGEX = "以旧|政府|换新|领取|国家|补贴|15%|20%|国补|立减|【|】";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redis 无记录时与 Jarvis_java SocialMediaService 使用的默认模板一致,供接口回显到前端参考。
|
||||||
|
*/
|
||||||
|
private static final Map<String, String> DEFAULT_PROMPT_TEMPLATES = new HashMap<String, String>() {{
|
||||||
|
put("keywords",
|
||||||
|
"请从以下商品标题中提取3-5个最核心的关键词,这些关键词要能突出商品的核心卖点和特色。\n"
|
||||||
|
+ "要求:\n"
|
||||||
|
+ "1. 每个关键词2-4个字\n"
|
||||||
|
+ "2. 关键词要能吸引小红书/抖音用户\n"
|
||||||
|
+ "3. 用逗号分隔,只返回关键词,不要其他内容\n"
|
||||||
|
+ "商品标题:%s");
|
||||||
|
put("content:xhs",
|
||||||
|
"请为小红书平台生成一篇商品推广文案,要求:\n"
|
||||||
|
+ "1. 风格:真实、种草、有温度\n"
|
||||||
|
+ "2. 开头:用emoji或感叹句吸引注意\n"
|
||||||
|
+ "3. 内容:突出商品亮点、使用场景、性价比\n"
|
||||||
|
+ "4. 结尾:引导行动(如:快冲、闭眼入等)\n"
|
||||||
|
+ "5. 长度:150-300字\n"
|
||||||
|
+ "6. 适当使用emoji和换行\n"
|
||||||
|
+ "\n商品信息:\n"
|
||||||
|
+ "商品名称:%s\n"
|
||||||
|
+ "%s"
|
||||||
|
+ "%s"
|
||||||
|
+ "\n请直接生成文案内容,不要添加其他说明:");
|
||||||
|
put("content:douyin",
|
||||||
|
"请为抖音平台生成一篇商品推广文案,要求:\n"
|
||||||
|
+ "1. 风格:直接、有冲击力、吸引眼球\n"
|
||||||
|
+ "2. 开头:用疑问句或对比句抓住注意力\n"
|
||||||
|
+ "3. 内容:强调价格优势、限时优惠、稀缺性\n"
|
||||||
|
+ "4. 结尾:制造紧迫感,引导立即行动\n"
|
||||||
|
+ "5. 长度:100-200字\n"
|
||||||
|
+ "6. 使用短句,节奏感强\n"
|
||||||
|
+ "\n商品信息:\n"
|
||||||
|
+ "商品名称:%s\n"
|
||||||
|
+ "%s"
|
||||||
|
+ "%s"
|
||||||
|
+ "\n请直接生成文案内容,不要添加其他说明:");
|
||||||
|
put("content:both",
|
||||||
|
"请生成一篇适合小红书和抖音平台的商品推广文案,要求:\n"
|
||||||
|
+ "1. 风格:真实、有吸引力\n"
|
||||||
|
+ "2. 突出商品亮点和价格优势\n"
|
||||||
|
+ "3. 长度:150-250字\n"
|
||||||
|
+ "\n商品信息:\n"
|
||||||
|
+ "商品名称:%s\n"
|
||||||
|
+ "%s"
|
||||||
|
+ "%s"
|
||||||
|
+ "\n请直接生成文案内容,不要添加其他说明:");
|
||||||
|
put("xianyu:wenan_base", DEFAULT_XIANYU_WENAN_BASE);
|
||||||
|
put("xianyu:jiaonixiadan_extra", DEFAULT_XIANYU_JIAONIXIADAN_EXTRA);
|
||||||
|
put("xianyu:title_clean_regex", DEFAULT_XIANYU_TITLE_CLEAN_REGEX);
|
||||||
|
}};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提取商品标题关键词
|
* 提取商品标题关键词
|
||||||
*/
|
*/
|
||||||
@@ -296,9 +348,10 @@ public class SocialMediaServiceImpl implements ISocialMediaService
|
|||||||
templateInfo.put("key", key);
|
templateInfo.put("key", key);
|
||||||
templateInfo.put("description", TEMPLATE_DESCRIPTIONS.get(key));
|
templateInfo.put("description", TEMPLATE_DESCRIPTIONS.get(key));
|
||||||
|
|
||||||
String template = getTemplateFromRedis(key);
|
String stored = getTemplateFromRedis(key);
|
||||||
templateInfo.put("template", template);
|
boolean isDefault = StringUtils.isEmpty(stored);
|
||||||
templateInfo.put("isDefault", template == null);
|
templateInfo.put("template", isDefault ? DEFAULT_PROMPT_TEMPLATES.getOrDefault(key, "") : stored);
|
||||||
|
templateInfo.put("isDefault", isDefault);
|
||||||
|
|
||||||
templates.put(key, templateInfo);
|
templates.put(key, templateInfo);
|
||||||
}
|
}
|
||||||
@@ -320,12 +373,13 @@ public class SocialMediaServiceImpl implements ISocialMediaService
|
|||||||
return AjaxResult.error("无效的模板键名");
|
return AjaxResult.error("无效的模板键名");
|
||||||
}
|
}
|
||||||
|
|
||||||
String template = getTemplateFromRedis(key);
|
String stored = getTemplateFromRedis(key);
|
||||||
|
boolean isDefault = StringUtils.isEmpty(stored);
|
||||||
Map<String, Object> data = new HashMap<>();
|
Map<String, Object> data = new HashMap<>();
|
||||||
data.put("key", key);
|
data.put("key", key);
|
||||||
data.put("description", TEMPLATE_DESCRIPTIONS.get(key));
|
data.put("description", TEMPLATE_DESCRIPTIONS.get(key));
|
||||||
data.put("template", template);
|
data.put("template", isDefault ? DEFAULT_PROMPT_TEMPLATES.getOrDefault(key, "") : stored);
|
||||||
data.put("isDefault", template == null);
|
data.put("isDefault", isDefault);
|
||||||
|
|
||||||
return AjaxResult.success(data);
|
return AjaxResult.success(data);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user