Spaces:
Running
Running
// _ _ | |
// __ _____ __ ___ ___ __ _| |_ ___ | |
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ | |
// \ V V / __/ (_| |\ V /| | (_| | || __/ | |
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| | |
// | |
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. | |
// | |
// CONTACT: [email protected] | |
// | |
package ask | |
import ( | |
"github.com/pkg/errors" | |
) | |
type AskParams struct { | |
Question string | |
Certainty float64 | |
Distance float64 | |
WithDistance bool | |
Properties []string | |
Autocorrect bool | |
} | |
func (n AskParams) GetCertainty() float64 { | |
return n.Certainty | |
} | |
func (n AskParams) GetDistance() float64 { | |
return n.Distance | |
} | |
func (n AskParams) SimilarityMetricProvided() bool { | |
return n.Certainty != 0 || n.WithDistance | |
} | |
func (g *GraphQLArgumentsProvider) validateAskFn(param interface{}) error { | |
ask, ok := param.(*AskParams) | |
if !ok { | |
return errors.New("'ask' invalid parameter") | |
} | |
if len(ask.Question) == 0 { | |
return errors.Errorf("'ask.question' needs to be defined") | |
} | |
if ask.Certainty != 0 && ask.WithDistance { | |
return errors.Errorf( | |
"nearText cannot provide both distance and certainty") | |
} | |
return nil | |
} | |