mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-05 05:09:40 +00:00
Added local RAG (#756)
Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
1 parent
d043fbc8f0
commit
c7b42bee96
179 files changed
+276977
-1421
No files matched your search
@@ -1,4 +1,5 @@
|
||||
using AIStudio.Provider;
|
||||
using AIStudio.Settings.DataModel;
|
||||
|
||||
namespace AIStudio.Settings;
|
||||
|
||||
@@ -36,6 +37,88 @@ public static class DataSourceSecurityTrustExtensions
|
||||
return provider.Provider is LLMProviders.SELF_HOSTED || IsTrustedProviderId(provider.ConfiguredProviderId, settingsManager);
|
||||
}
|
||||
|
||||
public static ConfidenceLevel GetConfidenceLevel(this Provider provider, SettingsManager settingsManager)
|
||||
{
|
||||
if (provider == Provider.NONE)
|
||||
return ConfidenceLevel.NONE;
|
||||
|
||||
return provider.UsedLLMProvider.GetConfidence(settingsManager).Level;
|
||||
}
|
||||
|
||||
public static ConfidenceLevel GetConfidenceLevel(this EmbeddingProvider provider, SettingsManager settingsManager)
|
||||
{
|
||||
if (provider == EmbeddingProvider.NONE)
|
||||
return ConfidenceLevel.NONE;
|
||||
|
||||
return provider.UsedLLMProvider.GetConfidence(settingsManager).Level;
|
||||
}
|
||||
|
||||
public static ConfidenceLevel GetConfidenceLevel(this IProvider provider, SettingsManager settingsManager)
|
||||
{
|
||||
if (provider is NoProvider)
|
||||
return ConfidenceLevel.NONE;
|
||||
|
||||
return provider.Provider.GetConfidence(settingsManager).Level;
|
||||
}
|
||||
|
||||
public static bool AllowsDataSourceAccess(this Provider provider, SettingsManager settingsManager, DataSourceSecurity dataSourceSecurity, ConfidenceLevel requiredConfidenceLevel)
|
||||
{
|
||||
return provider.AllowsDataSourceSecurity(dataSourceSecurity, settingsManager)
|
||||
&& provider.GetConfidenceLevel(settingsManager).AllowsDataSourceConfidenceLevel(requiredConfidenceLevel);
|
||||
}
|
||||
|
||||
public static bool AllowsDataSourceAccess(this IProvider provider, SettingsManager settingsManager, DataSourceSecurity dataSourceSecurity, ConfidenceLevel requiredConfidenceLevel)
|
||||
{
|
||||
return provider.AllowsDataSourceSecurity(dataSourceSecurity, settingsManager)
|
||||
&& provider.GetConfidenceLevel(settingsManager).AllowsDataSourceConfidenceLevel(requiredConfidenceLevel);
|
||||
}
|
||||
|
||||
public static bool AllowsDataSourceSecurity(this Provider provider, DataSourceSecurity dataSourceSecurity, SettingsManager settingsManager)
|
||||
=> provider.IsTrustedForDataSourceSecurityChecks(settingsManager).AllowsDataSourceSecurity(dataSourceSecurity);
|
||||
|
||||
public static bool AllowsDataSourceSecurity(this IProvider provider, DataSourceSecurity dataSourceSecurity, SettingsManager settingsManager)
|
||||
=> provider.IsTrustedForDataSourceSecurityChecks(settingsManager).AllowsDataSourceSecurity(dataSourceSecurity);
|
||||
|
||||
public static bool AllowsDataSourceSecurity(this bool usingTrustedProvider, DataSourceSecurity dataSourceSecurity) => dataSourceSecurity switch
|
||||
{
|
||||
DataSourceSecurity.ALLOW_ANY => true,
|
||||
DataSourceSecurity.SELF_HOSTED => usingTrustedProvider,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
public static bool AllowsDataSourceConfidenceLevel(this ConfidenceLevel providerConfidenceLevel, ConfidenceLevel requiredConfidenceLevel)
|
||||
{
|
||||
if (requiredConfidenceLevel is ConfidenceLevel.NONE)
|
||||
return true;
|
||||
|
||||
return providerConfidenceLevel >= requiredConfidenceLevel;
|
||||
}
|
||||
|
||||
public static ConfidenceLevel GetRequiredConfidenceLevel(this IEnumerable<IDataSource> dataSources)
|
||||
{
|
||||
var requiredConfidenceLevel = ConfidenceLevel.NONE;
|
||||
foreach (var dataSource in dataSources.OfType<IInternalDataSource>())
|
||||
if (dataSource.ConfidenceLevel > requiredConfidenceLevel)
|
||||
requiredConfidenceLevel = dataSource.ConfidenceLevel;
|
||||
|
||||
return requiredConfidenceLevel;
|
||||
}
|
||||
|
||||
public static DataSourceSecurity GetRequiredSecurityPolicy(this IEnumerable<IDataSource> dataSources)
|
||||
{
|
||||
var requiredSecurityPolicy = DataSourceSecurity.ALLOW_ANY;
|
||||
foreach (var dataSource in dataSources.OfType<IExternalDataSource>())
|
||||
{
|
||||
if (dataSource.SecurityPolicy is DataSourceSecurity.NOT_SPECIFIED)
|
||||
return DataSourceSecurity.NOT_SPECIFIED;
|
||||
|
||||
if (dataSource.SecurityPolicy is DataSourceSecurity.SELF_HOSTED)
|
||||
requiredSecurityPolicy = DataSourceSecurity.SELF_HOSTED;
|
||||
}
|
||||
|
||||
return requiredSecurityPolicy;
|
||||
}
|
||||
|
||||
public static bool IsTrustedByConfiguration(this Provider provider, SettingsManager settingsManager) => IsTrustedProviderId(provider.Id, settingsManager);
|
||||
|
||||
public static bool IsTrustedByConfiguration(this EmbeddingProvider provider, SettingsManager settingsManager) => IsTrustedProviderId(provider.Id, settingsManager);
|
||||
|
||||
Reference in new issue
Block a user