-
Notifications
You must be signed in to change notification settings - Fork 45
Description
Is your feature request related to a problem? Please describe.
LocalMind currently integrates multiple AI providers (Ollama, Gemini, OpenAI, Groq, RouterAI), but provider selection and usage are handled directly inside services based on configuration or explicit model names.
As the platform grows, this leads to:
Tight coupling between business logic and provider implementations
Repeated conditional logic across services (chat, RAG, analytics, agents)
Difficulty adding new providers or switching models dynamically
No centralized way to reason about model capabilities (local, fast, multimodal, RAG-ready, etc.)
This is not a bug, but a design limitation that affects scalability, maintainability, and long-term evolution of the platform.
Describe the solution you'd like
Introduce a Unified AI Provider Abstraction Layer with Capability-Based Routing.
Key ideas:
Define a common AIProvider interface implemented by all providers
Each provider declares supported capabilities (e.g. local, cloud, fast_inference, rag_supported, multimodal)
Add a central AIProviderRegistry to register and expose providers
Introduce an AIRequestRouter that selects the best provider based on:
required capabilities
user preferences (privacy, speed, cost)
availability and fallback rules
This allows services to request AI behavior by intent and capability, not by hard-coded provider names.
Describe alternatives you've considered
Continuing with configuration-based provider selection per service
Adding conditional logic (if/else) for each new provider
Hard-coding model selection in controllers
These approaches work short-term but increase technical debt and make the system harder to scale or extend.
Additional context
This architectural layer would:
Reduce coupling across the backend
Improve developer experience when adding new AI providers
Enable future features like multi-agent orchestration, cost-aware routing, and plugin-based providers
Align with Clean Architecture and SOLID principles already used in LocalMind
This feature addresses a class of problems across the entire AI system and is reusable across chat, RAG, analytics, and future modules.