2023-04-19 09:35:20 +08:00
2023-04-18 15:53:13 +08:00
2023-04-18 15:53:13 +08:00
2023-04-18 15:22:01 +08:00
2023-04-18 15:22:01 +08:00
2023-04-19 09:29:31 +08:00
2023-04-19 09:35:20 +08:00
2023-04-19 09:29:31 +08:00

ai 繪圖

ai 繪圖服務端(快速重構)

接口列表:

  • /api/tags
  • /api/users
  • /api/tasks
  • /api/models
  • /api/images

請求方式:

  • GET
  • POST
  • PATCH
  • DELETE

获取图片列表(标准查询)

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

筛选规则:(数据过滤)

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 按標籤分類篩選

獲取標籤

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 按標籤分類篩選

獲取任務

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 按標籤分類篩選

監聽任務

WebSocket /api/tasks/{task_id}

{
    id: 'xxxx',    // 任務ID
    status: 'xxx', // 任務狀態(waiting|running|success|error)
    progress: 100, // 任務進度(0~100)
    data: {},      // 返回數據
}
  • 使用websocket建立連接以對指定任務監聽狀態變化
  • 離開頁面時,或是任務結束時, 應斷開websocket連接
  • 當任務狀態發生變化時, 服務端向瀏覽器主動發送消息
  • 返回數據:任務執行中爲預覽, 任務完成時爲生成結果
Description
ai 繪圖服務端(快速重構)
Readme 318 KiB
Languages
Go 94.6%
Shell 5.4%