Skip to main content
Glama
juanqui
by juanqui
reranker_factory.py2.08 kB
"""Factory for creating reranker services.""" import logging from typing import Optional from .config import ServerConfig from .exceptions import ConfigurationError from .reranker_base import RerankerService from .reranker_deepinfra import DeepInfraRerankerService from .reranker_local import LocalRerankerService logger = logging.getLogger(__name__) def create_reranker_service(config: ServerConfig) -> Optional[RerankerService]: """Create a reranker service based on configuration. Args: config: Server configuration. Returns: RerankerService instance or None if reranker is disabled. Raises: ConfigurationError: If unable to create reranker service when enabled. """ if not config.enable_reranker: logger.info("Reranker is disabled") return None provider = config.reranker_provider.lower() if provider == "deepinfra": try: logger.info("Creating DeepInfra reranker service") return DeepInfraRerankerService(config) except Exception as e: logger.error(f"Failed to create DeepInfra reranker service: {e}") raise ConfigurationError(f"Failed to create DeepInfra reranker service: {e}") elif provider == "local": try: logger.info("Creating local reranker service") return LocalRerankerService(config) except Exception as e: logger.error(f"Failed to create local reranker service: {e}") raise ConfigurationError(f"Failed to create local reranker service: {e}") else: raise ConfigurationError(f"Unknown reranker provider: {provider}. Supported: 'local', 'deepinfra'") def get_reranker_service(config: ServerConfig) -> Optional[RerankerService]: """Get or create the reranker service singleton. Args: config: Server configuration. Returns: RerankerService instance or None if disabled. """ # For now, always create a new instance # In the future, we might want to cache this return create_reranker_service(config)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/juanqui/pdfkb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server