基于用户画像的商品搜索引擎
一、立项背景与目标
传统电商搜索有三个痛点:意图理解弱,无法理解"适合跑步用的降噪耳机"中"跑步用"指向运动耳机品类;缺乏个性化,新老用户看到相同结果;搜索与对话割裂,无法在同一界面完成购物闭环。
项目目标:中文查询映射三级品类树(8个一级34个二级约120个叶子),准确率超90%;基于三层画像做个性化重排;多轮AI对话集成情感识别;CDC加Flink实时更新画像延迟小于1分钟;从LLM输出自动提取规则减少依赖;全链路异步有超时降级保护。技术栈:FastAPI、MySQL、ES、Redis、DeepSeek、BGE、Kafka+Flink、Vue3+TypeScript。
二、软件功能与核心模块
意图识别引擎是系统核心,六策略级联匹配。ChatIntent用正则加轻量LLM过滤闲聊;LLMIntent用DeepSeek做层次剪枝从一级品类逐层下钻到叶子;另配备AC自动机、模糊匹配、规则字典、语义匹配四种后备。置信度超0.8自动提取品牌同义词属性规则入库,同一规则确认三次升级为可信并刷新策略缓存,后续相同查询不再调用LLM,形成自进化闭环。查询缓存用LRU加TTL加编辑距离模糊去重。
搜索引擎多路召回加混合排序。ES与SQL并行召回去重合并。意图排序满分150(关键词50、价格40、品牌35、品类25),画像排序满分100(七个维度各10到20分),最终分等于基础100加两者。
AI对话四步编排:情感识别、带上下文意图识别、商品召回、LangChain回复生成。词典规则支持五种情感亚毫秒级。LLM不可用三级模板降级。
画像三层:人口画像63维缓存24小时,会话画像聚合短期行为缓存15分钟,统计画像TF-IDF计算品类亲和度和价格分位数缓存1小时。权重根据订单数动态协商。
实时流计算:MySQL CDC经Kafka到Flink,HOP窗口聚合会话行为,全量聚合计算统计特征写回画像表。
三、业务流程与功能路径
搜索路径:查LRU缓存,并行构建画像500ms超时Redis不可用降级MySQL,策略级联匹配叶子品类提取关键词价格,置信度达标自动提取规则,品类展开ES加SQL并行召回去重合并,混合排序返回,点击浏览行为追踪更新满意度。
对话多轮:首轮经情感意图识别触发商品召回,LLM根据画像和商品摘要生成推荐。次轮带历史上下文理解指代比较意图,每步可失败不阻塞后续。
CDC路径:MySQL变更被Debezium或Python轮询捕获序列化推送Kafka,Flink消费聚合计算写入画像表,下次搜索自动体现新偏好。
全网状降级:Redis不可用降级MySQL,LLM超时降级后备策略,ES不可用SQL独立可用,全部失败返回空结果不抛异常。
电商