{"record":{"id":"f56026b0d5ee9be7","repo":"mem0ai/mem0","slug":"sentence-transformers-package-is-required-for-sent","errorCode":null,"errorMessage":"sentence-transformers package is required for SentenceTransformerReranker. Install with: pip install sentence-transformers","messagePattern":"sentence-transformers package is required for SentenceTransformerReranker\\. Install with: pip install sentence-transformers","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"mem0/reranker/sentence_transformer_reranker.py","lineNumber":32,"sourceCode":"    SENTENCE_TRANSFORMERS_AVAILABLE = True\nexcept ImportError:\n    SENTENCE_TRANSFORMERS_AVAILABLE = False\n\nlogger = logging.getLogger(__name__)\n\n\nclass SentenceTransformerReranker(BaseReranker):\n    \"\"\"Sentence Transformer based reranker implementation.\"\"\"\n\n    def __init__(self, config: Union[BaseRerankerConfig, SentenceTransformerRerankerConfig, Dict]):\n        \"\"\"\n        Initialize Sentence Transformer reranker.\n\n        Args:\n            config: Configuration object with reranker parameters\n        \"\"\"\n        if not SENTENCE_TRANSFORMERS_AVAILABLE:\n            raise ImportError(\"sentence-transformers package is required for SentenceTransformerReranker. Install with: pip install sentence-transformers\")\n\n        # Convert to SentenceTransformerRerankerConfig if needed\n        if isinstance(config, dict):\n            config = SentenceTransformerRerankerConfig(**config)\n        elif isinstance(config, BaseRerankerConfig) and not isinstance(config, SentenceTransformerRerankerConfig):\n            # Convert BaseRerankerConfig to SentenceTransformerRerankerConfig with defaults\n            config = SentenceTransformerRerankerConfig(\n                provider=getattr(config, 'provider', 'sentence_transformer'),\n                model=getattr(config, 'model', 'cross-encoder/ms-marco-MiniLM-L-6-v2'),\n                api_key=getattr(config, 'api_key', None),\n                top_k=getattr(config, 'top_k', None),\n                device=None,  # Will auto-detect\n                batch_size=32,  # Default\n                show_progress_bar=False,  # Default\n            )\n\n        self.config = config\n        self.model = CrossEncoder(self.config.model, device=self.config.device)","sourceCodeStart":14,"sourceCodeEnd":50,"githubUrl":"https://github.com/mem0ai/mem0/blob/001c235229be8795e3834520467bd0d661ed8f34/mem0/reranker/sentence_transformer_reranker.py#L14-L50","documentation":"SentenceTransformerReranker raises ImportError when sentence-transformers is missing (guarded by SENTENCE_TRANSFORMERS_AVAILABLE). Like the HuggingFace reranker it runs models locally and needs its own optional package, distinct from plain transformers. Construction fails at Memory.from_config() time with the exact pip command in the message.","triggerScenarios":"Configuring reranker={'provider':'sentence_transformer', ...} without `pip install sentence-transformers`; environments that installed transformers+torch but not the sentence-transformers package (they are separate); minimal deployment images.","commonSituations":"Assuming transformers covers sentence-transformers (it does not — it is an extra package); moving from API-based rerankers to local cross-encoders to cut costs; dependency pruning scripts removing 'unused' packages.","solutions":["pip install sentence-transformers (it will pull torch if missing)","Or use a lighter/hosted reranker provider if the dependency is too heavy","Verify in the runtime interpreter: python -c \"import sentence_transformers\""],"exampleFix":"# before\nconfig = {\"reranker\": {\"provider\": \"sentence_transformer\", \"config\": {\"model\": \"cross-encoder/ms-marco-MiniLM-L-6-v2\"}}}\n# ImportError\n\n# after\n# pip install sentence-transformers\nconfig = {\"reranker\": {\"provider\": \"sentence_transformer\", \"config\": {\"model\": \"cross-encoder/ms-marco-MiniLM-L-6-v2\", \"device\": \"cpu\"}}}","handlingStrategy":"validation","validationCode":"import importlib.util\nif importlib.util.find_spec(\"sentence_transformers\") is None:\n    raise RuntimeError(\"install sentence-transformers before enabling this reranker\")","typeGuard":null,"tryCatchPattern":"try:\n    reranker = SentenceTransformerReranker(cfg)\nexcept ImportError:\n    reranker = None  # or fall back to another provider","preventionTips":["sentence-transformers is separate from transformers; install both as needed","Lock model + package versions together for reproducible reranking","Warm-load the cross-encoder at startup, not on first query"],"tags":["reranker","sentence-transformers","dependency","import-error"],"backgroundTag":null,"analyzedSha":"001c235229be8795e3834520467bd0d661ed8f34","analyzedAt":"2026-08-15T01:55:42.685Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}