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

  1. Run: uv sync --inexact --extra embedding-openai-compatible
  2. Verify: python -c "from llama_index.embeddings.openai_like import OpenAILikeEmbedding"
  3. Check the chained error for llama-index version mismatches if the package is installed
  4. 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

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


AI-assisted analysis of zylon-ai/private-gpt@4a030776a3 (2026-08-15). Data as JSON: /api/errors/8832e353f884de9e. Report an issue: GitHub.