LearnNewsExamplesServices
Frontmatter
id9719
titleHybrid Vector DB: Decouple TextEmbeddingService and Eliminate Provider Fallbacks
stateClosed
labels
enhancementai
assigneestobiu
createdAtApr 5, 2026, 11:41 AM
updatedAtApr 5, 2026, 11:43 AM
githubUrlhttps://github.com/neomjs/neo/issues/9719
authortobiu
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtApr 5, 2026, 11:42 AM

Hybrid Vector DB: Decouple TextEmbeddingService and Eliminate Provider Fallbacks

Closedenhancementai
tobiu
tobiu commented on Apr 5, 2026, 11:41 AM

Problem

The TextEmbeddingService relied on a global fallback aiConfig.embeddingProvider alongside engine-specific configs (chromaEmbeddingProvider and neoEmbeddingProvider). This created ambiguity, caused potential API key requirement issues (GEMINI_API_KEY being required even if local embeddings are preferred), and prevented a clean both engine mode setup from operating correctly since both storage managers shared the same fallback context.

Solution

  • Removed the global embeddingProvider from config.mjs to eliminate fallback ambiguity.
  • Refactored TextEmbeddingService to require explicit provider declaration via embedText(text, explicitProvider).
  • Updated ChromaManager and SQLiteVectorManager to strictly supply their respective embedding engine requirements to the TextEmbeddingService.
  • Corrected HealthService API key checks to properly identify chroma vs neo engine requirements without assuming gemini based on a global fallback.
tobiu added the enhancement label on Apr 5, 2026, 11:41 AM
tobiu added the ai label on Apr 5, 2026, 11:41 AM
tobiu referenced in commit 6b95c8f - "refactor(ai): Hybrid Vector DB: Decouple TextEmbeddingService and Eliminate Provider Fallbacks (#9719)" on Apr 5, 2026, 11:42 AM
tobiu assigned to @tobiu on Apr 5, 2026, 11:42 AM
tobiu
tobiu Apr 5, 2026, 11:42 AM

Fix committed locally and pushed to the repository. The implementation removes the global fallback and enforces rigorous provider configurations in , ensuring deterministic routing in engine setups.

tobiu closed this issue on Apr 5, 2026, 11:42 AM
tobiu
tobiu Apr 5, 2026, 11:43 AM

Fix committed locally and pushed to the repository. The implementation removes the global embeddingProvider fallback and enforces rigorous provider configurations in TextEmbeddingService, ensuring deterministic routing in both engine setups.