feat: Semantische Suche über Chat-History (memory_search)
- Lokales Embedding-Model (all-MiniLM-L6-v2, ONNX, CPU) - EmbeddingService: WordPiece-Tokenizer + Mean Pooling (384 Dim) - VectorSearchService: SQLite-basierte Vektor-Speicherung + Cosine Similarity - EmbeddingBackgroundService: Backfill bestehender Messages + Live-Queue - Neues Tool memory_search: Semantische Suche über alle Sessions (inkl. archivierte) - ~9000 Messages embedded, Suche über komplette Chat-History
This commit is contained in:
1 parent
baf53b7dac
commit
add111ffe1
9 files changed
+727
-15
No files matched your search
+12
-1
@@ -43,6 +43,15 @@ var reminderInterval = builder.Configuration.GetValue<int>("ReminderInterval", 3
|
||||
var chatService = new ChatService(dbService, toolService, memoryService, skillService, maxHistory, reminderInterval);
|
||||
builder.Services.AddSingleton(chatService);
|
||||
|
||||
// Embedding-Services (lokal, ONNX)
|
||||
var embeddingService = new Gott.Services.EmbeddingService();
|
||||
builder.Services.AddSingleton(embeddingService);
|
||||
var vectorSearchService = new Gott.Services.VectorSearchService(dbPath, embeddingService);
|
||||
builder.Services.AddSingleton(vectorSearchService);
|
||||
var embeddingBgService = new Gott.Services.EmbeddingBackgroundService(vectorSearchService, embeddingService, dbPath);
|
||||
builder.Services.AddSingleton(embeddingBgService);
|
||||
builder.Services.AddHostedService(sp => sp.GetRequiredService<Gott.Services.EmbeddingBackgroundService>());
|
||||
|
||||
// AnthropicService (Singleton – shared zwischen ChatEndpoint und TelegramService)
|
||||
var anthropicToken = builder.Configuration["AnthropicToken"] ?? "";
|
||||
var payloadLogging = builder.Configuration.GetValue<bool>("PayloadLogging", false);
|
||||
@@ -51,7 +60,9 @@ builder.Services.AddSingleton<AnthropicService>(sp =>
|
||||
new AnthropicService(
|
||||
sp.GetRequiredService<IHttpClientFactory>(),
|
||||
anthropicToken, toolService, dbService, memoryService,
|
||||
payloadLogging, payloadLoggingGzip));
|
||||
payloadLogging, payloadLoggingGzip,
|
||||
vectorSearch: vectorSearchService,
|
||||
embeddingBg: embeddingBgService));
|
||||
|
||||
// Telegram Bot (pro Session – Token aus Session-Config)
|
||||
var maxIterations = builder.Configuration.GetValue<int>("MaxIterations", 100);
|
||||
|
||||
Reference in new issue
Block a user