package models import ( "log" "main/configs" ) type Model struct { ID int `json:"id" gorm:"primary_key"` Name string `json:"name"` Type string `json:"type"` // (lora|ckp|hyper|ti) TriggerWords string `json:"trigger_words"` // 觸發詞 BaseModel string `json:"base_model"` // (SD1.5|SD2) ModelPath string `json:"model_path"` // 模型路徑 Status string `json:"status" default:"initial"` // (initial|ready|waiting|running|success|error) Progress int `json:"progress"` // (0-100) Image string `json:"image"` // 封面圖片實際地址 Tags string `json:"tags"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` UserID int `json:"user_id"` } func init() { configs.ORMDB().AutoMigrate(&Model{}) } func (model *Model) SendToTrain() error { db, err := configs.GetDB() if err != nil { log.Println(err) return err } defer db.Close() stmt, err := db.Prepare("UPDATE models SET status = ?, progress = ?, updated_at = ? WHERE id = ?") if err != nil { log.Println(err) return err } defer stmt.Close() _, err = stmt.Exec(model.Status, model.Progress, model.UpdatedAt, model.ID) if err != nil { log.Println(err) return err } // TODO: 創建一個新線程管理訓練任務 // 將任務放入隊列中, 將自動回調更新任務狀態 return nil }