frimeet-api-nlp / app /shared /dependencies.py
AlleksDev's picture
Use Spanish FastText embeddings with pgvector
0d02fb4 unverified
Raw
History Blame Contribute Delete
999 Bytes
from functools import lru_cache
from app.shared.cache.memory import SimpleTTLCache
from app.shared.config.settings import get_settings
from app.shared.nlp.embeddings.base import EmbeddingProvider
from app.shared.nlp.embeddings.cached import CachedEmbeddingProvider
from app.shared.nlp.embeddings.factory import create_embedding_provider
from app.shared.nlp.llm.base import LLMProvider
from app.shared.nlp.llm.groq_llama import GroqLlamaProvider
from app.shared.nlp.llm.mock import MockLLMProvider
@lru_cache
def get_embedding_provider() -> EmbeddingProvider:
settings = get_settings()
return CachedEmbeddingProvider(
provider=create_embedding_provider(settings),
cache=SimpleTTLCache(default_ttl_seconds=settings.embedding_cache_ttl_seconds),
)
@lru_cache
def get_llm_provider() -> LLMProvider:
settings = get_settings()
if settings.groq_api_key:
return GroqLlamaProvider(settings=settings)
return MockLLMProvider(model_name=settings.groq_model)