{"record":{"id":"8832e353f884de9e","repo":"zylon-ai/private-gpt","slug":"openai-like-embeddings-dependencies-are-not-instal","errorCode":null,"errorMessage":"OpenAI-like Embeddings dependencies are not installed. Install with `uv sync --inexact --extra embedding-openai-compatible`.","messagePattern":"OpenAI-like Embeddings dependencies are not installed\\. Install with `uv sync --inexact --extra embedding-openai-compatible`\\.","errorType":"exception","errorClass":"ImportError","httpStatus":400,"severity":"error","filePath":"private_gpt/components/embedding/factories/openailike.py","lineNumber":20,"sourceCode":"\nfrom private_gpt.components.embedding.factories.base import EmbeddingFactory\nfrom private_gpt.settings.settings import EmbeddingModelConfig, Settings\nfrom private_gpt.utils.dependencies import format_missing_dependency_message\n\n\nclass OpenAILikeEmbeddingFactory(EmbeddingFactory):\n    def __init__(self, settings: Settings) -> None:\n        super().__init__(settings)\n\n    def _create_embedding(\n        self, model_config: EmbeddingModelConfig\n    ) -> tuple[BaseEmbedding, str | None]:\n        try:\n            from llama_index.embeddings.openai_like import (  # ty:ignore[unresolved-import]\n                OpenAILikeEmbedding,\n            )\n        except ImportError as e:\n            raise ImportError(\n                format_missing_dependency_message(\n                    \"OpenAI-like Embeddings\",\n                    extras=\"embedding-openai-compatible\",\n                )\n            ) from e\n\n        api_base = (\n            self.settings.openai.embedding_api_base or self.settings.openai.api_base\n        )\n        api_key = (\n            self.settings.openai.embedding_api_key\n            or self.settings.openai.api_key\n            or \"default\"\n        )\n        model = model_config.name\n\n        embedding_model = OpenAILikeEmbedding(\n            api_base=api_base,","sourceCodeStart":2,"sourceCodeEnd":38,"githubUrl":"https://github.com/zylon-ai/private-gpt/blob/4a030776a31a901ad80b1bf4d7faa2c1a367efbb/private_gpt/components/embedding/factories/openailike.py#L2-L38","documentation":"ImportError raised inside OpenAILikeEmbeddingFactory._create_embedding when llama_index.embeddings.openai_like (OpenAILikeEmbedding) is missing. Same pattern as the OpenAI factory: lazy import per model creation, chained from the original ImportError, with the fix spelled out — the uv extra embedding-openai-compatible. Config for api_base/api_key falls back from embedding_* to the general openai settings, so the error is purely about the missing package.","triggerScenarios":"Creating an embedding through OpenAILikeEmbeddingFactory (mode registered as 'openai-like' via register_embedding) when the llama-index OpenAI-like integration is not installed in the runtime environment.","commonSituations":"Using an OpenAI-compatible endpoint (vLLM, Ollama, LM Studio, gateway) without installing the matching extra; CI or Docker image built from the base dependency set; fresh clone where only default extras were synced.","solutions":["Run: uv sync --inexact --extra embedding-openai-compatible","Verify: python -c \"from llama_index.embeddings.openai_like import OpenAILikeEmbedding\"","Check the chained error for llama-index version mismatches if the package is installed","Confirm the app process runs in the environment you synced (container image, venv activation)"],"exampleFix":"# before: OpenAI-compatible endpoint configured, package missing -> ImportError\n# after\n# uv sync --inexact --extra embedding-openai-compatible","handlingStrategy":"validation","validationCode":"import importlib.util\n\nif importlib.util.find_spec('llama_index.embeddings.openai_like') is None:\n    raise SystemExit('run: uv sync --inexact --extra embedding-openai-compatible')","typeGuard":null,"tryCatchPattern":"try:\n    embed = factory.create(model_config)\nexcept ImportError as e:\n    if 'embedding-openai-compatible' in str(e):\n        raise SystemExit('missing extra; run: uv sync --inexact --extra embedding-openai-compatible') from e\n    raise","preventionTips":["Declare the embedding-openai-compatible extra wherever OpenAI-compatible endpoints are used","Verify imports inside the actual runtime container, not the dev shell","Smoke-test model creation at startup so missing packages fail before traffic"],"tags":["embedding","openai-compatible","dependencies","import","installation"],"backgroundTag":null,"analyzedSha":"4a030776a31a901ad80b1bf4d7faa2c1a367efbb","analyzedAt":"2026-08-15T03:51:26.951Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}