batchComplete method

Future<List<CompletionResponse>> batchComplete(
  1. List<String> prompts, {
  2. String? model,
  3. int? maxTokens,
  4. double? temperature,
  5. int? concurrency = 5,
})

Batch complete multiple prompts

Implementation

Future<List<CompletionResponse>> batchComplete(
  List<String> prompts, {
  String? model,
  int? maxTokens,
  double? temperature,
  int? concurrency = 5,
}) async {
  final results = <CompletionResponse>[];

  // Process in batches to avoid overwhelming the API
  final batchSize = concurrency ?? 5;
  for (int i = 0; i < prompts.length; i += batchSize) {
    final batch = prompts.skip(i).take(batchSize);
    final futures = batch.map((prompt) => complete(CompletionRequest(
          prompt: prompt,
          maxTokens: maxTokens,
          temperature: temperature,
        )));

    final batchResults = await Future.wait(futures);
    results.addAll(batchResults);
  }

  return results;
}