github.com/weaviate/weaviate@v1.24.6/adapters/handlers/graphql/local/get/explore_argument.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 get
    13  
    14  import (
    15  	"fmt"
    16  
    17  	"github.com/tailor-inc/graphql"
    18  	"github.com/weaviate/weaviate/adapters/handlers/graphql/local/common_filters"
    19  
    20  	"github.com/weaviate/weaviate/adapters/handlers/graphql/descriptions"
    21  )
    22  
    23  func nearVectorArgument(className string) *graphql.ArgumentConfig {
    24  	return common_filters.NearVectorArgument("GetObjects", className)
    25  }
    26  
    27  func nearObjectArgument(className string) *graphql.ArgumentConfig {
    28  	return common_filters.NearObjectArgument("GetObjects", className)
    29  }
    30  
    31  func nearTextFields(prefix string) graphql.InputObjectConfigFieldMap {
    32  	nearTextFields := graphql.InputObjectConfigFieldMap{
    33  		"concepts": &graphql.InputObjectFieldConfig{
    34  			// Description: descriptions.Concepts,
    35  			Type: graphql.NewNonNull(graphql.NewList(graphql.String)),
    36  		},
    37  		"moveTo": &graphql.InputObjectFieldConfig{
    38  			Description: descriptions.VectorMovement,
    39  			Type: graphql.NewInputObject(
    40  				graphql.InputObjectConfig{
    41  					Name:   fmt.Sprintf("%sMoveTo", prefix),
    42  					Fields: movementInp(fmt.Sprintf("%sMoveTo", prefix)),
    43  				}),
    44  		},
    45  		"certainty": &graphql.InputObjectFieldConfig{
    46  			Description: descriptions.Certainty,
    47  			Type:        graphql.Float,
    48  		},
    49  		"distance": &graphql.InputObjectFieldConfig{
    50  			Description: descriptions.Distance,
    51  			Type:        graphql.Float,
    52  		},
    53  		"moveAwayFrom": &graphql.InputObjectFieldConfig{
    54  			Description: descriptions.VectorMovement,
    55  			Type: graphql.NewInputObject(
    56  				graphql.InputObjectConfig{
    57  					Name:   fmt.Sprintf("%sMoveAwayFrom", prefix),
    58  					Fields: movementInp(fmt.Sprintf("%sMoveAwayFrom", prefix)),
    59  				}),
    60  		},
    61  	}
    62  	return nearTextFields
    63  }
    64  
    65  func movementInp(prefix string) graphql.InputObjectConfigFieldMap {
    66  	return graphql.InputObjectConfigFieldMap{
    67  		"concepts": &graphql.InputObjectFieldConfig{
    68  			Description: descriptions.Keywords,
    69  			Type:        graphql.NewList(graphql.String),
    70  		},
    71  		"objects": &graphql.InputObjectFieldConfig{
    72  			Description: "objects",
    73  			Type:        graphql.NewList(objectsInpObj(prefix)),
    74  		},
    75  		"force": &graphql.InputObjectFieldConfig{
    76  			Description: descriptions.Force,
    77  			Type:        graphql.NewNonNull(graphql.Float),
    78  		},
    79  	}
    80  }
    81  
    82  func objectsInpObj(prefix string) *graphql.InputObject {
    83  	return graphql.NewInputObject(
    84  		graphql.InputObjectConfig{
    85  			Name: fmt.Sprintf("%sMovementObjectsInpObj", prefix),
    86  			Fields: graphql.InputObjectConfigFieldMap{
    87  				"id": &graphql.InputObjectFieldConfig{
    88  					Type:        graphql.String,
    89  					Description: "id of an object",
    90  				},
    91  				"beacon": &graphql.InputObjectFieldConfig{
    92  					Type:        graphql.String,
    93  					Description: descriptions.Beacon,
    94  				},
    95  			},
    96  			Description: "Movement Object",
    97  		},
    98  	)
    99  }