Files
weight/README.md
2023-03-09 12:44:16 +08:00

152 lines
3.6 KiB
Markdown

# weight
通用权重模型
## 获取图片列表(标准查询)
GET /api/images
```javascript
{
page: 1, // 当前页码
pageSize: 20, // 分页数
next: true, // 是否存在下一页
list: [
{
id: 1234, // 原图ID
width: 512, // 原图宽度
height: 512, // 原图高度
user: { // 来源用户
id: 1234,
name: 'LAST',
},
article: { // 来源文章
id: 1234,
title: 'GAMEX',
}
}
]
}
```
偏好推荐
0. 使用权重推荐模型(propose=true)
* 根据用户ID作为权重推荐
* 根据来源图像作为权重推荐
* 根据浏览历史作为权重推荐
标准查询(select)
0. 按照名称搜索(search=xxx)
1. 按照标签查询权重最相近的(tag=tag1)
2. 按照时间区间查询(date=20210203~20220102||20210203+||20210203-)
3. 按照发表用户查询(user=1234)
4. 按照精选集查询(choice=1234)
取交集(筛选必须包含所有指定标签的)
1. 过滤出多个标签的交集(tags=tag1,tag2,tag3)
取并集(筛选任意包含其中一个标签的)
1. 多个标签同时存在(tags=tag1+,tag2+)
取差集(排除含有指定标签的)
1. 排除含有指定标签的(tags=tag1-,tag2-)
取子集(不提供)
取补集(不提供)
混写示例: (当混写时交集最优先, 并集优先于差集)
`GET /api/images?tags=tag1,tag2,tag4+,tag3-`
数据排序(sort)
1. 按照时间正反排序(sort=date+||date-)
2. 按照热门正反排序(sort=hot+||hot-)
列表分页(page)
1. 分页大小 pageSize=20
2. 指定页码 page=1 (当结束时, 返回next字段为false)
## 获取标签列表(热门标签)
GET /api/tags
```javascript
{
page: 1,
pageSize: 20,
next: true,
list: [
{
id: 1234, // 标签ID
name: 'tagName', // 标签名(按照请求语种对应变化, 支持简体中文,繁体中文,英文,日文)
count: 2, // 标签索引的图像数量(非实时, 应避免使用)
}
]
}
```
标准查询(select)
0. 按照名称模糊搜索(search=xxx)
1. 按照创建时间区间查询(date=20210203~20220102||20210203+||20210203-)
数据排序
1. 按照时间正反排序(sort=date+||date-)
2. 按照热门正反排序(sort=hot+||hot-)
* 标签以ID为准而非以标签名为准, 因为需要支持多语种翻译
* 指定语种 headers: Accept-Language: zh-cn;q=0.8,en-US;q=0.9 (义:优先支持英文,如果没有英文则支持中文)
## 搜索推荐
WS /api/search
```javascript
{
tags: [
{
id: 1234,
name: 'tagName',
count: 2,
}
]
}
```
* 选中搜索框时建立WS连接
* 离开搜索框时应及时断开WS连接
## 浏览记录
GET /api/history
```javascript
{
page: 1,
pageSize: 20,
next: true,
list: [
{
time: '2021-12-12 09:24:33',
type: 'image'
data: {
id: 1234,
width: 512,
height: 512
}
},
{
time: '2021-12-12 09:24:33',
type: 'article'
data: {
id: 1234,
title: '文章标题'
}
}
]
}
```
筛选
1. 按类型筛选(type=image)
2. 按时间区间筛选(date=20210203~20220102||20210203+||20210203-)
* 浏览记录属于日志没有ID, 以用户身份与时间区间批量操作(移除记录)
* 浏览记录默认30天内保留最大1000条(不超过1000条的保留全部记录)