|
|
@ -19,6 +19,8 @@ package knowledge |
|
|
|
import ( |
|
|
|
import ( |
|
|
|
"context" |
|
|
|
"context" |
|
|
|
"errors" |
|
|
|
"errors" |
|
|
|
|
|
|
|
"fmt" |
|
|
|
|
|
|
|
"strconv" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/coze-dev/coze-studio/backend/api/model/crossdomain/knowledge" |
|
|
|
"github.com/coze-dev/coze-studio/backend/api/model/crossdomain/knowledge" |
|
|
|
crossknowledge "github.com/coze-dev/coze-studio/backend/crossdomain/contract/knowledge" |
|
|
|
crossknowledge "github.com/coze-dev/coze-studio/backend/crossdomain/contract/knowledge" |
|
|
@ -27,9 +29,12 @@ import ( |
|
|
|
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/canvas/convert" |
|
|
|
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/canvas/convert" |
|
|
|
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/nodes" |
|
|
|
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/nodes" |
|
|
|
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/schema" |
|
|
|
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/schema" |
|
|
|
|
|
|
|
"github.com/spf13/cast" |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
type DeleterConfig struct{} |
|
|
|
type DeleterConfig struct { |
|
|
|
|
|
|
|
KnowledgeID int64 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (d *DeleterConfig) Adapt(_ context.Context, n *vo.Node, _ ...nodes.AdaptOption) (*schema.NodeSchema, error) { |
|
|
|
func (d *DeleterConfig) Adapt(_ context.Context, n *vo.Node, _ ...nodes.AdaptOption) (*schema.NodeSchema, error) { |
|
|
|
ns := &schema.NodeSchema{ |
|
|
|
ns := &schema.NodeSchema{ |
|
|
@ -39,6 +44,18 @@ func (d *DeleterConfig) Adapt(_ context.Context, n *vo.Node, _ ...nodes.AdaptOpt |
|
|
|
Configs: d, |
|
|
|
Configs: d, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inputs := n.Data.Inputs |
|
|
|
|
|
|
|
datasetListInfoParam := inputs.DatasetParam[0] |
|
|
|
|
|
|
|
datasetIDs := datasetListInfoParam.Input.Value.Content.([]any) |
|
|
|
|
|
|
|
if len(datasetIDs) == 0 { |
|
|
|
|
|
|
|
return nil, fmt.Errorf("dataset ids is required") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
knowledgeID, err := cast.ToInt64E(datasetIDs[0]) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
return nil, err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
d.KnowledgeID = knowledgeID |
|
|
|
|
|
|
|
|
|
|
|
if err := convert.SetInputsForNodeSchema(n, ns); err != nil { |
|
|
|
if err := convert.SetInputsForNodeSchema(n, ns); err != nil { |
|
|
|
return nil, err |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
} |
|
|
@ -51,19 +68,29 @@ func (d *DeleterConfig) Adapt(_ context.Context, n *vo.Node, _ ...nodes.AdaptOpt |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (d *DeleterConfig) Build(_ context.Context, _ *schema.NodeSchema, _ ...schema.BuildOption) (any, error) { |
|
|
|
func (d *DeleterConfig) Build(_ context.Context, _ *schema.NodeSchema, _ ...schema.BuildOption) (any, error) { |
|
|
|
return &Deleter{}, nil |
|
|
|
return &Deleter{ |
|
|
|
|
|
|
|
KnowledgeID: d.KnowledgeID, |
|
|
|
|
|
|
|
}, nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
type Deleter struct{} |
|
|
|
type Deleter struct { |
|
|
|
|
|
|
|
KnowledgeID int64 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (k *Deleter) Invoke(ctx context.Context, input map[string]any) (map[string]any, error) { |
|
|
|
func (d *Deleter) Invoke(ctx context.Context, input map[string]any) (map[string]any, error) { |
|
|
|
documentID, ok := input["documentID"].(string) |
|
|
|
documentID, ok := input["documentID"].(string) |
|
|
|
if !ok { |
|
|
|
if !ok { |
|
|
|
return nil, errors.New("documentID is required and must be a string") |
|
|
|
return nil, errors.New("documentID is required and must be a string") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docID, err := strconv.ParseInt(documentID, 10, 64) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
return nil, fmt.Errorf("invalid document id: %s", documentID) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
req := &knowledge.DeleteDocumentRequest{ |
|
|
|
req := &knowledge.DeleteDocumentRequest{ |
|
|
|
DocumentID: documentID, |
|
|
|
DocumentID: docID, |
|
|
|
|
|
|
|
KnowledgeID: d.KnowledgeID, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
response, err := crossknowledge.DefaultSVC().Delete(ctx, req) |
|
|
|
response, err := crossknowledge.DefaultSVC().Delete(ctx, req) |
|
|
|