package controller import ( "context" "model-gateway/model/dto" "model-gateway/model/entity" "model-gateway/service" "gitea.com/red-future/common/beans" ) type model struct{} // Model 模型配置控制器 var Model = new(model) // CreateModel 添加配置 func (c *model) CreateModel(ctx context.Context, req *dto.CreateModelReq) (res *dto.CreateModelRes, err error) { return service.Model.Create(ctx, req) } // UpdateModel 更改配置 func (c *model) UpdateModel(ctx context.Context, req *dto.UpdateModelReq) (res *beans.ResponseEmpty, err error) { err = service.Model.Update(ctx, req) return } // DeleteModel 删除配置 func (c *model) DeleteModel(ctx context.Context, req *dto.DeleteModelReq) (res *beans.ResponseEmpty, err error) { err = service.Model.Delete(ctx, req.ID) return } // GetModel 获取配置详情(按 modelName) func (c *model) GetModel(ctx context.Context, req *dto.GetModelReq) (res *dto.GetModelRes, err error) { model, err := service.Model.Get(ctx, req.ID) if err != nil { return nil, err } if model == nil { return nil, nil } return &dto.GetModelRes{Model: model}, nil } // ListModel 配置列表 func (c *model) ListModel(ctx context.Context, req *dto.ListModelReq) (res *dto.ListModelRes, err error) { list, total, err := service.Model.List(ctx, req) if err != nil { return nil, err } return &dto.ListModelRes{ List: list, Total: total, }, nil } // AutoTune 动态调参(由上层定时任务每小时触发一次) func (c *model) AutoTune(ctx context.Context, req *dto.AutoTuneReq) (res *dto.AutoTuneRes, err error) { windowSeconds := 3600 if req != nil && req.WindowSeconds > 0 { windowSeconds = req.WindowSeconds } list, err := service.AutoTune(ctx, windowSeconds) if err != nil { return nil, err } return &dto.AutoTuneRes{List: list}, nil } func (c *model) ListType(ctx context.Context, req *dto.ListTypeReq) (res dto.TypeItem, err error) { modelType := service.GetModelTypesFromConfig(ctx) res.Type = modelType return res, nil } // UpdateChatModel 更新是否为聊天模型 func (c *model) UpdateChatModel(ctx context.Context, req *dto.UpdateChatModelReq) (res *beans.ResponseEmpty, err error) { err = service.Model.UpdateChatModel(ctx, req) return } // GetIsChatModel 获取是否为聊天模型 func (c *model) GetIsChatModel(ctx context.Context, req *dto.GetIsChatModelReq) (res *entity.AsynchModel, err error) { return service.Model.GetIsChatModel(ctx) }