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.