patch 執行訓練
This commit is contained in:
15
README.md
15
README.md
@@ -4,6 +4,7 @@ ai 繪圖服務端(快速重構)
|
|||||||
|
|
||||||
|
|
||||||
列表接口:
|
列表接口:
|
||||||
|
|
||||||
- [ ] /api/tags [#標籤詳情](#標籤列表)
|
- [ ] /api/tags [#標籤詳情](#標籤列表)
|
||||||
- [ ] /api/users [#用戶詳情](#用戶列表)
|
- [ ] /api/users [#用戶詳情](#用戶列表)
|
||||||
- [ ] /api/tasks [#任務詳情](#任務列表)
|
- [ ] /api/tasks [#任務詳情](#任務列表)
|
||||||
@@ -16,6 +17,7 @@ ai 繪圖服務端(快速重構)
|
|||||||
- [ ] /api/params [#參數列表](#參數列表)
|
- [ ] /api/params [#參數列表](#參數列表)
|
||||||
|
|
||||||
列表接口-請求方式
|
列表接口-請求方式
|
||||||
|
|
||||||
Method | URL | Info
|
Method | URL | Info
|
||||||
-------|--------------------------------|------------------
|
-------|--------------------------------|------------------
|
||||||
GET | /api/{name} | 分頁:顺序查询
|
GET | /api/{name} | 分頁:顺序查询
|
||||||
@@ -29,6 +31,7 @@ POST | /api/{name} | 篩選:創建新對象
|
|||||||
* 過濾條件有多個的,複寫query(交集)
|
* 過濾條件有多個的,複寫query(交集)
|
||||||
|
|
||||||
詳情接口:
|
詳情接口:
|
||||||
|
|
||||||
- [ ] /api/tags/{tag_id} [#標籤詳情](#標籤詳情)
|
- [ ] /api/tags/{tag_id} [#標籤詳情](#標籤詳情)
|
||||||
- [ ] /api/users/{user_id} [#用戶詳情](#用戶詳情)
|
- [ ] /api/users/{user_id} [#用戶詳情](#用戶詳情)
|
||||||
- [ ] /api/tasks/{task_id} [#任務詳情](#任務詳情)
|
- [ ] /api/tasks/{task_id} [#任務詳情](#任務詳情)
|
||||||
@@ -37,6 +40,7 @@ POST | /api/{name} | 篩選:創建新對象
|
|||||||
- [ ] /api/params/{params_id} [#參數詳情](#參數詳情)
|
- [ ] /api/params/{params_id} [#參數詳情](#參數詳情)
|
||||||
|
|
||||||
詳情接口-請求方式:
|
詳情接口-請求方式:
|
||||||
|
|
||||||
Method | URL | Info
|
Method | URL | Info
|
||||||
-------|--------------------------------|------------------
|
-------|--------------------------------|------------------
|
||||||
GET | /api/{name}/{item_id} | 獲取對象詳情
|
GET | /api/{name}/{item_id} | 獲取對象詳情
|
||||||
@@ -65,7 +69,7 @@ type Model struct {
|
|||||||
TriggerWords string `json:"trigger_words"` // 觸發詞
|
TriggerWords string `json:"trigger_words"` // 觸發詞
|
||||||
BaseModel string `json:"base_model"` // (SD1.5|SD2)
|
BaseModel string `json:"base_model"` // (SD1.5|SD2)
|
||||||
ModelPath string `json:"model_path"` // 模型路徑
|
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)
|
Progress int `json:"progress"` // (0-100)
|
||||||
Image string `json:"image"` // 封面圖片實際地址
|
Image string `json:"image"` // 封面圖片實際地址
|
||||||
Tags string `json:"tags"`
|
Tags string `json:"tags"`
|
||||||
@@ -78,7 +82,7 @@ type Task struct {
|
|||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Type string `json:"type"` // 任務類型(訓練|推理)
|
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)
|
Progress int `json:"progress"` // 任務進度(0-100)
|
||||||
CreatedAt string `json:"created_at"`
|
CreatedAt string `json:"created_at"`
|
||||||
UpdatedAt string `json:"updated_at"`
|
UpdatedAt string `json:"updated_at"`
|
||||||
@@ -264,7 +268,6 @@ POST | /api/models | 創建一個模型
|
|||||||
* 如果未登錄, 返回的結果將過濾掉無權限查看的內容
|
* 如果未登錄, 返回的結果將過濾掉無權限查看的內容
|
||||||
* 如果已登錄, 返回的結果將包含私有的
|
* 如果已登錄, 返回的結果將包含私有的
|
||||||
|
|
||||||
|
|
||||||
POST /api/models
|
POST /api/models
|
||||||
```javascript
|
```javascript
|
||||||
// 發送數據
|
// 發送數據
|
||||||
@@ -306,9 +309,15 @@ PATCH /api/models/{model_id}
|
|||||||
```javascript
|
```javascript
|
||||||
{
|
{
|
||||||
name: 'xxx', // 修改模型名稱
|
name: 'xxx', // 修改模型名稱
|
||||||
|
status: 'ready', // (initial|ready|waiting|running|success|error)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
* 修改指定字段, 只傳遞需要修改的字段
|
* 修改指定字段, 只傳遞需要修改的字段
|
||||||
|
* status 初始默認爲 'initial', 修改爲 'ready' 即就緒狀態, 服務器將爲此任務自動排期
|
||||||
|
* 當模型訓練任務被加入等待隊列時, 其狀態自動變更爲 'waiting'
|
||||||
|
* 當模型訓練任務被執行時, 其狀態自動變更爲 'running', 並開始更新進度條 Progress
|
||||||
|
* 當模型訓練完成時狀態自動變更爲'success', 失敗時爲'error'
|
||||||
|
* 訓練中的模型將被鎖定, 無法修改刪除等操作
|
||||||
|
|
||||||
DELETE /api/models/{model_id}
|
DELETE /api/models/{model_id}
|
||||||
* 刪除指定模型
|
* 刪除指定模型
|
||||||
|
1
go.mod
1
go.mod
@@ -8,4 +8,5 @@ require (
|
|||||||
github.com/gorilla/mux v1.8.0
|
github.com/gorilla/mux v1.8.0
|
||||||
github.com/gorilla/websocket v1.5.0
|
github.com/gorilla/websocket v1.5.0
|
||||||
github.com/mattn/go-sqlite3 v1.14.16
|
github.com/mattn/go-sqlite3 v1.14.16
|
||||||
|
github.com/russross/blackfriday v1.6.0
|
||||||
)
|
)
|
||||||
|
2
go.sum
2
go.sum
@@ -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/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 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
|
||||||
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
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
14
main.go
@@ -1,16 +1,17 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"runtime"
|
"runtime"
|
||||||
"text/template"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"main/routers"
|
"main/routers"
|
||||||
"main/utils"
|
"main/utils"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/russross/blackfriday"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -35,8 +36,15 @@ func main() {
|
|||||||
|
|
||||||
// 設定路由
|
// 設定路由
|
||||||
r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||||
t, _ := template.ParseFiles("templates/index.html")
|
// 從本地讀取Markdown文件
|
||||||
t.Execute(w, nil)
|
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.ModelsGet).Methods("GET")
|
||||||
r.HandleFunc("/api/models", routers.ModelsPost).Methods("POST")
|
r.HandleFunc("/api/models", routers.ModelsPost).Methods("POST")
|
||||||
|
@@ -12,7 +12,7 @@ type Model struct {
|
|||||||
TriggerWords string `json:"trigger_words"` // 觸發詞
|
TriggerWords string `json:"trigger_words"` // 觸發詞
|
||||||
BaseModel string `json:"base_model"` // (SD1.5|SD2)
|
BaseModel string `json:"base_model"` // (SD1.5|SD2)
|
||||||
ModelPath string `json:"model_path"` // 模型路徑
|
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)
|
Progress int `json:"progress"` // (0-100)
|
||||||
Image string `json:"image"` // 封面圖片實際地址
|
Image string `json:"image"` // 封面圖片實際地址
|
||||||
Tags string `json:"tags"`
|
Tags string `json:"tags"`
|
||||||
|
@@ -9,7 +9,7 @@ type Task struct {
|
|||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Type string `json:"type"` // 任務類型(訓練|推理)
|
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)
|
Progress int `json:"progress"` // (0-100)
|
||||||
CreatedAt string `json:"created_at"`
|
CreatedAt string `json:"created_at"`
|
||||||
UpdatedAt string `json:"updated_at"`
|
UpdatedAt string `json:"updated_at"`
|
||||||
|
@@ -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>
|
|
Reference in New Issue
Block a user