generateEmbeddings method

  1. @override
Future<GeneratedEmbeddings> generateEmbeddings({
  1. required Iterable<String> values,
  2. EmbeddingGenerationOptions? options,
  3. CancellationToken? cancellationToken,
})
override

Generates embeddings for the given values.

Implementation

@override
Future<GeneratedEmbeddings> generateEmbeddings({
  required Iterable<String> values,
  EmbeddingGenerationOptions? options,
  CancellationToken? cancellationToken,
}) async {
  if (_logger.isEnabled(LogLevel.debug)) {
    _logger.logDebug('generateEmbeddings invoked.');
  }

  if (_logger.isEnabled(LogLevel.trace)) {
    _logger.logTrace(
      'generateEmbeddings invoked. '
      'Values count: ${values.length}. '
      'Options: '
      '${options != null ? _asJson(_optionsToMap(options)) : 'null'}.',
    );
  }

  try {
    final result = await super.generateEmbeddings(
      values: values,
      options: options,
      cancellationToken: cancellationToken,
    );

    if (_logger.isEnabled(LogLevel.debug)) {
      _logger.logDebug('generateEmbeddings completed.');
    }

    if (_logger.isEnabled(LogLevel.trace)) {
      _logger.logTrace(
        'generateEmbeddings completed. '
        'Embeddings count: ${result.length}.',
      );
    }

    return result;
  } on OperationCanceledException {
    if (_logger.isEnabled(LogLevel.debug)) {
      _logger.logDebug('generateEmbeddings canceled.');
    }
    rethrow;
  } catch (e) {
    _logger.logError('generateEmbeddings failed.', error: e);
    rethrow;
  }
}