From 38bf2cdf4ee1fde7fc0cfe21a42a2ffba1598d2c Mon Sep 17 00:00:00 2001 From: hchen2020 <101423@smsassist.com> Date: Tue, 15 Aug 2023 12:21:04 -0500 Subject: [PATCH] Add GetVectors batch interface. --- .../BotSharp.Abstraction/MLTasks/ITextEmbedding.cs | 1 + .../Plugins/LLamaSharp/TextEmbeddingProvider.cs | 5 +++++ .../Providers/fastTextEmbeddingProvider.cs | 11 +++++++++++ 3 files changed, 17 insertions(+) diff --git a/src/Infrastructure/BotSharp.Abstraction/MLTasks/ITextEmbedding.cs b/src/Infrastructure/BotSharp.Abstraction/MLTasks/ITextEmbedding.cs index eb82f086..8a0df8a5 100644 --- a/src/Infrastructure/BotSharp.Abstraction/MLTasks/ITextEmbedding.cs +++ b/src/Infrastructure/BotSharp.Abstraction/MLTasks/ITextEmbedding.cs @@ -4,4 +4,5 @@ public interface ITextEmbedding { int Dimension { get; } float[] GetVector(string text); + List GetVectors(List texts); } diff --git a/src/Infrastructure/BotSharp.Core/Plugins/LLamaSharp/TextEmbeddingProvider.cs b/src/Infrastructure/BotSharp.Core/Plugins/LLamaSharp/TextEmbeddingProvider.cs index daa1ee8d..5608971a 100644 --- a/src/Infrastructure/BotSharp.Core/Plugins/LLamaSharp/TextEmbeddingProvider.cs +++ b/src/Infrastructure/BotSharp.Core/Plugins/LLamaSharp/TextEmbeddingProvider.cs @@ -26,4 +26,9 @@ public class TextEmbeddingProvider : ITextEmbedding return _embedder.GetEmbeddings(text); } + + public List GetVectors(List texts) + { + throw new NotImplementedException(); + } } diff --git a/src/Plugins/BotSharp.Plugin.MetaAI/Providers/fastTextEmbeddingProvider.cs b/src/Plugins/BotSharp.Plugin.MetaAI/Providers/fastTextEmbeddingProvider.cs index 6ca628da..f1141a56 100644 --- a/src/Plugins/BotSharp.Plugin.MetaAI/Providers/fastTextEmbeddingProvider.cs +++ b/src/Plugins/BotSharp.Plugin.MetaAI/Providers/fastTextEmbeddingProvider.cs @@ -1,6 +1,7 @@ using BotSharp.Abstraction.MLTasks; using BotSharp.Plugin.MetaAI.Settings; using FastText.NetWrapper; +using System.Collections.Generic; using System.IO; namespace BotSharp.Plugin.MetaAI.Providers; @@ -42,4 +43,14 @@ public class fastTextEmbeddingProvider : ITextEmbedding return _fastText.GetSentenceVector(text); } + + public List GetVectors(List texts) + { + var vectors = new List(); + for (int i = 0; i < texts.Count; i++) + { + vectors.Add(GetVector(texts[i])); + } + return vectors; + } }