github.com/weaviate/weaviate@v1.24.6/modules/sum-transformers/additional/summary/summary.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package summary 13 14 import ( 15 "context" 16 "errors" 17 18 "github.com/tailor-inc/graphql" 19 "github.com/tailor-inc/graphql/language/ast" 20 "github.com/weaviate/weaviate/entities/moduletools" 21 "github.com/weaviate/weaviate/entities/search" 22 "github.com/weaviate/weaviate/modules/sum-transformers/ent" 23 ) 24 25 type sumClient interface { 26 GetSummary(ctx context.Context, property, text string) ([]ent.SummaryResult, error) 27 } 28 29 type SummaryProvider struct { 30 sum sumClient 31 } 32 33 func New(sum sumClient) *SummaryProvider { 34 return &SummaryProvider{sum} 35 } 36 37 func (p *SummaryProvider) AdditionalPropertyDefaultValue() interface{} { 38 return &Params{} 39 } 40 41 func (p *SummaryProvider) ExtractAdditionalFn(param []*ast.Argument) interface{} { 42 return p.parseSummaryArguments(param) 43 } 44 45 func (p *SummaryProvider) AdditionalFieldFn(classname string) *graphql.Field { 46 return p.additionalSummaryField(classname) 47 } 48 49 func (p *SummaryProvider) AdditionalPropertyFn(ctx context.Context, 50 in []search.Result, params interface{}, limit *int, 51 argumentModuleParams map[string]interface{}, cfg moduletools.ClassConfig, 52 ) ([]search.Result, error) { 53 if parameters, ok := params.(*Params); ok { 54 return p.findSummary(ctx, in, parameters) 55 } 56 return nil, errors.New("wrong parameters") 57 }