mirror of
https://github.com/DrizzleTime/Foxel.git
synced 2026-07-20 03:52:18 +08:00
feat: Support multiple vector database selection, add InMemory and Qdrant adapters, introduce admin dashboard
This commit is contained in:
30
Services/VectorDb/VectorDbInitializer.cs
Normal file
30
Services/VectorDb/VectorDbInitializer.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Foxel.Services.Configuration;
|
||||
|
||||
namespace Foxel.Services.VectorDB;
|
||||
|
||||
public class VectorDbInitializer : IHostedService
|
||||
{
|
||||
private readonly IVectorDbService _vectorDbService;
|
||||
private readonly IConfigService _configService;
|
||||
private const string VectorDbTypeConfigKey = "VectorDb:Type";
|
||||
|
||||
public VectorDbInitializer(IVectorDbService vectorDbService, IConfigService configService)
|
||||
{
|
||||
_vectorDbService = vectorDbService;
|
||||
_configService = configService;
|
||||
}
|
||||
|
||||
public async Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var dbTypeStr = await _configService.GetValueAsync(VectorDbTypeConfigKey) ?? "InMemory";
|
||||
if (string.Equals(dbTypeStr, "InMemory", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
await _vectorDbService.BuildUserPictureVectorsAsync();
|
||||
}
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user