evaluate method

Future<EvaluationResult> evaluate({
  1. String? prompt,
  2. required String question,
  3. required String answer,
  4. int attempts = 3,
})

Implementation

Future<EvaluationResult> evaluate({String? prompt, required String question, required String answer, int attempts = 3}) async {
  final response = await client.simpleQuery(
    prompt: prompt ?? evaluationPrompt,
    contexts: [
      Context(name: 'question', value: question),
      Context(name: 'answer', value: answer),
    ],
  );

  final result = convertToVerificationResult(response);

  if (result == null) {
    if (--attempts == 0) throw Exception('Failed to verify answer');
    print("Remain attempts: $attempts");
    return evaluate(question: question, answer: answer, attempts: attempts);
  } else {
    return result;
  }
}