# 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+ fasttext + faiss 的商品内容相关推荐实现+源代码+文档说明
共19个文件
py:4个
dic:3个
png:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 189 浏览量
2023-12-28
17:55:38
上传
评论
收藏 30.17MB ZIP 举报
温馨提示
1、资源内容:一个基于 fasttext + faiss 的商品内容相关推荐实现+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能ok的情况下才上传的。 3、适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 4、作者介绍:某大厂资深算法工程师,从事Matlab、Python、C/C++、Java、YOLO算法仿真工作10年;擅长计算机视觉、 目标检测模型、智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、智能控制、路径规划、无人机等多种领域的算法仿真实验,更多源码,请上博主主页搜索。 -------------------------------------------------------------------------- -
资源推荐
资源详情
资源评论
收起资源包目录
recsys_faiss-master.zip (19个子文件)
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
共 19 条
- 1
资源评论
机器学习的喵
- 粉丝: 512
- 资源: 1269
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于javascript实现的蚁群算法(JS代码)
- 基于python实现的随机森林(python代码)
- python读取excel到数据库中,简单的数据库管理脚本
- 7777端口抓包数据集
- IMG_0694.GIF
- 基于图像的三维模型重建C++源代码+文档说明(高分课程设计)
- 基于聚焦法的工件立体测量方案,根据数据进行三维重建 使用HALCON处理图像,MATLAB拟合数据+源代码+数据集+效果图
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功