首次提交by MimoCode
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
from typing import Optional
|
||||
from app.ai.base import VisionProvider, TextProvider
|
||||
|
||||
|
||||
class AIManager:
|
||||
_instance = None
|
||||
|
||||
def __new__(cls):
|
||||
if cls._instance is None:
|
||||
cls._instance = super().__new__(cls)
|
||||
cls._instance._initialized = False
|
||||
return cls._instance
|
||||
|
||||
def __init__(self):
|
||||
if self._initialized:
|
||||
return
|
||||
self.vision_providers: dict[str, VisionProvider] = {}
|
||||
self.text_providers: dict[str, TextProvider] = {}
|
||||
self._initialized = True
|
||||
|
||||
def register_vision_provider(self, name: str, provider: VisionProvider):
|
||||
self.vision_providers[name] = provider
|
||||
|
||||
def register_text_provider(self, name: str, provider: TextProvider):
|
||||
self.text_providers[name] = provider
|
||||
|
||||
def get_vision_provider(self, name: str) -> Optional[VisionProvider]:
|
||||
return self.vision_providers.get(name)
|
||||
|
||||
def get_text_provider(self, name: str) -> Optional[TextProvider]:
|
||||
return self.text_providers.get(name)
|
||||
|
||||
|
||||
ai_manager = AIManager()
|
||||
Reference in New Issue
Block a user