forked from JointCloud/pcm-coordinator
95 lines
2.1 KiB
Go
95 lines
2.1 KiB
Go
package textInference
|
|
|
|
import (
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/scheduler/database"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/scheduler/schedulers/option"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/scheduler/service/inference"
|
|
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
|
|
)
|
|
|
|
type ITextInference interface {
|
|
SaveAiTask(id int64, adapterName string) error
|
|
UpdateStatus(aiTaskList []*models.TaskAi, adapterName string) error
|
|
GetAiType() string
|
|
}
|
|
|
|
type FilteredCluster struct {
|
|
urls []*inference.InferUrl
|
|
clusterId string
|
|
clusterName string
|
|
clusterType string
|
|
}
|
|
|
|
type TextInference struct {
|
|
inference ITextInference
|
|
opt *option.InferOption
|
|
storage *database.AiStorage
|
|
errMap map[string]string
|
|
adapterName string
|
|
}
|
|
|
|
func New(
|
|
inference ITextInference,
|
|
opt *option.InferOption,
|
|
storage *database.AiStorage,
|
|
adapterName string) (*TextInference, error) {
|
|
return &TextInference{
|
|
inference: inference,
|
|
opt: opt,
|
|
storage: storage,
|
|
adapterName: adapterName,
|
|
errMap: make(map[string]string),
|
|
}, nil
|
|
}
|
|
|
|
func (ti *TextInference) CreateTask() (int64, error) {
|
|
id, err := ti.saveTask()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
err = ti.saveAiTask(id)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return id, nil
|
|
}
|
|
|
|
func (ti *TextInference) InferTask(id int64) error {
|
|
aiTaskList, err := ti.storage.GetAiTaskListById(id)
|
|
if err != nil || len(aiTaskList) == 0 {
|
|
return err
|
|
}
|
|
err = ti.updateStatus(aiTaskList)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (ti *TextInference) saveTask() (int64, error) {
|
|
var synergystatus int64
|
|
var strategyCode int64
|
|
|
|
id, err := ti.storage.SaveTask(ti.opt.TaskName, strategyCode, synergystatus, ti.inference.GetAiType())
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return id, nil
|
|
}
|
|
|
|
func (ti *TextInference) saveAiTask(id int64) error {
|
|
err := ti.inference.SaveAiTask(id, ti.adapterName)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (ti *TextInference) updateStatus(aiTaskList []*models.TaskAi) error {
|
|
err := ti.inference.UpdateStatus(aiTaskList, ti.adapterName)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|