dart_vector_embedding 0.1.1
dart_vector_embedding: ^0.1.1 copied to clipboard
Cross-platform Dart Native GGUF embeddings via llama.cpp with shared per-model concurrency and native async callbacks.
import 'dart:typed_data';
import 'package:dart_vector_embedding/dart_vector_embedding.dart';
Future<void> main() async {
final embedder = await Embedder.open(
modelPath: 'models/embeddinggemma-300M-qat-Q4_0.gguf',
outDim: 256,
);
try {
final query = await embedder.embed(
'Which planet is known as the Red Planet?',
);
final docs = await embedder.embedBatch([
"Venus is often called Earth's twin.",
'Mars, the reddish planet, is the Red Planet.',
]);
for (final (i, d) in docs.indexed) {
print('doc $i cosine=${cosine(query, d).toStringAsFixed(4)}');
}
} finally {
await embedder.close();
}
}
double cosine(Float32List a, Float32List b) {
var dot = 0.0;
for (var i = 0; i < a.length; i++) {
dot += a[i] * b[i];
}
return dot;
}