github.com/weaviate/weaviate@v1.24.6/modules/ner-transformers/additional/provider.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 additional 13 14 import ( 15 "context" 16 17 "github.com/weaviate/weaviate/entities/moduletools" 18 19 "github.com/tailor-inc/graphql" 20 "github.com/tailor-inc/graphql/language/ast" 21 "github.com/weaviate/weaviate/entities/modulecapabilities" 22 "github.com/weaviate/weaviate/entities/search" 23 ) 24 25 type AdditionalProperty interface { 26 AdditionalPropertyFn(ctx context.Context, 27 in []search.Result, params interface{}, limit *int, 28 argumentModuleParams map[string]interface{}, cfg moduletools.ClassConfig) ([]search.Result, error) 29 ExtractAdditionalFn(param []*ast.Argument) interface{} 30 AdditionalPropertyDefaultValue() interface{} 31 AdditionalFieldFn(classname string) *graphql.Field 32 } 33 34 type GraphQLAdditionalArgumentsProvider struct { 35 tokensProvider AdditionalProperty 36 } 37 38 func New(tokensProvider AdditionalProperty) *GraphQLAdditionalArgumentsProvider { 39 return &GraphQLAdditionalArgumentsProvider{tokensProvider} 40 } 41 42 func (p *GraphQLAdditionalArgumentsProvider) AdditionalProperties() map[string]modulecapabilities.AdditionalProperty { 43 additionalProperties := map[string]modulecapabilities.AdditionalProperty{} 44 additionalProperties["tokens"] = p.getTokens() 45 return additionalProperties 46 } 47 48 func (p *GraphQLAdditionalArgumentsProvider) getTokens() modulecapabilities.AdditionalProperty { 49 return modulecapabilities.AdditionalProperty{ 50 GraphQLNames: []string{"tokens"}, 51 GraphQLFieldFunction: p.tokensProvider.AdditionalFieldFn, 52 GraphQLExtractFunction: p.tokensProvider.ExtractAdditionalFn, 53 SearchFunctions: modulecapabilities.AdditionalSearch{ 54 ExploreGet: p.tokensProvider.AdditionalPropertyFn, 55 ExploreList: p.tokensProvider.AdditionalPropertyFn, 56 }, 57 } 58 }