feat: remove priority field from skill definition and related services
This commit is contained in:
Vendored
+2
-3
@@ -83,9 +83,8 @@ func buildSeedItems() []models.SkillDefinition {
|
|||||||
"graph/create_ticket_with_confirmation",
|
"graph/create_ticket_with_confirmation",
|
||||||
"graph/handoff_to_human"
|
"graph/handoff_to_human"
|
||||||
]`,
|
]`,
|
||||||
Priority: 100,
|
Status: enums.StatusOk,
|
||||||
Status: enums.StatusOk,
|
Remark: "after-sales escalation skill",
|
||||||
Remark: "after-sales escalation skill",
|
|
||||||
AuditFields: models.AuditFields{
|
AuditFields: models.AuditFields{
|
||||||
CreatedAt: now,
|
CreatedAt: now,
|
||||||
CreateUserID: 0,
|
CreateUserID: 0,
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ func BuildSkillDefinitionResponse(item *models.SkillDefinition) response.SkillDe
|
|||||||
Instruction: item.Instruction,
|
Instruction: item.Instruction,
|
||||||
Examples: examples,
|
Examples: examples,
|
||||||
ToolWhitelist: toolWhitelist,
|
ToolWhitelist: toolWhitelist,
|
||||||
Priority: item.Priority,
|
|
||||||
Status: int(item.Status),
|
Status: int(item.Status),
|
||||||
StatusName: getSkillStatusName(item.Status),
|
StatusName: getSkillStatusName(item.Status),
|
||||||
Remark: item.Remark,
|
Remark: item.Remark,
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func (c *SkillDefinitionController) AnyList() *web.JsonResult {
|
|||||||
params.QueryFilter{ParamName: "status"},
|
params.QueryFilter{ParamName: "status"},
|
||||||
params.QueryFilter{ParamName: "name", Op: params.Like},
|
params.QueryFilter{ParamName: "name", Op: params.Like},
|
||||||
params.QueryFilter{ParamName: "code", Op: params.Like},
|
params.QueryFilter{ParamName: "code", Op: params.Like},
|
||||||
).Asc("priority").Desc("id")
|
).Desc("id")
|
||||||
list, paging := services.SkillDefinitionService.FindPageByCnd(cnd)
|
list, paging := services.SkillDefinitionService.FindPageByCnd(cnd)
|
||||||
results := make([]response.SkillDefinitionResponse, 0, len(list))
|
results := make([]response.SkillDefinitionResponse, 0, len(list))
|
||||||
for _, item := range list {
|
for _, item := range list {
|
||||||
@@ -45,7 +45,7 @@ func (c *SkillDefinitionController) GetList_all() *web.JsonResult {
|
|||||||
|
|
||||||
list := services.SkillDefinitionService.Find(params.NewSqlCnd(c.Ctx,
|
list := services.SkillDefinitionService.Find(params.NewSqlCnd(c.Ctx,
|
||||||
params.QueryFilter{ParamName: "status"},
|
params.QueryFilter{ParamName: "status"},
|
||||||
).Asc("priority").Desc("id"))
|
).Desc("id"))
|
||||||
results := make([]response.SkillDefinitionResponse, 0, len(list))
|
results := make([]response.SkillDefinitionResponse, 0, len(list))
|
||||||
for _, item := range list {
|
for _, item := range list {
|
||||||
results = append(results, builders.BuildSkillDefinitionResponse(&item))
|
results = append(results, builders.BuildSkillDefinitionResponse(&item))
|
||||||
@@ -156,21 +156,6 @@ func (c *SkillDefinitionController) PostDelete() *web.JsonResult {
|
|||||||
return web.JsonSuccess()
|
return web.JsonSuccess()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *SkillDefinitionController) PostUpdate_priority() *web.JsonResult {
|
|
||||||
if _, err := services.AuthService.RequirePermission(c.Ctx, constants.PermissionSkillDefinitionUpdate); err != nil {
|
|
||||||
return web.JsonError(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var ids []int64
|
|
||||||
if err := c.Ctx.ReadJSON(&ids); err != nil {
|
|
||||||
return web.JsonError(err)
|
|
||||||
}
|
|
||||||
if err := services.SkillDefinitionService.UpdatePriority(ids); err != nil {
|
|
||||||
return web.JsonError(err)
|
|
||||||
}
|
|
||||||
return web.JsonSuccess()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *SkillDefinitionController) PostDebug_run() *web.JsonResult {
|
func (c *SkillDefinitionController) PostDebug_run() *web.JsonResult {
|
||||||
if _, err := services.AuthService.RequirePermission(c.Ctx, constants.PermissionSkillDefinitionView); err != nil {
|
if _, err := services.AuthService.RequirePermission(c.Ctx, constants.PermissionSkillDefinitionView); err != nil {
|
||||||
return web.JsonError(err)
|
return web.JsonError(err)
|
||||||
|
|||||||
@@ -912,7 +912,6 @@ type SkillDefinition struct {
|
|||||||
Instruction string `gorm:"type:longtext"` // Instruction 为 Skill 的主体说明文档存储字段,使用 Markdown 编写,供 Agent 理解任务目标、步骤和工具使用要求。
|
Instruction string `gorm:"type:longtext"` // Instruction 为 Skill 的主体说明文档存储字段,使用 Markdown 编写,供 Agent 理解任务目标、步骤和工具使用要求。
|
||||||
Examples string `gorm:"type:text"` // Examples 为示例问法 JSON 数组字符串。
|
Examples string `gorm:"type:text"` // Examples 为示例问法 JSON 数组字符串。
|
||||||
ToolWhitelist string `gorm:"type:text"` // ToolWhitelist 为允许使用的工具编码 JSON 数组字符串。
|
ToolWhitelist string `gorm:"type:text"` // ToolWhitelist 为允许使用的工具编码 JSON 数组字符串。
|
||||||
Priority int `gorm:"type:int;not null;default:0;index"` // Priority 为 Skill 命中冲突时的优先级,数值越大优先级越高。
|
|
||||||
Status enums.Status `gorm:"type:int;not null;default:0;index"` // Status 为 Skill 当前状态,使用全局通用状态:0启用 1禁用 2删除。
|
Status enums.Status `gorm:"type:int;not null;default:0;index"` // Status 为 Skill 当前状态,使用全局通用状态:0启用 1禁用 2删除。
|
||||||
Remark string `gorm:"type:text"` // Remark 为后台备注,用于记录配置说明、维护信息或内部协作信息。
|
Remark string `gorm:"type:text"` // Remark 为后台备注,用于记录配置说明、维护信息或内部协作信息。
|
||||||
AuditFields
|
AuditFields
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ type CreateSkillDefinitionRequest struct {
|
|||||||
Instruction string `json:"instruction"`
|
Instruction string `json:"instruction"`
|
||||||
Examples []string `json:"examples"`
|
Examples []string `json:"examples"`
|
||||||
ToolWhitelist []string `json:"toolWhitelist"`
|
ToolWhitelist []string `json:"toolWhitelist"`
|
||||||
Priority int `json:"priority"`
|
|
||||||
Remark string `json:"remark"`
|
Remark string `json:"remark"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,24 +75,6 @@ func (s *skillDefinitionService) Delete(id int64) {
|
|||||||
repositories.SkillDefinitionRepository.Delete(sqls.DB(), id)
|
repositories.SkillDefinitionRepository.Delete(sqls.DB(), id)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *skillDefinitionService) NextPriority() int {
|
|
||||||
if max := repositories.SkillDefinitionRepository.FindOne(sqls.DB(), sqls.NewCnd().Desc("priority").Desc("id")); max != nil {
|
|
||||||
return max.Priority + 1
|
|
||||||
}
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *skillDefinitionService) UpdatePriority(ids []int64) error {
|
|
||||||
return sqls.WithTransaction(func(ctx *sqls.TxContext) error {
|
|
||||||
for i, id := range ids {
|
|
||||||
if err := repositories.SkillDefinitionRepository.UpdateColumn(ctx.Tx, id, "priority", i+1); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *skillDefinitionService) GetByCode(code string) *models.SkillDefinition {
|
func (s *skillDefinitionService) GetByCode(code string) *models.SkillDefinition {
|
||||||
return repositories.SkillDefinitionRepository.GetByCode(sqls.DB(), code)
|
return repositories.SkillDefinitionRepository.GetByCode(sqls.DB(), code)
|
||||||
}
|
}
|
||||||
@@ -115,14 +97,10 @@ func (s *skillDefinitionService) CreateSkillDefinition(req request.CreateSkillDe
|
|||||||
Instruction: normalized.Instruction,
|
Instruction: normalized.Instruction,
|
||||||
Examples: mustMarshalSkillStringArray(normalized.Examples),
|
Examples: mustMarshalSkillStringArray(normalized.Examples),
|
||||||
ToolWhitelist: mustMarshalSkillStringArray(normalized.ToolWhitelist),
|
ToolWhitelist: mustMarshalSkillStringArray(normalized.ToolWhitelist),
|
||||||
Priority: normalized.Priority,
|
|
||||||
Status: enums.StatusOk,
|
Status: enums.StatusOk,
|
||||||
Remark: normalized.Remark,
|
Remark: normalized.Remark,
|
||||||
AuditFields: utils.BuildAuditFields(operator),
|
AuditFields: utils.BuildAuditFields(operator),
|
||||||
}
|
}
|
||||||
if item.Priority <= 0 {
|
|
||||||
item.Priority = s.NextPriority()
|
|
||||||
}
|
|
||||||
if err := repositories.SkillDefinitionRepository.Create(sqls.DB(), item); err != nil {
|
if err := repositories.SkillDefinitionRepository.Create(sqls.DB(), item); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -154,7 +132,6 @@ func (s *skillDefinitionService) UpdateSkillDefinition(req request.UpdateSkillDe
|
|||||||
"instruction": normalized.Instruction,
|
"instruction": normalized.Instruction,
|
||||||
"examples": mustMarshalSkillStringArray(normalized.Examples),
|
"examples": mustMarshalSkillStringArray(normalized.Examples),
|
||||||
"tool_whitelist": mustMarshalSkillStringArray(normalized.ToolWhitelist),
|
"tool_whitelist": mustMarshalSkillStringArray(normalized.ToolWhitelist),
|
||||||
"priority": resolveSkillPriorityForService(normalized.Priority, current.Priority),
|
|
||||||
"remark": normalized.Remark,
|
"remark": normalized.Remark,
|
||||||
"update_user_id": operator.UserID,
|
"update_user_id": operator.UserID,
|
||||||
"update_user_name": operator.Username,
|
"update_user_name": operator.Username,
|
||||||
@@ -168,7 +145,6 @@ func (s *skillDefinitionService) normalizeSkillDefinitionRequest(req request.Cre
|
|||||||
Name: strings.TrimSpace(req.Name),
|
Name: strings.TrimSpace(req.Name),
|
||||||
Description: strings.TrimSpace(req.Description),
|
Description: strings.TrimSpace(req.Description),
|
||||||
Instruction: strings.TrimSpace(req.Instruction),
|
Instruction: strings.TrimSpace(req.Instruction),
|
||||||
Priority: normalizeSkillPriorityForService(req.Priority),
|
|
||||||
Remark: strings.TrimSpace(req.Remark),
|
Remark: strings.TrimSpace(req.Remark),
|
||||||
}
|
}
|
||||||
if normalized.Code == "" {
|
if normalized.Code == "" {
|
||||||
@@ -235,18 +211,3 @@ func mustMarshalSkillStringArray(input []string) string {
|
|||||||
}
|
}
|
||||||
return string(buf)
|
return string(buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
func normalizeSkillPriorityForService(priority int) int {
|
|
||||||
if priority < 0 {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
return priority
|
|
||||||
}
|
|
||||||
|
|
||||||
func resolveSkillPriorityForService(input, current int) int {
|
|
||||||
input = normalizeSkillPriorityForService(input)
|
|
||||||
if input <= 0 {
|
|
||||||
return current
|
|
||||||
}
|
|
||||||
return input
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user