paper2skills Playbook

PersonaBot RAG画像生成 - LLM+RAG驱动的客户画像落地工具

Skill-PersonaBot-RAG-Profiling · 14-用户分析

causalexperimentrag广告与投放客服与VOC推荐与搜索知识图谱与RAGWF-B 广告优化WF-C 客服分诊WF-D 选品扫描WF-E Review监控WF-G Listing内容优化
年化 ROI20-40 万元
实现难度⭐⭐☆☆☆
业务视角
适用角色运营负责人 / 用户增长负责人 · CMO · 产品经理
适用平台Amazon 买家分层 · DTC 站 LTV 预测 · Klaviyo/Brevo 邮件分群
什么情况下用有大量老客户,但不知道谁是高价值客户、谁快要流失;新客获取成本越来越高,老客复购却上不去
成功是什么样的用户按 RFM/LTV 分层精准触达,高价值用户留存率提升,老客贡献收入占比从 30% 提升到 50%
业务痛点
老客复购率上不去不知道哪些用户要流失了所有用户用同一套活动买过一次就不见了

1. 解决的问题

Momcozy 在 Amazon US 的 S9/S12 系列累积数万条评论,但产品团队只能依赖人工抽查了解用户诉求,无法识别"职场背奶妈妈"与"新手妈妈"在痛点上的差异,导致广告文案和详情页对所有人说同样的话,转化率损耗严重 - 数据要求: - Amazon Review 数据(user_id、product_id、评论文本、评分、时间戳),CSV 格式 - 数量:每 SKU ≥ 50

2. 核心算法逻辑

传统用户画像依赖人工访谈或问卷,周期长(数周)、主观性强、难以规模化更新。PersonaBot 的核心创新是:把 RAG(检索增强生成)与 LLM 结合,将原始评论/调研文本自动转化为结构化画像。RAG 负责"锚定事实"——从真实数据中检索支撑证据,LLM 负责"语义理解"——识别需求、痛点、场景并组织成可读画像。两者结合既保证画像可溯源(每个维度都有评论证据),又保证语义理解深度(超越关键词匹配)。

3. 业务应用场景

- 业务问题:Momcozy 在 Amazon US 的 S9/S12 系列累积数万条评论,但产品团队只能依赖人工抽查了解用户诉求,无法识别"职场背奶妈妈"与"新手妈妈"在痛点上的差异,导致广告文案和详情页对所有人说同样的话,转化率损耗严重 - 数据要求: - Amazon Review 数据(user_id、product_id、评论文本、评分、时间戳),CSV 格式 - 数量:每 SKU ≥ 500 条评论以覆盖多种用户类型 - 执行步骤: 1. 调用 `ReviewRetriever` 按用户聚合评论 2. 用关键词分群(`['上班', '公司', '背奶']` → 职场群体) 3. `

- 业务问题:Momcozy 新品上市后,3 星以下评论散落在评论区,产品团队难以快速提炼"高频结构性缺陷"与"偶发性用户误操作",导致产品迭代方向模糊 - 数据要求: - 评分 ≤ 3 的低分评论子集(最近 90 天),user_id + 评论文本 - 建议量:每 SKU ≥ 200 条负面评论 - 执行步骤: 1. 过滤低分评论构建"差评语料" 2. `generate_segment_persona(segment_name='低分用户', keywords=['差', '烂', '噪音', '坏'])` 3. 输出 `topic_distribution`(噪音/清洗/续航等维度频率)

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • 核心代码模板已就绪,仅需对接真实 LLM API 和评论数据
  • 无需深度学习环境,Python + pandas + LLM API 即可运行
  • 可 2 周内完成 MVP 上线

7. 代码模板

代码块数量:1 · 路径:paper2skills-code/nlp_voc/personabot_rag_profiling

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
PersonaBot RAG用户画像生成 - 母婴出海业务模板
代码路径: paper2skills-code/nlp_voc/personabot_rag_profiling/model.py
"""

import numpy as np
from typing import List, Dict
from dataclasses import dataclass, asdict
from collections import defaultdict


@dataclass
class Review:
    """评论数据结构(对接 Amazon Review API 导出格式)"""
    review_id: str
    user_id: str
    product_id: str
    text: str
    rating: int
    timestamp: str


@dataclass
class PersonaSchema:
    """用户画像输出结构"""
    demographics: Dict[str, str]    # 人口统计/角色标签
    needs: List[str]                 # 核心需求列表
    pain_points: List[str]           # 痛点列表
    preferences: List[str]           # 产品偏好
    usage_scenarios: List[str]       # 使用场景
    persona_summary: str             # 一句话画像摘要


class ReviewRetriever:
    """
    RAG 检索器(简化版,生产环境替换为 FAISS/Chroma 向量检索)

    生产替换指南:
        from langchain_community.vectorstores import Chroma
        from langchain_openai import OpenAIEmbeddings
        vectorstore = Chroma.from_texts(review_texts, OpenAIEmbeddings())
        docs = vectorstore.similarity_search(query, k=5)
    """

    def __init__(self, reviews: List[Review]):
        self.reviews = reviews
        self.user_reviews = defaultdict(list)
        for r in reviews:
            self.user_reviews[r.user_id].append(r)

    def retrieve_by_user(self, user_id: str) -> List[Review]:
        return self.user_reviews.get(user_id, [])

    def retrieve_similar_users(self, user_id: str, top_k: int = 5) -> List[str]:
        """Jaccard相似度(生产环境替换为向量余弦相似度)"""
        user_reviews = self.retrieve_by_user(user_id)
        if not user_reviews:
            return []

8. 论文来源

  • 2505.17156