Skip to content

Instantly share code, notes, and snippets.

@arafattehsin
Created October 27, 2023 21:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arafattehsin/64abaf16c534ee246d28f24a4dd5a679 to your computer and use it in GitHub Desktop.
Save arafattehsin/64abaf16c534ee246d28f24a4dd5a679 to your computer and use it in GitHub Desktop.
// Get embeddings of an riddle / landmark answer
public async Task<IList<ReadOnlyMemory<float>>> GetEmbeddings(string answer)
{
return await textEmbeddingGeneration.GenerateEmbeddingsAsync(new List<string> { answer });
}
// Calculate Cosine Similarity between two answers
public async Task<double> CalculateSimilarity(IList<ReadOnlyMemory<float>> origEmbedding, string guessedAnswer)
{
try
{
var guessEmbedding = await GetEmbeddings(guessedAnswer);
var similarity = origEmbedding.First().Span.CosineSimilarity(guessEmbedding.First().Span);
return Math.Round(similarity, 2) * 100;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment