90de298c53c17e39923c05450422184cc4ef4e7a
ai 繪圖
ai 繪圖服務端(快速重構)
列表接口:
詳情接口:
- /api/tags/{tag_id} #標籤詳情
- /api/users/{user_id} #用戶詳情
- /api/tasks/{task_id} #任務詳情
- /api/models/{model_id} #模型詳情
- /api/images/{image_id} #圖片詳情
請求方式:
- GET
- POST
- PATCH
- DELETE
- WebSocket
- GET查詢以外的操作都必須在headers中攜帶token驗證身份權限
- GET查詢私有模型也必須登錄, 否則不會被展示
获取图片列表(标准查询)
GET /api/images
{
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 |
DELETE | /api/images/{image_id} | 刪除指定圖片 |
筛选规则:(数据过滤)
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
{
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 | 按標籤分類篩選 |
POST | /api/models | 創建模型 |
PATCH | /api/models/{model_id} | 修改模型 |
DELETE | /api/models/{model_id} | 刪除指定模型 |
POST /api/models
// 發送數據
{
name: '', // 設定名稱
type: '', // 指定訓練類型
source: '', // 指定源模型ID
data: {
oss: [], // 直接上傳到OSS的圖片地址列表
images: [], // 指定圖片的ID們
choices: [], // 精選集的ID們
}, // 指定數據集(可以是上傳到OSS的文件列表, 也可以是已有的圖片ID, 也可以是精選集ID)
}
// 返回數據
{
id: 'xxx', // 模型ID
name: '', // 模型名稱
status: '', // 模型狀態(必須訓練完成的才可用)
createdAt: '', // 創建時間
updatedAt: '', // 更新時間
}
獲取標籤
GET /api/tags
{
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 | 按標籤分類篩選 |
DELETE | /api/tags/{tag_id} | 刪除指定標籤 |
獲取任務
GET /api/tasks
{
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 | 按標籤分類篩選 |
DELETE | /api/tasks/{task_id} | 刪除指定任務 |
監聽任務
WebSocket /api/tasks/{task_id}
{
id: 'xxxx', // 任務ID
status: 'xxx', // 任務狀態(waiting|running|success|error)
progress: 100, // 任務進度(0~100)
data: {}, // 返回數據
}
- 使用websocket建立連接以對指定任務監聽狀態變化
- 離開頁面時,或是任務結束時, 應斷開websocket連接
- 當任務狀態發生變化時, 服務端向瀏覽器主動發送消息
- 返回數據:任務執行中爲預覽, 任務完成時爲生成結果
Description
Languages
Go
94.6%
Shell
5.4%