| name | persona-search-demo |
| version | 1.1 |
| description | 画像驱动的个性化搜索 Demo 生成工具。基于美团 Persona 真实标签 API,为不同用户画像(白领、程序员、学生等)生成差异化商品搜索排序,演示用户画像如何影响搜索结果。支持:①调用 Persona RAG 接口获取真实标签;②基于标签权重对商品评分;③生成可交互的 Demo HTML 页面。触发词:画像搜索、个性化搜索、persona demo、搜索 demo、用户画像 demo、标签驱动搜索。 |
| metadata | {"openclaw":{"priority":0,"emoji":"🎯","requires":{"bins":["curl","python3"]}}} |
| changelog | [{"version":"1.0","date":"2026-03-22","file":"persona_demo_v3.html","desc":"三栏布局(手机预览 + 画像控制 + 行为记录)。含会话统计、快速搜索关键词、手机内用户切换栏。"},{"version":"1.1","date":"2026-03-22","file":"persona_demo_v4.html","desc":"两栏布局重构。删除「会话统计」「快速搜索」模块;手机预览区还原真实 APP 样子(去掉用户切换头像栏);右侧面板合并画像标签+偏好权重、行为记录+偏好推断;默认选中小美;整体视觉升级。"}] |
画像驱动的个性化搜索 Demo
功能说明
本 Skill 演示如何将美团 Persona 用户画像标签应用于商品搜索排序,实现"同一关键词 × 不同用户 = 不同排序结果"的个性化效果。
适用场景
- 向业务方演示用户画像的价值
- 验证 Persona 标签 API 的可用性
- 搭建个性化推荐 POC
核心算法逻辑
1. Persona 标签获取
使用 RAG 语义搜索接口(非关键词搜索),支持自然语言查询:
GET https://persona.sankuai.com/api/v2/ai/rag/dutvs/assets/searchAll
?query=<自然语言描述>
&assetTypes=label
&idType=1
⚠️ 注意:PUT /api/v2/tcs/label/list 对自然语言查询返回空结果,必须用 RAG 接口。
2. 用户画像模型
每个用户由以下维度定义:
| 维度 | 说明 | 取值范围 |
|---|
priceWeight | 价格敏感度 | 0~1,越高越在意价格 |
healthWeight | 健康偏好 | 0~1,越高越偏好健康食品 |
qualityWeight | 品质偏好 | 0~1,越高越偏好高品质 |
labelQueries | Persona 查询关键词列表 | 字符串数组 |
categoryBonus | 品类偏好加成 | {品类: 加分值} |
内置用户画像(4个):
- 🧑💼 小美(白领女性):健康 0.8、品质 0.7、价格 0.3
- 👨💻 阿强(程序员):价格 0.8、品质 0.5、健康 0.3
- 📚 学妹(在校学生):价格 0.9、健康 0.4、品质 0.3
- 👔 老王(中年商务):品质 0.8、健康 0.6、价格 0.2
3. 个性化评分公式
商品得分 = 基础得分(0.1~1.0)
+ 健康加成 × healthWeight × 0.3
- 价格惩罚 × priceWeight × 0.25 ← 高价 × 价格敏感 = 降权
+ 品质加成 × qualityWeight × 0.2
+ 品类偏好加成
+ 随机扰动 (±0.05)
商品维度定义(每个 mock 商品携带):
healthScore:健康分 0~1
priceLevel:价格档次 1(低)~3(高)
qualityScore:品质分 0~1
category:品类(汉堡/奶茶/沙拉/炸鸡/米饭/披萨)
4. 关键词匹配
搜索时对商品名称和描述做模糊匹配,命中关键词的商品进入候选集,再按个性化得分排序。
测试用例
搜索词:「汉堡」
| 排名 | 小美(健康优先) | 阿强(价格优先) | 学妹(极致省钱) |
|---|
| 1 | 藜麦牛肉汉堡(¥38) | 麦辣鸡腿堡套餐(¥19.9) | 麦辣鸡腿堡套餐(¥19.9) |
| 2 | 黑麦全谷物素食堡(¥35) | 经典双层牛肉堡(¥25) | 经典双层牛肉堡(¥25) |
| 3 | 经典双层牛肉堡(¥25) | 藜麦牛肉汉堡(¥38) | 招牌芝士厚牛堡(¥42) |
结论:小美排出健康高分产品,阿强/学妹把低价套餐排到最前。
搜索词:「奶茶」
| 排名 | 小美 | 阿强 | 学妹 |
|---|
| 1 | 抹茶燕麦拿铁(¥28) | 原味珍珠奶茶大杯(¥6) | 原味珍珠奶茶大杯(¥6) |
| 2 | 黑糖珍珠波波奶茶(¥22) | 黑糖珍珠波波奶茶(¥22) | 黑糖珍珠波波奶茶(¥22) |
| 3 | 原味珍珠奶茶大杯(¥6) | 抹茶燕麦拿铁(¥28) | 芋泥爆珠珍珠(¥18) |
搜索词:「沙拉」
| 排名 | 小美 | 老王 | 学妹 |
|---|
| 1 | 牛油果鸡胸肉沙拉(¥48) | 帝王蟹沙拉(¥88) | 蔬菜水果沙拉(¥32) |
| 2 | 蔬菜水果沙拉(¥32) | 牛油果鸡胸肉沙拉(¥48) | 牛油果鸡胸肉沙拉(¥48) |
Demo 页面结构
v1.0(三栏,persona_demo_v3.html)
三栏布局:
- 左栏:手机 APP 预览,含用户切换头像栏
- 中栏:用户画像控制(标签 + 权重 + 快速搜索关键词)
- 右栏:行为日志 + 会话统计 + 偏好推断
v1.1(两栏,persona_demo_v4.html)⭐ 当前版本
两栏布局(320px 手机 + 弹性右栏):
- 左栏(sticky):手机 APP 预览
- 顶部橙色 header + 用户名显示(无用户切换头像栏,还原真实 APP)
- 首页:为小美推荐的商品列表
- 搜索落地页:历史搜索 + 热门搜索 + 个性化结果
- 右栏:控制面板(4 个面板)
- 切换用户:4 个用户按钮,右侧操作只入口
- Persona 画像标签 + 偏好权重:合并面板,真实 API + 条形图
- 跨用户对比:搜索后自动展示 4 个用户的排序差异
- 行为记录 + 偏好推断:合并面板,点击/搜索行为 + 实时标签推断
默认状态:页面加载即选中小美,自动渲染推荐商品和权重。
Persona API 使用规范
认证方式
SSO Cookie 认证(需先在 https://persona.sankuai.com 完成 SSO 登录)。Demo 页面直接通过浏览器 Cookie 调用,无需额外配置。
工作的接口
GET /api/v2/ai/rag/dutvs/assets/searchAll?query=外卖偏好&assetTypes=label&idType=1
返回字段:labelId, labelName, similarityScore, labelDesc
不工作的接口(返回空结果)
PUT /api/v2/tcs/label/list ← 自然语言查询无效
部署方式
cd /root/.openclaw/workspace
python3 -m http.server 8899 &
文件清单
| 文件 | 版本 | 说明 |
|---|
persona_demo_v3.html | v1.0 | 三栏布局,含会话统计/快速搜索 |
persona_demo_v4.html | v1.1 | 两栏布局,精简版,当前推荐使用 |
session_persona_search_demo_20260322.jsonl | — | 完整对话 session |
部署方式
cd /root/.openclaw/workspace
python3 -m http.server 8899 &
生成时间:2026-03-22 · 喵子自动整理
v1.1 更新:2026-03-22