Skip to main content

make_answer

Function make_answer 

Source
pub fn make_answer(
    question: &Question,
    value: AnswerValue,
    probabilities: Probabilities,
    explicit_confidence: Option<f64>,
) -> Result<Answer, Error>
Expand description

Validate a provider candidate and centrally apply ties and confidence thresholds.

A valid response below the threshold is successful but undecided; its probabilities remain available for inspection.

use semantic_operators::{AnswerValue, Boolean, IndexMap, Question, make_answer};
let question = Question::from(Boolean::new("Does this need review?")?
    .with_min_confidence(0.8)?);
let probabilities = IndexMap::from([("true".into(), 0.7), ("false".into(), 0.3)]);
let answer = make_answer(&question, AnswerValue::Boolean(true), probabilities, None)?
    .typed::<bool>()?;
assert_eq!(answer.value(), None);
assert_eq!(answer.confidence(), 0.7);
assert_eq!(answer.probabilities()["true"], 0.7);

ยงErrors

Returns InvalidResponse for a mismatched value type, invalid or incomplete probabilities, disagreement between the value and distribution, or invalid Box confidence. Ties and insufficient confidence produce a successful undecided answer rather than an error.