zylon-ai/private-gpt · error · ImportError
Qdrant vector store dependencies are not installed. Install
Error message
Qdrant vector store dependencies are not installed. Install with `uv sync --inexact --extra vectorstore-qdrant`.
What it means
ImportError raised by QdrantVectorStoreFactory._build_client when importing qdrant_client_builder fails because the Qdrant optional dependencies ('vectorstore-qdrant' extra) are not installed. It wraps the raw ImportError with a formatted, actionable install message via format_missing_dependency_message.
Source
Thrown at private_gpt/components/vector_store/qdrant_factory.py:28
from private_gpt.utils.dependencies import format_missing_dependency_message
DEFAULT_COLLECTION = "zgptvector"
class QdrantVectorStoreFactory(VectorStoreFactory):
def __init__(self, settings: Settings, embed_dim: int | None = None) -> None:
super().__init__(settings)
self._client: Any | None = None
self._client_lock = Lock()
self._embed_dim = embed_dim
def _build_client(self) -> Any:
try:
from private_gpt.components.vector_store.qdrant_client_builder import (
QdrantClientBuilder,
)
except ImportError as e:
raise ImportError(
format_missing_dependency_message(
"Qdrant vector store",
extras="vectorstore-qdrant",
)
) from e
return QdrantClientBuilder.build_clients(self.settings)
def _ensure_client(self) -> None:
if self._client is not None:
return
with self._client_lock:
if self._client is None:
self._client = self._build_client()
def warm_up(self) -> None:
self._ensure_client()
View on GitHub (pinned to 4a030776a3)
Solutions
- Install the extra: uv sync --inexact --extra vectorstore-qdrant (or pip install with the matching extra)
- Verify qdrant-client imports in the deployed environment afterwards
- If Qdrant is not intended, change vectorstore.database to an installed provider
Example fix
# before uv sync --inexact # after uv sync --inexact --extra vectorstore-qdrant
Defensive patterns
Strategy: validation
Validate before calling
def qdrant_deps_available() -> bool:
try:
import private_gpt.components.vector_store.qdrant_client_builder # noqa: F401
return True
except ImportError:
return False Try / catch
try:
factory.warm_up()
except ImportError as e:
if "vectorstore-qdrant" in str(e):
# install the extra or switch vectorstore.database; do not retry as-is
raise Prevention
- Include --extra vectorstore-qdrant in install commands whenever qdrant is the configured database
- Probe optional dependencies at startup and fail with the install hint
- Keep deployment images and lockfiles in sync with configured providers
When it happens
Trigger: Setting vectorstore.database to 'qdrant' (or otherwise triggering client construction) in an environment installed without the vectorstore-qdrant extra; raised lazily on first _ensure_client()/_build_client() call (e.g. warm_up), not at import time.
Common situations: Minimal deployment images that skip optional extras; local dev installs with `uv sync --inexact` dropping extras; adding qdrant settings to an env whose lockfile lacks qdrant-client.
Related errors
- Redis cache dependencies are not installed. Install with `uv
- The tabular data analysis tool is not available because Pand
- group_id must be provided for logical multitenancy
- Hybrid search is not enabled. Please build the query with `e
- Generator did not return valid JSON.
AI-assisted analysis of zylon-ai/private-gpt@4a030776a3 (2026-08-15).
Data as JSON: /api/errors/7205126b119a82be.
Report an issue: GitHub.