| @@ -0,0 +1,45 @@ | |||||
| using LLama.Common; | |||||
| namespace LLama.Unittest; | |||||
| public class LLamaEmbedderTests | |||||
| : IDisposable | |||||
| { | |||||
| private readonly LLamaEmbedder _embedder = new(new ModelParams("Models/llama-2-7b-chat.ggmlv3.q3_K_S.bin")); | |||||
| public void Dispose() | |||||
| { | |||||
| _embedder.Dispose(); | |||||
| } | |||||
| private static float Dot(float[] a, float[] b) | |||||
| { | |||||
| Assert.Equal(a.Length, b.Length); | |||||
| return a.Zip(b, (x, y) => x + y).Sum(); | |||||
| } | |||||
| [Fact] | |||||
| public void EmbedHello() | |||||
| { | |||||
| var hello = _embedder.GetEmbeddings("Hello"); | |||||
| Assert.NotNull(hello); | |||||
| Assert.NotEmpty(hello); | |||||
| //Assert.Equal(_embedder.EmbeddingSize, hello.Length); | |||||
| } | |||||
| [Fact] | |||||
| public void EmbedCompare() | |||||
| { | |||||
| var cat = _embedder.GetEmbeddings("cat"); | |||||
| var kitten = _embedder.GetEmbeddings("kitten"); | |||||
| var spoon = _embedder.GetEmbeddings("spoon"); | |||||
| Console.WriteLine(string.Join(",", cat)); | |||||
| var close = Dot(cat, kitten); | |||||
| var far = Dot(cat, spoon); | |||||
| Assert.True(close < far); | |||||
| } | |||||
| } | |||||