findSimilar method
Finds all functions with similarity above threshold.
Returns a list of (functionId, similarity) pairs sorted by similarity descending.
Implementation
List<SimilarityResult> findSimilar(
List<double> queryEmbedding, {
double threshold = 0.85,
int limit = 10,
String? excludeId,
}) {
final results = <SimilarityResult>[];
for (final entry in _cache.entries) {
if (entry.key == excludeId) continue;
final similarity = OnnxRuntime.cosineSimilarity(
queryEmbedding,
entry.value.embedding,
);
if (similarity >= threshold) {
results.add(SimilarityResult(
functionId: entry.key,
similarity: similarity,
));
}
}
// Sort by similarity descending
results.sort((a, b) => b.similarity.compareTo(a.similarity));
// Apply limit
if (results.length > limit) {
return results.sublist(0, limit);
}
return results;
}