embeddingResultFromNative function

EmbeddingResult embeddingResultFromNative(
  1. MpEmbeddingResult value
)

Converts a native embedding result before its owner is released.

Implementation

EmbeddingResult embeddingResultFromNative(bindings.MpEmbeddingResult value) {
  final List<Embedding> embeddings = List<Embedding>.generate(value.embeddings_count, (int index) {
    final bindings.MpEmbedding embedding = value.embeddings[index];
    final String? headName = nativeString(embedding.head_name);
    if (embedding.float_embedding != ffi.nullptr) {
      return Embedding.float(
        Float32List.fromList(embedding.float_embedding.asTypedList(embedding.values_count)),
        headIndex: embedding.head_index,
        headName: headName,
      );
    }
    return Embedding.quantized(
      Uint8List.fromList(
        embedding.quantized_embedding.cast<ffi.Uint8>().asTypedList(embedding.values_count),
      ),
      headIndex: embedding.head_index,
      headName: headName,
    );
  }, growable: false);
  return EmbeddingResult(
    embeddings: embeddings,
    timestampMs: value.has_timestamp_ms ? value.timestamp_ms : null,
  );
}