|
- package models
-
- import (
- "fmt"
-
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting"
- "code.gitea.io/gitea/modules/timeutil"
- "xorm.io/builder"
- )
-
- type AiModelManage struct {
- ID string `xorm:"pk"`
- Name string `xorm:"NOT NULL"`
- Version string `xorm:"NOT NULL"`
- Parent string `xorm:"NOT NULL"`
- Type int `xorm:"NOT NULL"`
- Size int64 `xorm:"NOT NULL"`
- Description string `xorm:"varchar(2000)"`
- Label string `xorm:"varchar(1000)"`
- Path string `xorm:"varchar(400) NOT NULL"`
- ConfigJson string `xorm:"text"`
- DownloadCount int `xorm:"NOT NULL DEFAULT 0"`
- Engine int `xorm:"NOT NULL DEFAULT 0"`
- Status int `xorm:"NOT NULL DEFAULT 0"`
- Accuracy string `xorm:"varchar(1000)"`
- AttachmentId string `xorm:"NULL"`
- RepoId int64 `xorm:"NULL"`
- CodeBranch string `xorm:"varchar(400) NULL"`
- CodeCommitID string `xorm:"NULL"`
- UserId int64 `xorm:"NOT NULL"`
- TrainTaskInfo string `xorm:"text NULL"`
- CreatedUnix timeutil.TimeStamp `xorm:"created"`
- UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
- }
-
- type AiModelQueryOptions struct {
- ListOptions
- RepoID int64 // include all repos if empty
- UserID int64
- ModelID string
- SortType string
- // JobStatus CloudbrainStatus
- Type int
- }
-
- func SaveModelToDb(model *AiModelManage) error {
- sess := x.NewSession()
- defer sess.Close()
-
- re, err := sess.Insert(model)
- if err != nil {
- return err
- }
- log.Info("success to save db.re=" + fmt.Sprint((re)))
- return nil
- }
-
- func QueryModelById(id string) (*AiModelManage, error) {
- sess := x.NewSession()
- defer sess.Close()
- sess.Select("*").Table("ai_model_manage").
- Where("id='" + id + "'")
- aiModelManageList := make([]*AiModelManage, 0)
- err := sess.Find(&aiModelManageList)
- if err != nil {
- if len(aiModelManageList) == 1 {
- return aiModelManageList[0], nil
- }
- }
- return nil, err
- }
-
- func DeleteModelById(id string) error {
- sess := x.NewSession()
- defer sess.Close()
-
- re, err := sess.Delete(&AiModelManage{
- ID: id,
- })
- if err != nil {
- return err
- }
- log.Info("success to delete from db.re=" + fmt.Sprint((re)))
- return nil
-
- }
-
- func QueryModelByName(name string, uid int64) []*AiModelManage {
- sess := x.NewSession()
- defer sess.Close()
- sess.Select("*").Table("ai_model_manage").
- Where("name='" + name + "' and user_id=" + fmt.Sprint(uid))
- aiModelManageList := make([]*AiModelManage, 0)
- sess.Find(&aiModelManageList)
- return aiModelManageList
- }
-
- func QueryModel(opts *AiModelQueryOptions) ([]*AiModelManage, int64, error) {
- sess := x.NewSession()
- defer sess.Close()
-
- var cond = builder.NewCond()
- if opts.RepoID > 0 {
- cond = cond.And(
- builder.Eq{"ai_model_manage.repo_id": opts.RepoID},
- )
- }
-
- if opts.UserID > 0 {
- cond = cond.And(
- builder.Eq{"ai_model_manage.user_id": opts.UserID},
- )
- }
-
- if len(opts.ModelID) > 0 {
- cond = cond.And(
- builder.Eq{"ai_model_manage.id": opts.ModelID},
- )
- }
-
- if (opts.Type) >= 0 {
- cond = cond.And(
- builder.Eq{"ai_model_manage.type": opts.Type},
- )
- }
-
- count, err := sess.Where(cond).Count(new(AiModelManage))
- if err != nil {
- return nil, 0, fmt.Errorf("Count: %v", err)
- }
-
- if opts.Page >= 0 && opts.PageSize > 0 {
- var start int
- if opts.Page == 0 {
- start = 0
- } else {
- start = (opts.Page - 1) * opts.PageSize
- }
- sess.Limit(opts.PageSize, start)
- }
-
- sess.OrderBy("ai_model_manage.created_unix DESC")
- aiModelManages := make([]*AiModelManage, 0, setting.UI.IssuePagingNum)
- if err := sess.Table("ai_model_manage").Where(cond).
- Find(&aiModelManages); err != nil {
- return nil, 0, fmt.Errorf("Find: %v", err)
- }
- sess.Close()
-
- return aiModelManages, count, nil
- }
|