# recsys_faiss
一个基于 fasttext + faiss 的商品内容相关推荐接口实现,restful接口采用nginx+uwsgi+flask,gunicorn+uvicorn+fastapi
增加Spark实现内容相关推荐,Ansj+Word2vec+LSH+Phoenix
#### 商品详情页效果图
将模型部署应用
![](shoppingweb.png)
#### 模型接口流程图
![](process.png)
#### 训练商品属性的特征向量,商品向量add到faiss
```
python embedding_recsys.py
```
#### flask封装faiss接口,输入商品id重建向量,进行余弦相似度检索
#### 启动uwsgi
```
uwsgi uwsgi.ini
```
#### nginx配置
```
server {
listen 8089; # 指定监听的端口
charset utf-8;
server_name localhost; # ip地址
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8088;
uwsgi_param UWSGI_CHDIR /Users/PycharmProjects/recsys_faiss;
uwsgi_param UWSGI_SCRIPT recsys_faiss.faiss_api.py;
}
}
```
#### 接口测试
get请求,请求参数spu商品ID,n_items召回相似商品数量
```
python
>>> import requests
>>> res = requests.get("http://127.0.0.1:8089/faiss/similar_items/?spu=3&n_items=10")
>>> res.json()
{'code': '200', 'msg': '处理成功', 'result': {'56482': 1.0, '92237': 1.0, '56483': 1.0, '56481': 1.0, '56484': 1.0, '56485': 1.0, '56486': 1.0, '4': 1.0, '18': 0.9981815814971924, '19': 0.9981815814971924}}
```
#### 推荐结果验证
spu = 3
```
+-------------+--------------------------------------+
| ITEM_NUM_ID | ITEM_NAME |
+-------------+--------------------------------------+
| 3 | 卓德优格乳杏口味含乳饮品 |
+-------------+--------------------------------------+
```
#### 推荐结果
```
+-------------+---------------------------------------------------------------------------+
| ITEM_NUM_ID | ITEM_NAME |
+-------------+---------------------------------------------------------------------------+
| 19 | 卓德低脂热处理风味发酵乳(森林水果口味)120g |
| 8221 | 爱乐薇蓝莓味含乳饮品125克 |
| 56481 | 卓德风味发酵乳(草莓鲜酪口味)120g |
| 8 | 卓德脱脂含乳饮品(覆盆子口味) |
| 56483 | 卓德风味发酵乳(香草口味)120g |
| 20 | 卓德低脂热处理风味发酵乳(草莓口味)120g |
| 56484 | 卓德脱脂含乳饮品水蜜桃口味+覆盆子口味4*115g |
| 56486 | 卓德热处理风味发酵乳(原味)4*115g |
| 56482 | 卓德风味发酵乳(焗苹果口味)120g |
| 8229 | 爱乐薇菠萝味含乳饮品125克 |
| 18 | 卓德低脂热处理风味发酵乳(水蜜桃、西番莲口味)120g |
| 4 | 卓德优格乳草莓口味含乳饮品 |
| 92237 | 卓德含乳饮品(草莓口味)460克(4*115克) |
| 6 | 卓德脱脂含乳饮品(水蜜桃口味) |
+-------------+---------------------------------------------------------------------------+
```
#### 接口压力测试
```
siege -c 100 -t 10s -b "http://127.0.0.1:8089/faiss/similar_items/?spu=3&n_items=50"
Transactions: 41011 hits
Availability: 100.00 %
Elapsed time: 9.17 secs
Data transferred: 12.24 MB
Response time: 0.02 secs
Transaction rate: 4472.30 trans/sec
Throughput: 1.33 MB/sec
Concurrency: 99.57
Successful transactions: 41011
Failed transactions: 0
Longest transaction: 0.07
Shortest transaction: 0.00
```
#### fastapi
```
gunicorn faiss_fastapi:app -w 4 -k uvicorn.workers.UvicornWorker -D
```
```
python
>>> import requests
>>> res = requests.get("http://127.0.0.1:8000/faiss/similar_items/?spu_id=3&n_items=10")
>>> res.json()
{'code': 200, 'msg': 'success', 'res': [4, 56486, 92237, 56484, 56485, 56481, 56482, 56483, 18, 20]}
```
#### Spark实现
在phoenix创建表RECSYS_SIMILAR_LSH
```
0: jdbc:phoenix:> create table RECSYS_SIMILAR_LSH (id varchar not null primary key, recommend varchar) salt_buckets=8;
```
提交spark任务
```
bash submit.bash
```
查看结果
```
0: jdbc:phoenix:> select * from RECSYS_SIMILAR_LSH limit 5;
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------+
| ID | |
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------+
| 100880 | 4407,78608,753,88585,99289,17360,42159,43082,8636,43403,109828,2409,214619,202489,43125,14123,97192,9408,73847,48269,20587,209262,76913,78394 |
| 102431 | 100034,100280,98687,118912,114140,29619,106257,118940,100065,30217,49843,49891,41759,28874,109745,29915,20059,29191,238333,90415,51839,48266, |
| 104213 | 237497,21255,12543,98798,90771,117289,21262,20042,75753,212108,29915,50095,50537,39070,20059,101172,53475,18816,29859,109745,41840,29619,1886 |
| 105577 | 9681,91428,62392,41219,117776,13191,120160,97337,112055,78196,202915,202899,227439,39411,94532,102624,102618,235521,105425,120167,58650,85126 |
| 106655 | 233605,42025,120616,59829,203421,209948,99844,94505,752,39665,93387,80632,232698,57406,102814,43438,42975,8926,91368,73961,210979,92327,94477 |
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------+
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于Python+Spark的商品内容推荐系统-毕业设计源码+使用文档(高分优秀项目) 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕设项目、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 3、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Python+Spark的商品内容推荐系统-毕业设计源码+使用文档(高分优秀项目).zip (20个子文件)
recsys_faiss-master
faiss_model
utils.py 568B
shoppingweb.png 712KB
embedding_recsys.py 5KB
data
embedding.txt 9.92MB
faiss_api.py 2KB
uwsgi.pid 6B
process.png 16KB
faiss_fastapi.py 1KB
model
faiss.model 49.5MB
config.yml 600B
uwsgi.ini 324B
lsh_model
pom.xml 7KB
content_similar.scala 5KB
library
stop.dic 5KB
default.dic 0B
ambiguity.dic 0B
config.Properities 164B
submit.bash 293B
README.md 6KB
171265889347208773632.zip 416B
共 20 条
- 1
资源评论
不走小道
- 粉丝: 3333
- 资源: 5060
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JAVA的SpringBoot车险理赔管理系统源码数据库 MySQL源码类型 WebForm
- (源码)基于物联网的温湿度监控系统.zip
- (源码)基于SSM框架的档案管理系统.zip
- C#ASP.NET企业网站信息管理系统源码 CMS源码数据库 SQL2012源码类型 WebForm
- 一个轻量级的分布式日志标记追踪神器,10分钟即可接入,自动对日志打标签完成微服务的链路追踪
- (源码)基于Python和CuPy的浅层神经网络四位数加法预测系统.zip
- (源码)基于Java的心电信号R点标注系统.zip
- (源码)基于SpringBoot和Vue的后台管理系统.zip
- java网络教研室资料管理系统源码数据库 MySQL源码类型 WebForm
- bboss 插件工程,持久层hibernate/hibernate4插件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功