zylon-ai/private-gpt · error · ImportError
OpenAI-like Embeddings dependencies are not installed. Insta
Error message
OpenAI-like Embeddings dependencies are not installed. Install with `uv sync --inexact --extra embedding-openai-compatible`.
What it means
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.
Source
Thrown at private_gpt/components/embedding/factories/openailike.py:20
from private_gpt.components.embedding.factories.base import EmbeddingFactory
from private_gpt.settings.settings import EmbeddingModelConfig, Settings
from private_gpt.utils.dependencies import format_missing_dependency_message
class OpenAILikeEmbeddingFactory(EmbeddingFactory):
def __init__(self, settings: Settings) -> None:
super().__init__(settings)
def _create_embedding(
self, model_config: EmbeddingModelConfig
) -> tuple[BaseEmbedding, str | None]:
try:
from llama_index.embeddings.openai_like import ( # ty:ignore[unresolved-import]
OpenAILikeEmbedding,
)
except ImportError as e:
raise ImportError(
format_missing_dependency_message(
"OpenAI-like Embeddings",
extras="embedding-openai-compatible",
)
) from e
api_base = (
self.settings.openai.embedding_api_base or self.settings.openai.api_base
)
api_key = (
self.settings.openai.embedding_api_key
or self.settings.openai.api_key
or "default"
)
model = model_config.name
embedding_model = OpenAILikeEmbedding(
api_base=api_base,View on GitHub (pinned to 4a030776a3)
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)
Example fix
# before: OpenAI-compatible endpoint configured, package missing -> ImportError # after # uv sync --inexact --extra embedding-openai-compatible
Defensive patterns
Strategy: validation
Validate before calling
import importlib.util
if importlib.util.find_spec('llama_index.embeddings.openai_like') is None:
raise SystemExit('run: uv sync --inexact --extra embedding-openai-compatible') Try / catch
try:
embed = factory.create(model_config)
except ImportError as e:
if 'embedding-openai-compatible' in str(e):
raise SystemExit('missing extra; run: uv sync --inexact --extra embedding-openai-compatible') from e
raise Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- OpenAI embeddings dependencies are not installed. Install wi
- DB2 database query dependencies are not installed. Install w
- Harmony parser dependencies are not installed. Install with
- Redis streaming dependencies are not installed. Install with
- Database query dependencies are not installed. Install with
AI-assisted analysis of zylon-ai/private-gpt@4a030776a3 (2026-08-15).
Data as JSON: /api/errors/8832e353f884de9e.
Report an issue: GitHub.