get knowledge base text embedding dimension from llm
This commit is contained in:
parent
3fd7f749ca
commit
09137ff8e7
|
|
@ -8,7 +8,7 @@ public class TextEmbeddingProvider : ITextEmbedding
|
|||
protected readonly IServiceProvider _services;
|
||||
protected readonly ILogger<TextEmbeddingProvider> _logger;
|
||||
|
||||
private const int DEFAULT_DIMENSION = 3072;
|
||||
private const int DEFAULT_DIMENSION = 1536;
|
||||
protected string _model;
|
||||
protected int _dimension;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
using BotSharp.Abstraction.Settings;
|
||||
|
||||
namespace BotSharp.Plugin.KnowledgeBase.Helpers;
|
||||
|
||||
public static class KnowledgeSettingHelper
|
||||
|
|
@ -12,8 +14,22 @@ public static class KnowledgeSettingHelper
|
|||
}
|
||||
|
||||
var embedding = services.GetServices<ITextEmbedding>().FirstOrDefault(x => x.Provider == found.Provider);
|
||||
var dimension = found.Dimension;
|
||||
|
||||
if (found.Dimension <= 0)
|
||||
{
|
||||
dimension = GetLlmTextEmbeddingDimension(services, found.Provider, found.Model);
|
||||
}
|
||||
|
||||
embedding.SetModelName(found.Model);
|
||||
embedding.SetDimension(found.Dimension);
|
||||
embedding.SetDimension(dimension);
|
||||
return embedding;
|
||||
}
|
||||
|
||||
private static int GetLlmTextEmbeddingDimension(IServiceProvider services, string provider, string model)
|
||||
{
|
||||
var settings = services.GetRequiredService<ILlmProviderService>();
|
||||
var found = settings.GetSetting(provider, model);
|
||||
return found?.Dimension ?? 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ public class TextEmbeddingProvider : ITextEmbedding
|
|||
protected readonly IServiceProvider _services;
|
||||
protected readonly ILogger<TextEmbeddingProvider> _logger;
|
||||
|
||||
private const int DEFAULT_DIMENSION = 3072;
|
||||
private const int DEFAULT_DIMENSION = 1536;
|
||||
protected string _model = "text-embedding-3-large";
|
||||
protected int _dimension = DEFAULT_DIMENSION;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue