25 lines
791 B
Go
25 lines
791 B
Go
package service
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
|
||
|
|
apperrors "github.com/Tencent/WeKnora/internal/errors"
|
||
|
|
"github.com/Tencent/WeKnora/internal/types"
|
||
|
|
)
|
||
|
|
|
||
|
|
func (s *customAgentService) validateFusionAgents(ctx context.Context, agent *types.CustomAgent) error {
|
||
|
|
if err := agent.Config.ValidateFusion(agent.ID); err != nil {
|
||
|
|
return apperrors.NewBadRequestError(err.Error())
|
||
|
|
}
|
||
|
|
for _, id := range agent.Config.FusionAgentIDs {
|
||
|
|
target, err := s.GetAgentByID(ctx, id)
|
||
|
|
if err != nil || target == nil || target.TenantID != agent.TenantID || !target.Enabled {
|
||
|
|
return apperrors.NewBadRequestError("融合 Agent 不存在、已停用或无权使用")
|
||
|
|
}
|
||
|
|
if target.Config.Role != types.AgentRoleProduction {
|
||
|
|
return apperrors.NewBadRequestError("只能融合内容生产 Agent")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|