evaluateAndStreamResults method

Stream<EvaluationResult> evaluateAndStreamResults(
  1. Iterable<ChatMessage> messages,
  2. ChatResponse modelResponse, {
  3. ChatConfiguration? chatConfiguration,
  4. Iterable<EvaluationContext>? additionalContext,
  5. CancellationToken? cancellationToken,
})

Streams results as each evaluator completes.

Implementation

Stream<EvaluationResult> evaluateAndStreamResults(
  Iterable<ChatMessage> messages,
  ChatResponse modelResponse, {
  ChatConfiguration? chatConfiguration,
  Iterable<EvaluationContext>? additionalContext,
  CancellationToken? cancellationToken,
}) async* {
  final futures = _evaluators
      .map((e) => _safeEvaluate(
            e,
            messages,
            modelResponse,
            chatConfiguration: chatConfiguration,
            additionalContext: additionalContext,
            cancellationToken: cancellationToken,
          ))
      .toList();

  for (final future in futures) {
    yield await future;
  }
}