patch 執行訓練

This commit is contained in:
2023-04-28 18:10:03 +08:00
parent 95107e7bdc
commit 247ab20966
7 changed files with 28 additions and 34 deletions

View File

@@ -4,6 +4,7 @@ ai 繪圖服務端(快速重構)
列表接口:
- [ ] /api/tags [#標籤詳情](#標籤列表)
- [ ] /api/users [#用戶詳情](#用戶列表)
- [ ] /api/tasks [#任務詳情](#任務列表)
@@ -16,6 +17,7 @@ ai 繪圖服務端(快速重構)
- [ ] /api/params [#參數列表](#參數列表)
列表接口-請求方式
Method | URL | Info
-------|--------------------------------|------------------
GET | /api/{name} | 分頁:顺序查询
@@ -29,6 +31,7 @@ POST | /api/{name} | 篩選:創建新對象
* 過濾條件有多個的,複寫query(交集)
詳情接口:
- [ ] /api/tags/{tag_id} [#標籤詳情](#標籤詳情)
- [ ] /api/users/{user_id} [#用戶詳情](#用戶詳情)
- [ ] /api/tasks/{task_id} [#任務詳情](#任務詳情)
@@ -37,6 +40,7 @@ POST | /api/{name} | 篩選:創建新對象
- [ ] /api/params/{params_id} [#參數詳情](#參數詳情)
詳情接口-請求方式:
Method | URL | Info
-------|--------------------------------|------------------
GET | /api/{name}/{item_id} | 獲取對象詳情
@@ -65,7 +69,7 @@ type Model struct {
TriggerWords string `json:"trigger_words"` // 觸發詞
BaseModel string `json:"base_model"` // (SD1.5|SD2)
ModelPath string `json:"model_path"` // 模型路徑
Status string `json:"status"` // (waiting|running|success|error)
Status string `json:"status"` // (initial|ready|waiting|running|success|error)
Progress int `json:"progress"` // (0-100)
Image string `json:"image"` // 封面圖片實際地址
Tags string `json:"tags"`
@@ -78,7 +82,7 @@ type Task struct {
ID int `json:"id"`
Name string `json:"name"`
Type string `json:"type"` // 任務類型(訓練|推理)
Status string `json:"status"` // 任務狀態(waiting|running|success|error)
Status string `json:"status"` // 任務狀態(initial|ready|waiting|running|success|error)
Progress int `json:"progress"` // 任務進度(0-100)
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
@@ -264,7 +268,6 @@ POST | /api/models | 創建一個模型
* 如果未登錄, 返回的結果將過濾掉無權限查看的內容
* 如果已登錄, 返回的結果將包含私有的
POST /api/models
```javascript
// 發送數據
@@ -306,9 +309,15 @@ PATCH /api/models/{model_id}
```javascript
{
name: 'xxx', // 修改模型名稱
status: 'ready', // (initial|ready|waiting|running|success|error)
}
```
* 修改指定字段, 只傳遞需要修改的字段
* status 初始默認爲 'initial', 修改爲 'ready' 即就緒狀態, 服務器將爲此任務自動排期
* 當模型訓練任務被加入等待隊列時, 其狀態自動變更爲 'waiting'
* 當模型訓練任務被執行時, 其狀態自動變更爲 'running', 並開始更新進度條 Progress
* 當模型訓練完成時狀態自動變更爲'success', 失敗時爲'error'
* 訓練中的模型將被鎖定, 無法修改刪除等操作
DELETE /api/models/{model_id}
* 刪除指定模型

1
go.mod
View File

@@ -8,4 +8,5 @@ require (
github.com/gorilla/mux v1.8.0
github.com/gorilla/websocket v1.5.0
github.com/mattn/go-sqlite3 v1.14.16
github.com/russross/blackfriday v1.6.0
)

2
go.sum
View File

@@ -8,3 +8,5 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww=
github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY=

14
main.go
View File

@@ -1,16 +1,17 @@
package main
import (
"io/ioutil"
"log"
"net/http"
"runtime"
"text/template"
"time"
"main/routers"
"main/utils"
"github.com/gorilla/mux"
"github.com/russross/blackfriday"
)
func main() {
@@ -35,8 +36,15 @@ func main() {
// 設定路由
r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
t, _ := template.ParseFiles("templates/index.html")
t.Execute(w, nil)
// 從本地讀取Markdown文件
input, err := ioutil.ReadFile("./README.md")
if err != nil {
log.Println(err)
return
}
//output := blackfriday.MarkdownBasic(input)
output := blackfriday.Markdown(input, blackfriday.HtmlRenderer(0, "", ""), blackfriday.EXTENSION_TABLES|blackfriday.EXTENSION_FENCED_CODE|blackfriday.EXTENSION_AUTOLINK)
w.Write(output)
})
r.HandleFunc("/api/models", routers.ModelsGet).Methods("GET")
r.HandleFunc("/api/models", routers.ModelsPost).Methods("POST")

View File

@@ -12,7 +12,7 @@ type Model struct {
TriggerWords string `json:"trigger_words"` // 觸發詞
BaseModel string `json:"base_model"` // (SD1.5|SD2)
ModelPath string `json:"model_path"` // 模型路徑
Status string `json:"status"` // (waiting|running|success|error)
Status string `json:"status"` // (initial|ready|waiting|running|success|error)
Progress int `json:"progress"` // (0-100)
Image string `json:"image"` // 封面圖片實際地址
Tags string `json:"tags"`

View File

@@ -9,7 +9,7 @@ type Task struct {
ID int `json:"id"`
Name string `json:"name"`
Type string `json:"type"` // 任務類型(訓練|推理)
Status string `json:"status"` // (waiting|running|success|error)
Status string `json:"status"` // (initial|ready|waiting|running|success|error)
Progress int `json:"progress"` // (0-100)
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`

View File

@@ -1,26 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h1>Home</h1>
<p>Hi, {{ .Name }}!</p>
<!-- 列出所有API路徑 -->
<ul>
<li><a href="/api/models">/api/models</a></li>
<li><a href="/api/images">/api/images</a></li>
<li><a href="/api/users">/api/users</a></li>
<li><a href="/api/tasks">/api/tasks</a></li>
<li><a href="/api/tags">/api/tags</a></li>
</ul>
<ul>
<li><a href="/api/models/1">/api/models/1</a></li>
<li><a href="/api/images/1">/api/images/1</a></li>
<li><a href="/api/users/1">/api/users/1</a></li>
<li><a href="/api/tasks/1">/api/tasks/1</a></li>
<li><a href="/api/tags/1">/api/tags/1</a></li>
</ul>
</body>
</html>