evaluate method
Future<EvaluationResult>
evaluate(
- Iterable<
ChatMessage> messages, - ChatResponse modelResponse, {
- ChatConfiguration? chatConfiguration,
- Iterable<
EvaluationContext> ? additionalContext, - CancellationToken? cancellationToken,
override
Evaluates modelResponse and returns an EvaluationResult.
messages is the full conversation history that produced
modelResponse. chatConfiguration is required when the evaluator
itself uses an AI model. additionalContext provides domain-specific
context beyond what is in messages.
Implementation
@override
Future<EvaluationResult> evaluate(
Iterable<ChatMessage> messages,
ChatResponse modelResponse, {
ChatConfiguration? chatConfiguration,
Iterable<EvaluationContext>? additionalContext,
CancellationToken? cancellationToken,
}) async {
final results = await Future.wait(
_evaluators.map((e) => _safeEvaluate(
e,
messages,
modelResponse,
chatConfiguration: chatConfiguration,
additionalContext: additionalContext,
cancellationToken: cancellationToken,
)),
);
final merged = EvaluationResult();
for (final result in results) {
result.metrics.forEach((k, v) => merged.metrics[k] = v);
}
return merged;
}