refactor(workflow): Move the knowledge component in the Workflow package into the common crossdomain package (#708)

This commit is contained in:
Ryo
2025-08-12 17:10:36 +08:00
committed by GitHub
parent 9ff065cebd
commit b38ab95623
27 changed files with 586 additions and 710 deletions

View File

@@ -19,7 +19,7 @@ package knowledge
import (
"fmt"
"github.com/coze-dev/coze-studio/backend/domain/workflow/crossdomain/knowledge"
"github.com/coze-dev/coze-studio/backend/api/model/crossdomain/knowledge"
)
func convertParsingType(p string) (knowledge.ParseMode, error) {
@@ -52,6 +52,6 @@ func convertRetrievalSearchType(s int64) (knowledge.SearchType, error) {
case 20:
return knowledge.SearchTypeFullText, nil
default:
return "", fmt.Errorf("invalid RetrievalSearchType %v", s)
return 0, fmt.Errorf("invalid RetrievalSearchType %v", s)
}
}

View File

@@ -20,7 +20,8 @@ import (
"context"
"errors"
"github.com/coze-dev/coze-studio/backend/domain/workflow/crossdomain/knowledge"
"github.com/coze-dev/coze-studio/backend/api/model/crossdomain/knowledge"
crossknowledge "github.com/coze-dev/coze-studio/backend/crossdomain/contract/knowledge"
"github.com/coze-dev/coze-studio/backend/domain/workflow/entity"
"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo"
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/canvas/convert"
@@ -50,14 +51,10 @@ func (d *DeleterConfig) Adapt(_ context.Context, n *vo.Node, _ ...nodes.AdaptOpt
}
func (d *DeleterConfig) Build(_ context.Context, _ *schema.NodeSchema, _ ...schema.BuildOption) (any, error) {
return &Deleter{
knowledgeDeleter: knowledge.GetKnowledgeOperator(),
}, nil
return &Deleter{}, nil
}
type Deleter struct {
knowledgeDeleter knowledge.KnowledgeOperator
}
type Deleter struct{}
func (k *Deleter) Invoke(ctx context.Context, input map[string]any) (map[string]any, error) {
documentID, ok := input["documentID"].(string)
@@ -69,7 +66,7 @@ func (k *Deleter) Invoke(ctx context.Context, input map[string]any) (map[string]
DocumentID: documentID,
}
response, err := k.knowledgeDeleter.Delete(ctx, req)
response, err := crossknowledge.DefaultSVC().Delete(ctx, req)
if err != nil {
return nil, err
}

View File

@@ -26,7 +26,8 @@ import (
"github.com/spf13/cast"
"github.com/coze-dev/coze-studio/backend/domain/workflow/crossdomain/knowledge"
"github.com/coze-dev/coze-studio/backend/api/model/crossdomain/knowledge"
crossknowledge "github.com/coze-dev/coze-studio/backend/crossdomain/contract/knowledge"
"github.com/coze-dev/coze-studio/backend/domain/workflow/entity"
"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo"
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/canvas/convert"
@@ -109,7 +110,6 @@ func (i *IndexerConfig) Build(_ context.Context, _ *schema.NodeSchema, _ ...sche
knowledgeID: i.KnowledgeID,
parsingStrategy: i.ParsingStrategy,
chunkingStrategy: i.ChunkingStrategy,
knowledgeIndexer: knowledge.GetKnowledgeOperator(),
}, nil
}
@@ -117,7 +117,6 @@ type Indexer struct {
knowledgeID int64
parsingStrategy *knowledge.ParsingStrategy
chunkingStrategy *knowledge.ChunkingStrategy
knowledgeIndexer knowledge.KnowledgeOperator
}
func (k *Indexer) Invoke(ctx context.Context, input map[string]any) (map[string]any, error) {
@@ -141,7 +140,7 @@ func (k *Indexer) Invoke(ctx context.Context, input map[string]any) (map[string]
FileExtension: ext,
}
response, err := k.knowledgeIndexer.Store(ctx, req)
response, err := crossknowledge.DefaultSVC().Store(ctx, req)
if err != nil {
return nil, err
}

View File

@@ -22,7 +22,8 @@ import (
"github.com/spf13/cast"
"github.com/coze-dev/coze-studio/backend/domain/workflow/crossdomain/knowledge"
"github.com/coze-dev/coze-studio/backend/api/model/crossdomain/knowledge"
crossknowledge "github.com/coze-dev/coze-studio/backend/crossdomain/contract/knowledge"
"github.com/coze-dev/coze-studio/backend/domain/workflow/entity"
"github.com/coze-dev/coze-studio/backend/domain/workflow/entity/vo"
"github.com/coze-dev/coze-studio/backend/domain/workflow/internal/canvas/convert"
@@ -155,14 +156,12 @@ func (r *RetrieveConfig) Build(_ context.Context, _ *schema.NodeSchema, _ ...sch
return &Retrieve{
knowledgeIDs: r.KnowledgeIDs,
retrievalStrategy: r.RetrievalStrategy,
retriever: knowledge.GetKnowledgeOperator(),
}, nil
}
type Retrieve struct {
knowledgeIDs []int64
retrievalStrategy *knowledge.RetrievalStrategy
retriever knowledge.KnowledgeOperator
}
func (kr *Retrieve) Invoke(ctx context.Context, input map[string]any) (map[string]any, error) {
@@ -172,20 +171,20 @@ func (kr *Retrieve) Invoke(ctx context.Context, input map[string]any) (map[strin
}
req := &knowledge.RetrieveRequest{
Query: query,
KnowledgeIDs: kr.knowledgeIDs,
RetrievalStrategy: kr.retrievalStrategy,
Query: query,
KnowledgeIDs: kr.knowledgeIDs,
Strategy: kr.retrievalStrategy,
}
response, err := kr.retriever.Retrieve(ctx, req)
response, err := crossknowledge.DefaultSVC().Retrieve(ctx, req)
if err != nil {
return nil, err
}
result := make(map[string]any)
result[outputList] = slices.Transform(response.Slices, func(m *knowledge.Slice) any {
result[outputList] = slices.Transform(response.RetrieveSlices, func(m *knowledge.RetrieveSlice) any {
return map[string]any{
"documentId": m.DocumentID,
"output": m.Output,
"documentId": m.Slice.DocumentID,
"output": m.Slice.GetSliceContent(),
}
})