mirror of
https://github.com/chaitin/MonkeyCode.git
synced 2026-02-02 23:03:57 +08:00
Merge pull request #99 from yokowu/feat-model-delete
feat(model): 实现模型删除接口
This commit is contained in:
@@ -1113,6 +1113,37 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"description": "删除模型",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"Model"
|
||||
],
|
||||
"summary": "删除模型",
|
||||
"operationId": "delete-model",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "模型ID",
|
||||
"name": "id",
|
||||
"in": "query",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/web.Resp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/v1/model/check": {
|
||||
@@ -2471,7 +2502,8 @@
|
||||
"BaiZhiCloud",
|
||||
"Hunyuan",
|
||||
"BaiLian",
|
||||
"Volcengine"
|
||||
"Volcengine",
|
||||
"Other"
|
||||
],
|
||||
"allOf": [
|
||||
{
|
||||
@@ -2853,6 +2885,10 @@
|
||||
"description": "是否启用",
|
||||
"type": "boolean"
|
||||
},
|
||||
"is_internal": {
|
||||
"description": "是否内部模型",
|
||||
"type": "boolean"
|
||||
},
|
||||
"model_name": {
|
||||
"description": "模型名称 如: deepseek-v3",
|
||||
"type": "string"
|
||||
@@ -2921,7 +2957,8 @@
|
||||
"BaiZhiCloud",
|
||||
"Hunyuan",
|
||||
"BaiLian",
|
||||
"Volcengine"
|
||||
"Volcengine",
|
||||
"Other"
|
||||
],
|
||||
"allOf": [
|
||||
{
|
||||
@@ -3301,7 +3338,8 @@
|
||||
"BaiZhiCloud",
|
||||
"Hunyuan",
|
||||
"BaiLian",
|
||||
"Volcengine"
|
||||
"Volcengine",
|
||||
"Other"
|
||||
],
|
||||
"allOf": [
|
||||
{
|
||||
|
||||
@@ -14,6 +14,7 @@ type ModelUsecase interface {
|
||||
MyModelList(ctx context.Context, req *MyModelListReq) ([]*Model, error)
|
||||
Create(ctx context.Context, req *CreateModelReq) (*Model, error)
|
||||
Update(ctx context.Context, req *UpdateModelReq) (*Model, error)
|
||||
Delete(ctx context.Context, id string) error
|
||||
Check(ctx context.Context, req *CheckModelReq) (*Model, error)
|
||||
GetTokenUsage(ctx context.Context, modelType consts.ModelType) (*ModelTokenUsageResp, error)
|
||||
InitModel(ctx context.Context) error
|
||||
@@ -25,6 +26,7 @@ type ModelRepo interface {
|
||||
List(ctx context.Context) (*AllModelResp, error)
|
||||
Create(ctx context.Context, m *CreateModelReq) (*db.Model, error)
|
||||
Update(ctx context.Context, id string, fn func(tx *db.Tx, old *db.Model, up *db.ModelUpdateOne) error) (*db.Model, error)
|
||||
Delete(ctx context.Context, id string) error
|
||||
MyModelList(ctx context.Context, req *MyModelListReq) ([]*db.Model, error)
|
||||
ModelUsage(ctx context.Context, ids []uuid.UUID) (map[uuid.UUID]ModelUsage, error)
|
||||
GetTokenUsage(ctx context.Context, modelType consts.ModelType) (*ModelTokenUsageResp, error)
|
||||
|
||||
@@ -27,13 +27,14 @@ func NewModelHandler(
|
||||
g := w.Group("/api/v1/model")
|
||||
g.Use(auth.Auth(), active.Active("admin"))
|
||||
|
||||
g.POST("/check", web.BindHandler(m.Check))
|
||||
g.GET("", web.BaseHandler(m.List))
|
||||
g.POST("", web.BindHandler(m.Create))
|
||||
g.PUT("", web.BindHandler(m.Update))
|
||||
g.GET("/provider/supported", web.BindHandler(m.GetProviderModelList))
|
||||
g.GET("/token-usage", web.BindHandler(m.GetTokenUsage))
|
||||
g.GET("/my", web.BindHandler(m.MyModelList))
|
||||
g.POST("", web.BindHandler(m.Create))
|
||||
g.POST("/check", web.BindHandler(m.Check))
|
||||
g.PUT("", web.BindHandler(m.Update))
|
||||
g.DELETE("", web.BaseHandler(m.Delete))
|
||||
|
||||
return m
|
||||
}
|
||||
@@ -174,6 +175,24 @@ func (h *ModelHandler) GetProviderModelList(c *web.Context, req domain.GetProvid
|
||||
return c.Success(resp)
|
||||
}
|
||||
|
||||
// Delete 删除模型
|
||||
//
|
||||
// @Tags Model
|
||||
// @Summary 删除模型
|
||||
// @Description 删除模型
|
||||
// @ID delete-model
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param id query string true "模型ID"
|
||||
// @Success 200 {object} web.Resp{}
|
||||
// @Router /api/v1/model [delete]
|
||||
func (h *ModelHandler) Delete(c *web.Context) error {
|
||||
if err := h.usecase.Delete(c.Request().Context(), c.QueryParam("id")); err != nil {
|
||||
return err
|
||||
}
|
||||
return c.Success(nil)
|
||||
}
|
||||
|
||||
func (h *ModelHandler) InitModel() error {
|
||||
return h.usecase.InitModel(context.Background())
|
||||
}
|
||||
|
||||
@@ -243,3 +243,11 @@ func (r *ModelRepo) InitModel(ctx context.Context, modelName, modelKey, modelURL
|
||||
SetIsInternal(true).
|
||||
Exec(ctx)
|
||||
}
|
||||
|
||||
func (r *ModelRepo) Delete(ctx context.Context, id string) error {
|
||||
uuidID, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return r.db.Model.DeleteOneID(uuidID).Exec(ctx)
|
||||
}
|
||||
|
||||
@@ -356,3 +356,7 @@ func (m *ModelUsecase) GetProviderModelList(ctx context.Context, req *domain.Get
|
||||
return nil, fmt.Errorf("invalid provider: %s", req.Provider)
|
||||
}
|
||||
}
|
||||
|
||||
func (m *ModelUsecase) Delete(ctx context.Context, id string) error {
|
||||
return m.repo.Delete(ctx, id)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user