Goal: Further simplify DatabaseService.mjs by extracting the embedding generation and vector database upsert logic into a dedicated service.
Current State:
embedKnowledgeBase is a complex method (~160 lines) that mixes:
- Business Logic: Calculating class inheritance chains, hashing chunks, and diffing against the existing database.
- Integration Logic: Interacting with the Google Generative AI API for embeddings and the ChromaDB client for storage.
Proposed Architecture:
- Create a new service (e.g.,
services/VectorService.mjs or services/EmbeddingService.mjs).
- Move the heavy lifting of the "ETL Load" phase to this service.
Impact:
DatabaseService will become a pure lifecycle manager and orchestrator, delegating:
- Extraction to
source/* providers.
- Loading/Embedding to the new
VectorService.
This completes the separation of concerns for the Knowledge Base.
Goal: Further simplify
DatabaseService.mjsby extracting the embedding generation and vector database upsert logic into a dedicated service.Current State:
embedKnowledgeBaseis a complex method (~160 lines) that mixes:Proposed Architecture:
services/VectorService.mjsorservices/EmbeddingService.mjs).Impact:
DatabaseServicewill become a pure lifecycle manager and orchestrator, delegating:source/*providers.VectorService. This completes the separation of concerns for the Knowledge Base.