{"record":{"id":"437c7c6a84f6a423","repo":"tirth8205/code-review-graph","slug":"sentence-transformers-not-installed-run-pip-inst","errorCode":null,"errorMessage":"sentence-transformers not installed. Run: pip install code-review-graph[embeddings]","messagePattern":"sentence-transformers not installed\\. Run: pip install code-review-graph\\[embeddings\\]","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"code_review_graph/embeddings.py","lineNumber":151,"sourceCode":"            if self._model is not None:\n                return self._model\n            cached = _MODEL_CACHE.get(self._model_name)\n            if cached is not None:\n                self._model = cached\n                return self._model\n\n            try:\n                from sentence_transformers import SentenceTransformer\n                # Check environment variable, default to False to prevent RCE\n                _rce_val = os.environ.get(\"CRG_ALLOW_REMOTE_CODE\", \"0\")\n                allow_remote_code = _rce_val.lower() in (\"1\", \"true\", \"yes\")\n\n                model = SentenceTransformer(\n                    self._model_name,\n                    trust_remote_code=allow_remote_code,\n                )\n            except ImportError:\n                raise ImportError(\n                    \"sentence-transformers not installed. \"\n                    \"Run: pip install code-review-graph[embeddings]\"\n                )\n\n            # Publish only a fully constructed model. Failed attempts leave\n            # both the provider and shared cache empty so a waiter can retry.\n            _MODEL_CACHE[self._model_name] = model\n            self._model = model\n        return self._model\n\n    def embed(self, texts: list[str]) -> list[list[float]]:\n        model = self._get_model()\n        vectors = model.encode(texts, show_progress_bar=False)\n        return [v.tolist() for v in vectors]\n\n    def embed_query(self, text: str) -> list[float]:\n        return self.embed([text])[0]\n","sourceCodeStart":133,"sourceCodeEnd":169,"githubUrl":"https://github.com/tirth8205/code-review-graph/blob/b58668751ab0c7670c078cf7cbd4d1f5b8e54f81/code_review_graph/embeddings.py#L133-L169","documentation":"This ImportError is raised by code-review-graph's local embedding provider when the optional `sentence-transformers` dependency is missing. The lazy import inside _get_model fails, and the library re-raises with an actionable install hint instead of the raw ImportError. A companion comment notes that failed construction deliberately leaves the provider and cache empty so a later retry can succeed after installing.","triggerScenarios":"Calling prewarm_local_embeddings(), embed(), or dimension() on the local SentenceTransformer provider without the [embeddings] extra installed. Any test constructing the local provider (e.g. test_model_cache_remains_scoped_by_model_name) will also hit it in an environment lacking the package.","commonSituations":"Installing the base package without extras (`pip install code-review-graph` instead of `code-review-graph[embeddings]`), CI environments that only install core deps, or a venv recreated without the extras flag.","solutions":["pip install 'code-review-graph[embeddings]'","Verify with: python -c \"import sentence_transformers\"","Pin a CPU torch wheel first if on a constrained runner: pip install torch --index-url https://download.pytorch.org/whl/cpu, then reinstall the extra"],"exampleFix":"# before\npip install code-review-graph\n# after\npip install 'code-review-graph[embeddings]'","handlingStrategy":"validation","validationCode":"import importlib.util, sys\n\nif importlib.util.find_spec(\"sentence_transformers\") is None:\n    sys.exit(\"Install first: pip install 'code-review-graph[embeddings]'\")","typeGuard":"def has_local_embeddings() -> bool:\n    return importlib.util.find_spec(\"sentence_transformers\") is not None","tryCatchPattern":"try:\n    provider.embed(texts)\nexcept ImportError as e:\n    if \"sentence-transformers\" in str(e):\n        print(\"pip install 'code-review-graph[embeddings]'\")\n    raise","preventionTips":["Install extras at setup time: pip install 'code-review-graph[embeddings]'","Check importlib.util.find_spec('sentence_transformers') before selecting the local provider","Pin sentence-transformers and torch versions in requirements to avoid reinstall drift"],"tags":["python","missing-dependency","import-error","embeddings"],"backgroundTag":"missing-optional-dependency","analyzedSha":"b58668751ab0c7670c078cf7cbd4d1f5b8e54f81","analyzedAt":"2026-08-28T13:19:08.966Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}