Files
huangjingfen/pro_v3.5.1/app/services/system/AiServices.php

509 lines
18 KiB
PHP
Raw Normal View History

2026-03-07 22:29:07 +08:00
<?php
namespace app\services\system;
use app\services\BaseServices;
use app\services\product\product\StoreProductServices;
use app\services\product\sku\StoreProductAttrValueServices;
use app\services\serve\ServeServices;
class AiServices extends BaseServices
{
/**
* @var ServeServices
*/
protected ServeServices $services;
/**
* 构造方法
* @param ServeServices $serveServices 服务实例
*/
public function __construct(ServeServices $serveServices)
{
$this->services = $serveServices;
}
/**
* AI类型分发处理
* @param array $data 请求数据
* @return array|string
*/
public function AiType($data)
{
switch ($data['type']) {
case 'product_name':
$result = $this->productName($data);
break;
case 'product_info':
$result = $this->productInfo($data);
break;
case 'share_content':
$result = $this->shareContent($data);
break;
case 'product_attr':
$result = $this->productAttr($data);
break;
case 'product_specs':
$result = $this->productSpecs($data);
break;
case 'product_reply':
$result = $this->productReply($data);
break;
case 'community':
$result = $this->community($data);
break;
case 'community_title':
$result = $this->communityTitle($data);
break;
case 'community_content':
$result = $this->communityContent($data);
break;
case 'article_title':
$result = $this->articleTitle($data);
break;
case 'article_content':
$result = $this->articleContent($data);
break;
default:
return '暂不支持该类型';
}
return $result;
}
/**
* AI生成商品名称
* @param array $data 请求数据
* @return array
*/
public function productName($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条差异化标题每条30-50符合电商平台SEO规则
必须包含核心关键词前10字+核心卖点(材质/功能)+附加价值(促销/场景/人群)
禁止:重复词、违禁词、模糊描述(如“优质”“多功能”)
2. 优化维度:
标题1流量型关键词堆砌+高频搜索词,例:
“2024新款男士运动鞋透气防滑跑步鞋轻便百搭男鞋网面休闲鞋耐磨减震”
标题2转化型强促销+紧迫感,例:
“【限时5折】男士运动鞋春秋季飞织透气跑步鞋学生潮流男鞋次日达退货运费险”
标题3场景型痛点解决方案
“健身房必备!男士爆款运动鞋防滑减震跑步鞋宽脚掌透气训练鞋久穿不累”
3. 输出格式仅返回JSON键名固定为t1/t2/t3节省字符
{
"t1": "标题1关键词+功能)",
"t2": "标题2促销+服务)",
"t3": "标题3场景+痛点)"
}
4. 特殊要求:
若标题含促销需标注具体力度如“7折”而非“促销中”
人群定向需明确(如“中老年”“宝妈”而非“通用”)
材质/规格必须具体如“新疆棉”“20000mAh”
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return array_values(json_decode($result, true));
}
/**
* AI生成商品简介
* @param array $data 请求数据
* @return array
*/
public function productInfo($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条差异化商品简介每条不少于80字符合电商平台SEO规则
必须包含核心关键词前10字+核心卖点(材质/功能)+附加价值(促销/场景/人群)
禁止:重复词、违禁词、模糊描述(如“优质”“多功能”)
2. 优化维度:
标题1流量型关键词堆砌+高频搜索词,例:
“2024新款男士运动鞋透气防滑跑步鞋轻便百搭男鞋网面休闲鞋耐磨减震”
标题2转化型强促销+紧迫感,例:
“【限时5折】男士运动鞋春秋季飞织透气跑步鞋学生潮流男鞋次日达退货运费险”
标题3场景型痛点解决方案
“健身房必备!男士爆款运动鞋防滑减震跑步鞋宽脚掌透气训练鞋久穿不累”
3. 输出格式仅返回JSON键名固定为t1/t2/t3节省字符
{
"t1": "标题1关键词+功能)",
"t2": "标题2促销+服务)",
"t3": "标题3场景+痛点)"
}
4. 特殊要求:
若标题含促销需标注具体力度如“7折”而非“促销中”
人群定向需明确(如“中老年”“宝妈”而非“通用”)
材质/规格必须具体如“新疆棉”“20000mAh”
';
$userContent = $data['store_name'] . $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return array_values(json_decode($result, true));
}
/**
* AI生成推广文案
* @param array $data 请求数据
* @return array
*/
public function shareContent($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条差异化推广文案每条不少于100字符合各平台投放规范
必须包含核心卖点前15字+用户痛点+行动号召
禁止:虚假宣传、绝对化用语(如"最佳""第一")、模糊表述
2. 优化维度:
文案1痛点刺激型直击用户痛点+解决方案,例:
"跑步膝盖疼新一代缓震科技运动鞋采用XX减震材料降低关节冲击力30%,立即体验→"
文案2场景共鸣型构建使用场景+情感共鸣,例:
"加班到深夜的你值得更好人体工学办公椅8小时久坐不腰酸今日下单享免费安装→"
文案3数据实证型量化效果+权威背书,例:
"92%用户回购的爆款面膜中科院认证XX成分实测28天淡化细纹45%,限时买二送一→"
3. 输出格式仅返回JSON键名固定为c1/c2/c3
{
"c1": "文案1痛点型",
"c2": "文案2场景型",
"c3": "文案3数据型"
}
4. 特殊要求:
痛点描述需具体(如"久坐腰酸"而非"不舒服"
数据必须真实可查(如"实验室实测""用户调研数据"
行动号召明确(如"立即咨询""限时特惠"需标注截止时间)
';
$userContent = $data['store_name'] . $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return array_values(json_decode($result, true));
}
/**
* AI生成商品规格属性
* @param array $data 请求数据
* @return array
*/
public function productAttr($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
自动识别商品类目并生成完整规格参数
参数值必须为具体可选项(非范围值)
包含:基础参数+技术参数+功能参数+扩展参数
最多三个规格类型每个规格最多10个值
2. 输出格式仅返回JSON键名固定为value/detail
{
"rule_name": "商品类目"
"spec": [
{
"value": "规格名称1",
"detail": [
"规格值1-1",
"规格值1-2"
]
},
{
"value": "规格名称2",
"detail": [
"规格值2-1",
"规格值2-2"
]
},
...
]
}
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return json_decode($result, true);
}
/**
* AI生成商品参数模板
* @param array $data 请求数据
* @return array
*/
public function productSpecs($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
自动识别商品类目并生成完整规格参数
参数值必须为具体可选项(非范围值)
包含:基础参数+技术参数+功能参数+扩展参数
生成最少5个specs参数name和value都是字符串,sort为0
2. 输出格式仅返回JSON
{
"name": "参数模板名称",
"specs": [
{
"name": "参数名称1",
"value": "参数值1",
"sort": 0,
},
{
"name": "参数名称2",
"value": "参数值2",
"sort": 0,
}
...
]
}
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return json_decode($result, true);
}
/**
* AI生成商品评价
* @param array $data 请求数据
* @return array
*/
public function productReply($data)
{
$productInfo = app()->make(StoreProductServices::class)->get($data['product_id']);
$sku = app()->make(StoreProductAttrValueServices::class)->value(['product_id' => $data['product_id'], 'unique' => $data['unique']], 'suk');
$date = date('Y-m-d H:i:s');
$systemContent = '
请严格按此规范执行:
1. 输出格式仅返回JSON一条数据也按照多条数据的格式返回
{
[
"product_id": ' . $data['product_id'] . ',
"unique": ' . $data['unique'] . ',
"store_name": ' . $productInfo['store_name'] . ',
"product_image": ' . $productInfo['image'] . ',
"delivery_score": 5,
"service_score": 5,
"product_score": 5,
"reply_score": "3",
"add_time": ' . $date . ',
"nickname": "随机生成的用户名",
"avatar": "在https://pro.crmeb.net/uploads/thumb_water/0e41012b7d7df9404ca456df1c7625c6.png,https://pro.crmeb.net/uploads/thumb_water/b0c0dc1d88c00870e16a2e21ca53b71a.png,https://pro.crmeb.net/uploads/thumb_water/037bb2585a07753bf9115d7f16bf5fe3.png,https://pro.crmeb.net/uploads/thumb_water/34dad9517ed6fcc7fdd4c035abad098c.png中随机选择一个",
"comment": "评价内容"
]
...
}
2. 核心指令:
根据提示词生成10条差异化好评每条不少于80字
必须包含:使用体验+具体优点+场景描述
禁止:重复内容、虚假评价、模糊表述
评价内容生成到comment字段用户随机昵称生成到nickname字段其余固定
生成3条评价
3. 评价维度(根据提示词自动分配):
质量评价占比40%):材质/做工/耐用性
功能评价占比30%):实际使用效果
服务评价占比20%):物流/包装/售后
场景评价占比10%):特定使用场景体验
4. 特殊要求:
优先体现提示词相关内容
使用真实体验式口吻(如"收到后使用了半个月..."
包含具体细节(如"缝线很密实""按键反应灵敏"
每条评价需有明确侧重点
';
$userContent = '商品名称:' . $data['store_name'] . ',商品规格:' . $sku . ',提示词:' . $data['message'] . ', 评价维度:质量、功能、服务、场景';
$result = $this->services->ai()->chat($systemContent, $userContent);
var_dump($result);
return json_decode($result, true);
}
/**
* AI生成社区内容
* @param array $data 请求数据
* @return array
*/
public function community($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条内容
title标题要准确概括核心内容不超过20个汉字避免夸张表述
content内容要包含核心内容内容的类型自适应描述/心得/观点等并且符合各平台规范不少于200字避免重复内容
topic_name话题名称要和内容相关话题名称不超过10个汉字
禁止使用网络流行语和过度口语化表达
保持语言自然流畅,符合中文表达习惯
2. 内容要求:
标题规范:
准确概括核心内容
不超过20个汉字
避免夸张表述
正文规范:
首段自然引入主题50-80字)
主体:根据内容类型自由展开
结尾恰当收束30-50字)
3. 输出格式仅返回JSON
{
[
"title": "生成标题",
"content": "生成正文内容",
"topic_name": "话题名称",
]
...
}
4. 特殊要求:
描述类:需包含五感细节(视觉/听觉/触觉等)
心得类:需包含真实使用体验
观点类:需包含合理逻辑推导
禁止使用网络流行语和过度口语化表达
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return json_decode($result, true);
}
/**
* AI生成社区标题
* @param array $data 请求数据
* @return array
*/
public function communityTitle($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条差异化标题每条不超过20字需准确概括文章内容
必须包含核心主题前10字+内容亮点+情感基调
禁止:标题党、无关词、模糊表述(如"精彩""感人"
2. 优化维度:
标题1流量型关键词聚焦+热点结合,例:"三月樱花拍摄指南手机出片的5个构图技巧"
标题2共鸣型情感触动+场景代入,例:"老城咖啡馆记事:藏在拿铁里的人生百态"
标题3悬念型问题引发+价值提示,例:"为何这间民宿让90%客人续住?丽江庭院设计秘密"
3. 输出格式仅返回JSON
{
"t1": "标题1关键词型",
"t2": "标题2情感型",
"t3": "标题3悬念型"
}
4. 特殊要求:
情感基调需明确(如"怀旧""治愈"而非"好看"
内容亮点需具体(如"手机摄影技巧""庭院设计细节"
文化类内容需标注地域/时期(如"唐代服饰""江南民居"
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return array_values(json_decode($result, true));
}
/**
* AI优化社区内容
* @param array $data 请求数据
* @return array
*/
public function communityContent($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条差异化优化版本每条保持原篇幅±10%
每条需体现不同优化方向(结构/语言/情感)
禁止:改变核心事实、虚构内容
2. 优化维度:
版本1结构优化型
重组段落逻辑
增强过渡衔接
突出核心论点
版本2语言润色型
提升表达精准度
丰富修辞手法
统一语言风格
版本3情感强化型
深化细节描写
增强场景代入感
把控情感节奏
3. 输出格式仅返回JSON
{
"v1": "结构优化版本",
"v2": "语言润色版本",
"v3": "情感强化版本"
}
4. 特殊要求:
技术类:专业术语需验证
文学类:保留原修辞特色
商业类:符合广告法规定
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return array_values(json_decode($result, true));
}
/**
* AI生成文章标题
* @param array $data 请求数据
* @return array
*/
public function articleTitle($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条差异化标题每条不超过20字需准确概括文章内容
必须包含核心主题前10字+内容亮点+情感基调
禁止:标题党、无关词、模糊表述(如"精彩""感人"
2. 优化维度:
标题1流量型关键词聚焦+热点结合,例:"三月樱花拍摄指南手机出片的5个构图技巧"
标题2共鸣型情感触动+场景代入,例:"老城咖啡馆记事:藏在拿铁里的人生百态"
标题3悬念型问题引发+价值提示,例:"为何这间民宿让90%客人续住?丽江庭院设计秘密"
3. 输出格式仅返回JSON
{
"t1": "标题1关键词型",
"t2": "标题2情感型",
"t3": "标题3悬念型"
}
4. 特殊要求:
情感基调需明确(如"怀旧""治愈"而非"好看"
内容亮点需具体(如"手机摄影技巧""庭院设计细节"
文化类内容需标注地域/时期(如"唐代服饰""江南民居"
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return array_values(json_decode($result, true));
}
/**
* AI优化文章内容
* @param array $data 请求数据
* @return array
*/
public function articleContent($data)
{
$systemContent = '
请严格按此规范执行:
1. 核心指令:
生成3条差异化优化版本每条保持原篇幅±10%
每条需体现不同优化方向(结构/语言/情感)
禁止:改变核心事实、虚构内容
2. 优化维度:
版本1结构优化型
重组段落逻辑
增强过渡衔接
突出核心论点
版本2语言润色型
提升表达精准度
丰富修辞手法
统一语言风格
版本3情感强化型
深化细节描写
增强场景代入感
把控情感节奏
3. 输出格式仅返回JSON
{
"v1": "结构优化版本",
"v2": "语言润色版本",
"v3": "情感强化版本"
}
4. 特殊要求:
技术类:专业术语需验证
文学类:保留原修辞特色
商业类:符合广告法规定
';
$userContent = $data['message'];
$result = $this->services->ai()->chat($systemContent, $userContent);
return array_values(json_decode($result, true));
}
}