20 lines
612 B
Python
20 lines
612 B
Python
from .embedding_providers import (
|
|
EmbeddingProvider,
|
|
OpenAIEmbeddingProvider,
|
|
GeminiEmbeddingProvider,
|
|
OllamaEmbeddingProvider
|
|
)
|
|
|
|
|
|
class EmbeddingProviderFactory:
|
|
@staticmethod
|
|
def create_provider(config : dict[str, any])->EmbeddingProvider:
|
|
backend_url = config["backend_url"]
|
|
|
|
if "generativelanguage.googleapis.com" in backend_url:
|
|
return GeminiEmbeddingProvider(backend_url)
|
|
elif "localhost:11434" in backend_url:
|
|
return OllamaEmbeddingProvider(backend_url)
|
|
else:
|
|
return OpenAIEmbeddingProvider(backend_url)
|
|
|