182 lines
6.0 KiB
Markdown
182 lines
6.0 KiB
Markdown
# ai 繪圖
|
|
|
|
ai 繪圖服務端(快速重構)
|
|
|
|
|
|
接口列表:
|
|
- [ ] /api/tags
|
|
- [ ] /api/users
|
|
- [ ] /api/tasks
|
|
- [ ] /api/models
|
|
- [ ] /api/images
|
|
|
|
|
|
請求方式:
|
|
- [ ] GET
|
|
- [ ] POST
|
|
- [ ] PATCH
|
|
- [ ] DELETE
|
|
|
|
|
|
|
|
### 获取图片列表(标准查询)
|
|
|
|
GET /api/images
|
|
```javascript
|
|
{
|
|
page: 1, // 当前页码
|
|
pageSize: 20, // 分页数
|
|
next: true, // 是否存在下一页
|
|
list: [{
|
|
id: 1234, // 原图ID
|
|
width: 512, // 原图宽度
|
|
height: 512, // 原图高度
|
|
createdAt: '', // 創建時間
|
|
updatedAt: '', // 更新時間
|
|
user: { // 来源用户
|
|
id: 1234,
|
|
user_name: 'LAST',
|
|
},
|
|
article: { // 来源文章
|
|
id: 1234,
|
|
title: 'GAMEX',
|
|
}
|
|
}]
|
|
}
|
|
```
|
|
|
|
|
|
列表视图:(输出控制)
|
|
-------------------------------------------------------------------------------------
|
|
Method | URL | Info | Status
|
|
-------|--------------------------------|-----------------------------------|--------
|
|
GET | /api/images | 标准顺序查询 | ok
|
|
GET | /api/images?page=1&pageSize=20 | 指定页码和指定分页大小 | ok
|
|
|
|
|
|
筛选规则:(数据过滤)
|
|
-------------------------------------------------------------------------------------
|
|
Method | URL | Info | Statu
|
|
-------|--------------------------------|-----------------------------------|--------
|
|
GET | /api/images?user=1234 | 筛选指定某用户发表的图片 |
|
|
GET | /api/images?choice=1234 | 筛选指定精选集下的图片 |
|
|
GET | /api/images?like=1234 | 筛选指定用户点赞的图片 |
|
|
GET | /api/images?tag=1234 | 筛选含有指定标签的图片 |
|
|
GET | /api/images?tag=1234,1235 | 筛选含有多个标签之一的图片(并集) |
|
|
GET | /api/images?tag=1234&tag=1235 | 筛选含有指定多个标签的图片(交集) |
|
|
GET | /api/images?user=1234&tag=123 | 筛选指定用户的指定标签图片(交集) |
|
|
GET | /api/images?date=20220214+ | 时间范围(之后) |
|
|
GET | /api/images?date=20220214- | 时间范围(之前) |
|
|
GET | /api/images?date=2022~2023 | 时间范围(之间) |
|
|
|
|
|
|
排序规则:(权重强化)
|
|
-------------------------------------------------------------------------------------
|
|
Method | URL | Info | Status
|
|
-------|--------------------------------|-----------------------------------|--------
|
|
GET | /api/images?similar=1234 | 根据指定图片的相似图片(指定图片ID) | ok
|
|
GET | /api/images?sort=date+ | 排序规则(相似图片查询时此项无效) |
|
|
GET | /api/images?sort=like | 根据用户偏好推荐(指定用户的偏好) |
|
|
GET | /api/images?sort=history | 根据浏览记录推荐(指定用户的记录) |
|
|
GET | /api/images?sort=choice | 根据精选集推荐(指定精选集ID,取一组权重) |
|
|
|
|
* 注意, 筛选规则为多条件取交集, 单条件的复数取并集
|
|
* 权重强化属于排序规则而非过滤规则
|
|
|
|
|
|
### 獲取模型列表
|
|
|
|
GET /api/models
|
|
```javascript
|
|
{
|
|
page: 1, // 当前页码
|
|
pageSize: 20, // 分页数
|
|
next: true, // 是否存在下一页
|
|
list: [{
|
|
id: 'xxxxx', // 模型ID
|
|
name: 'xxx', // 模型名稱
|
|
createdAt: '', // 創建時間
|
|
updatedAt: '', // 更新時間
|
|
}]
|
|
}
|
|
```
|
|
|
|
篩選規則:(數據過濾)
|
|
-----------------------------------------------------------
|
|
Method | URL | Info
|
|
-------|--------------------------------|------------------
|
|
GET | /api/models?user=1234 | 按用戶ID篩選
|
|
GET | /api/models?tag=xxx | 按標籤分類篩選
|
|
|
|
|
|
### 獲取標籤
|
|
|
|
GET /api/tags
|
|
```javascript
|
|
{
|
|
page: 1, // 当前页码
|
|
pageSize: 20, // 分页数
|
|
next: true, // 是否存在下一页
|
|
list: [{
|
|
id: 'xxxxx', // 標籤ID
|
|
name: 'xxx', // 標籤名稱
|
|
createdAt: '', // 創建時間
|
|
updatedAt: '', // 更新時間
|
|
}]
|
|
}
|
|
```
|
|
|
|
篩選規則:(數據過濾)
|
|
-----------------------------------------------------------
|
|
Method | URL | Info
|
|
-------|--------------------------------|------------------
|
|
GET | /api/tags?user=1234 | 按用戶ID篩選
|
|
GET | /api/tags?tag=xxx | 按標籤分類篩選
|
|
|
|
|
|
### 獲取任務
|
|
GET /api/tasks
|
|
```javascript
|
|
{
|
|
page: 1, // 当前页码
|
|
pageSize: 20, // 分页数
|
|
next: true, // 是否存在下一页
|
|
list: [{
|
|
id: 'xxxxx', // 任務ID
|
|
name: 'xxx', // 任務名稱
|
|
status: 'xxx', // 任務狀態(waiting|running|success|error)
|
|
progress: 100, // 任務進度(0~100)
|
|
data: {}, // 任務數據
|
|
createdAt: '', // 創建時間
|
|
updatedAt: '', // 更新時間
|
|
}]
|
|
}
|
|
```
|
|
|
|
篩選規則:(數據過濾)
|
|
-----------------------------------------------------------
|
|
Method | URL | Info
|
|
-------|--------------------------------|------------------
|
|
GET | /api/tasks?user=1234 | 按用戶ID篩選
|
|
GET | /api/tasks?tag=xxx | 按標籤分類篩選
|
|
|
|
|
|
### 監聽任務
|
|
|
|
WebSocket /api/tasks/{task_id}
|
|
```javascript
|
|
{
|
|
id: 'xxxx', // 任務ID
|
|
status: 'xxx', // 任務狀態(waiting|running|success|error)
|
|
progress: 100, // 任務進度(0~100)
|
|
data: {}, // 返回數據
|
|
}
|
|
```
|
|
|
|
* 使用websocket建立連接以對指定任務監聽狀態變化
|
|
* 離開頁面時,或是任務結束時, 應斷開websocket連接
|
|
* 當任務狀態發生變化時, 服務端向瀏覽器主動發送消息
|
|
* 返回數據:任務執行中爲預覽, 任務完成時爲生成結果
|
|
|
|
|