用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/huifer/Shopilot --skill personalized-recommendation命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | personalized-recommendation |
| description | 个性化推荐引擎 - 基于购买历史、协同过滤和"经常一起购买"的产品推荐系统 |
| version | 1.0.0 |
| author | Shopilot |
| argument-hint | <recommendation-type> [customer-id] |
| disable-model-invocation | false |
| user-invocable | true |
智能推荐系统,提升交叉销售和向上销售
基于机器学习的个性化推荐引擎,通过购买历史分析、协同过滤和关联规则挖掘,为每个客户提供精准的产品推荐。
推荐逻辑:
├─ 个人购买历史
├─ 购买频率分析
├─ 品类偏好识别
├─ 购买周期预测
└─ 复购提醒
推荐类型:
├─ 复购推荐(用完再买)
├─ 升级推荐(更好版本)
├─ 补充推荐(配套产品)
└─ 新品推荐(同类别)
基于用户:
├─ 相似用户识别
├─ 用户行为聚类
├─ 群体偏好挖掘
└─ 跨用户推荐
基于物品:
├─ 物品相似度计算
├─ 共现模式分析
├─ 关联规则挖掘
└─ 物品推荐
经常一起购买:
├─ 购物篮分析
├─ Apriori 算法
├─ FP-Growth 算法
└─ 关联规则
推荐场景:
├─ 产品页推荐
├─ 购物车推荐
├─ 结账页推荐
└─ 邮件推荐
实时场景:
├─ 浏览行为推荐
├─ 搜索意图推荐
├─ 加购推荐
├─ 实时个性化
└─ 上下文感知
from sklearn.metrics.pairwise import cosine_similarity
import pandas as pd
# 用户-物品矩阵
user_item_matrix = df.pivot_table(
index='user_id',
columns='item_id',
values='rating',
fill_value=0
)
# 计算用户相似度
user_similarity = cosine_similarity(user_item_matrix)
user_sim_df = pd.DataFrame(
user_similarity,
index=user_item_matrix.index,
columns=user_item_matrix.index
)
# 为用户推荐
def recommend_for_user(user_id, n_recommendations=10):
# 找到相似用户
similar_users = user_sim_df[user_id].sort_values(ascending=False)[1:11]
# 获取相似用户购买但目标用户未购买的物品
recommendations = []
for similar_user, similarity in similar_users.items():
similar_user_items = user_item_matrix.loc[similar_user]
user_items = user_item_matrix.loc[user_id]
# 未购买但相似用户购买且评分高的物品
new_items = similar_user_items[(similar_user_items > 0) & (user_items == 0)]
for item, rating in new_items.items():
recommendations.append({
'item_id': item,
'score': rating * similarity
})
# 排序并返回前N个
recommendations = sorted(recommendations, key=lambda x: x['score'], reverse=True)
return recommendations[:n_recommendations]
# 物品-物品相似度
item_similarity = cosine_similarity(user_item_matrix.T)
item_sim_df = pd.DataFrame(
item_similarity,
index=user_item_matrix.columns,
columns=user_item_matrix.columns
)
# 基于用户历史推荐相似物品
def recommend_similar_items(user_id, n_recommendations=10):
# 获取用户购买的物品
user_items = user_item_matrix.loc[user_id]
purchased_items = user_items[user_items > 0].index
# 计算推荐分数
recommendations = {}
for item in purchased_items:
# 获取相似物品
similar_items = item_sim_df[item].sort_values(ascending=False)[1:11]
for similar_item, similarity in similar_items.items():
if similar_item not in purchased_items:
if similar_item not in recommendations:
recommendations[similar_item] = 0
recommendations[similar_item] += similarity * user_items[item]
# 排序并返回
recommendations = sorted(recommendations.items(), key=lambda x: x[1], reverse=True)
return recommendations[:n_recommendations]
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
# 准备交易数据
basket = (df.groupby(['order_id', 'product_id'])['quantity']
.sum().unstack().reset_index().fillna(0)
.set_index('order_id'))
# 转换为布尔值
basket_sets = basket.applymap(lambda x: 1 if x > 0 else 0)
# 挖掘频繁项集
frequent_itemsets = apriori(basket_sets, min_support=0.01, use_colnames=True)
# 生成关联规则
rules = association_rules(
frequent_itemsets,
metric="lift",
min_threshold=1
)
# 过滤高质量规则
quality_rules = rules[
(rules['lift'] >= 2) &
(rules['confidence'] >= 0.3)
].sort_values('lift', ascending=False)
# 获取推荐
def get_recommendations_from_basket(basket_items, n_recommendations=5):
recommendations = {}
for item in basket_items:
# 找到以该物品为前件的规则
item_rules = quality_rules[quality_rules['antecedents'] == {item}]
for _, rule in item_rules.iterrows():
for consequent in rule['consequents']:
if consequent basket_items:
consequent recommendations:
recommendations[consequent] =
recommendations[consequent] += rule[]
recommendations = (recommendations.items(), key= x: x[], reverse=)
recommendations[:n_recommendations]
from surprise import SVD, Dataset, Reader
from surprise.model_selection import train_test_split
# 准备数据
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(df[['user_id', 'item_id', 'rating']], reader)
# 训练模型
trainset, testset = train_test_split(data, test_size=0.2)
algo = SVD(n_factors=100, n_epochs=20, biased=True)
algo.fit(trainset)
# 预测
def predict_rating(user_id, item_id):
prediction = algo.predict(user_id, item_id)
return prediction.est
# 为用户推荐
def recommend_for_user_svd(user_id, n_recommendations=10):
# 获取所有物品
all_items = df['item_id'].unique()
# 获取用户已购买物品
user_items = df[df['user_id'] == user_id]['item_id'].unique()
# 预测未购买物品的评分
recommendations = []
for item in all_items:
if item not in user_items:
predicted_rating = predict_rating(user_id, item)
recommendations.append({
'item_id': item,
'score': predicted_rating
})
# 排序并返回
recommendations = sorted(recommendations, key=lambda x: x['score'], reverse=True)
return recommendations[:n_recommendations]
推荐位置:
- 产品详情页侧边栏
- "看过此商品的人还看过"
- "相关产品推荐"
- "经常一起购买"
推荐策略:
基于物品协同过滤:
- 相似产品
- 同类产品
- 配套产品
关联规则:
- 购买此商品的人还买了
- 最佳组合
- 套装优惠
展示方式:
- 4-8个产品
- 产品图片
- 产品名称
- 价格
- 评分
示例:
主产品: iPhone 15 Pro
推荐:
1. iPhone 15 Pro 手机壳
2. MagSafe 充电器
3. AirPods Pro
4. Apple Watch
推荐位置:
- 购物车页面
- 结账前
- "您可能还需要"
推荐策略:
实时协同过滤:
- 基于购物车内物品
- 购买此组合的人还买了
- 缺少配件提醒
关联规则:
- 最佳组合
- 套装优惠
- 满减搭配
展示方式:
- 轻量推荐(2-4个)
- 简洁信息
- 快速加购
- 组合优惠
示例:
购物车: [iPhone 15 Pro, AirPods Pro]
推荐:
1. MagSafe 充电器(加购享9折)
2. iPhone 15 Pro 手机壳(组合省¥50)
文案: "完成您的装备组合,立即省¥100"
推荐类型:
个性化推荐邮件:
- 每周为您精选
- 基于浏览历史
- 基于购买历史
复购提醒邮件:
- 您的XX可能用完了
- 基于购买周期
- 复购优惠
新品推荐邮件:
- 您喜欢的类别有新品
- 基于偏好类别
- 新品首发
推荐策略:
用户协同过滤:
- 与您相似的人喜欢
- 热门推荐
- 趋势产品
个性化排序:
- 预测评分
- 购买概率
- 利润考虑
邮件结构:
主题: "{{name}},这5个产品我们精选给您"
内容:
- 个性化问候
- 5-8个推荐产品
- 推荐理由
- 专属优惠
- 清晰CTA
推荐区块:
- "为您推荐"
- "猜您喜欢"
- "新品首发"
- "热门推荐"
推荐策略:
混合推荐:
- 60% 个性化推荐
- 20% 热门产品
- 10% 新品
- 10% 促销产品
个性化:
- 基于历史行为
- 基于实时浏览
- 基于相似用户
多样性:
- 不同类别
- 不同价位
- 不同品牌
展示方式:
- 轮播展示
- 网格布局
- 懒加载
- 无限滚动
<!-- 产品页推荐 -->
<div class="product-recommendations">
<h2>您可能还喜欢</h2>
<div class="recommendations-grid">
{% for product in recommendations %}
<div class="recommendation-item">
<a href="{{ product.url }}">
<img src="{{ product.featured_image }}"
alt="{{ product.title }}"
loading="lazy">
<h3>{{ product.title }}</h3>
<div class="price">
{% if product.compare_at_price > product.price %}
<span class="original-price">
{{ product.compare_at_price | money }}
</span>
{% endif %}
<span class="sale-price">
{{ product.price | money }}
</span>
</div>
<div class="rating">
<span class="stars">★★★★☆</span>
<span class="count">({{ product.reviews_count }})</span>
</div>
</a>
<form method="post" action="/cart/add">
<input type="hidden" name="id" value="{{ product.variants.first.id }}">
<button type="submit" class="btn-add-cart">
加入购物车
</button>
</form>
</div>
{% endfor %}
</div>
</div>
<script>
// 推荐算法(简化版)
async function loadRecommendations(productId) {
try {
const response = await fetch(`/recommendations/products?product_id=${productId}&limit=8`);
const products = await response.json();
const grid = document.querySelector('.recommendations-grid');
grid.innerHTML = products.map(product => `
<div class="recommendation-item">
<!-- 产品HTML -->
</div>
`).join('');
} catch (error) {
console.error('推荐加载失败:', error);
}
}
// 页面加载时执行
document.addEventListener('DOMContentLoaded', () => {
const productId = {{ product.id }};
loadRecommendations(productId);
});
</script>
<?php
/**
* 产品页推荐插件
*/
// 获取推荐产品
function get_personalized_recommendations($product_id, $limit = 8) {
$user_id = get_current_user_id();
// 获取推荐算法结果
$recommendations = array();
if ($user_id) {
// 已登录用户:个性化推荐
$recommendations = get_user_based_recommendations($user_id, $limit);
} else {
// 游客:基于产品推荐
$recommendations = get_item_based_recommendations($product_id, $limit);
}
return $recommendations;
}
// 基于用户的推荐
function get_user_based_recommendations($user_id, $limit) {
// 获取用户历史订单
$orders = wc_get_orders(array(
'customer_id' => $user_id,
'limit' => -1
));
// 分析购买历史
$purchased_products = array();
foreach ($orders ) {
(->() ) {
[] = ->();
}
}
= ();
= (
=> ,
=> * ,
=> ,
=> (
(
=> ,
=> ,
=> (),
),
),
);
= ();
->posts;
}
(, function() {
;
= ((
=> ,
), );
= (
->(),
[]
);
();
<div {
= ([]);
= ([]);
= ;
= (, , );
();
}
<!-- 邮件推荐模板 -->
<!DOCTYPE html>
<html>
<head>
<style>
.recommendations-container {
max-width: 600px;
margin: 0 auto;
font-family: Arial, sans-serif;
}
.recommendations-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
margin: 20px 0;
}
.recommendation-item {
border: 1px solid #ddd;
padding: 15px;
text-align: center;
}
.recommendation-item img {
max-width: 100%;
height: auto;
}
.recommendation-item h3 {
font-size: 16px;
margin: 10px 0;
}
.recommendation-item .price {
font-weight: bold;
color: #e74c3c;
font-size: ;
}
{
: inline-block;
: ;
: ;
: white;
: none;
: ;
: ;
}
Hi {{ customer_name }},为您精选
基于您最近购买的 {{ last_purchase }},我们为您挑选了这些产品:
{% for product in recommendations %}
{{ product.name }}
{{ product.price }}
查看详情
{% endfor %}
查看更多推荐 →
/personalized-recommendation --user-based --customer-id "12345"
/personalized-recommendation --item-based --product-id "67890"
/personalized-recommendation --association --data "orders.csv"
/personalized-recommendation --code --platform "shopify"
/advanced-customer-segmentation - 客户细分分析/email-sequence - 推荐邮件序列/prime-product-desc - 产品描述优化/basic-analytics - 推荐效果分析让每个推荐都精准命中客户需求! 🎯
版本: 1.0.0 更新: 2026-04-12 作者: Shopilot Team