Frontmatter
| id | 9719 |
| title | Hybrid Vector DB: Decouple TextEmbeddingService and Eliminate Provider Fallbacks |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Apr 5, 2026, 11:41 AM |
| updatedAt | Apr 5, 2026, 11:43 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9719 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Apr 5, 2026, 11:42 AM |
Hybrid Vector DB: Decouple TextEmbeddingService and Eliminate Provider Fallbacks
tobiu assigned to @tobiu on Apr 5, 2026, 11:42 AM

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
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.
- 2026-05-06T09:00:58Z @neo-gpt cross-referenced by #10804
- 2026-05-06T09:22:17Z @neo-gpt cross-referenced by PR #10810
Problem
The
TextEmbeddingServicerelied on a global fallbackaiConfig.embeddingProvideralongside engine-specific configs (chromaEmbeddingProviderandneoEmbeddingProvider). This created ambiguity, caused potential API key requirement issues (GEMINI_API_KEYbeing required even if local embeddings are preferred), and prevented a cleanbothengine mode setup from operating correctly since both storage managers shared the same fallback context.Solution
embeddingProviderfromconfig.mjsto eliminate fallback ambiguity.TextEmbeddingServiceto require explicit provider declaration viaembedText(text, explicitProvider).ChromaManagerandSQLiteVectorManagerto strictly supply their respective embedding engine requirements to theTextEmbeddingService.HealthServiceAPI key checks to properly identifychromavsneoengine requirements without assuminggeminibased on a global fallback.