Registry /
llm-agents / llama-index-vector-stores-qdrant
Install & Compatibility
Where this runs
tested against v0.10.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
390MB installed
● package 390MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
QdrantVectorStore
✓ from llama_index.vector_stores.qdrant import QdrantVectorStore
QdrantClient
✓ from qdrant_client import QdrantClient
AsyncQdrantClient
✓ from qdrant_client import AsyncQdrantClient
ServiceContext
✓ from llama_index.core import ServiceContext
✗ from llama_index.service_context import ServiceContext
As of LlamaIndex v0.10.0, ServiceContext is deprecated and its components should be configured via `Settings` or passed directly. If used, it's now in `llama_index.core`.
This quickstart demonstrates how to initialize a Qdrant in-memory client, create a `QdrantVectorStore`, configure LlamaIndex settings with an embedding model (defaults to OpenAI), index a few dummy documents, and then query the index. It highlights the modular setup in LlamaIndex v0.10+.
import os
from llama_index.core import VectorStoreIndex, Document
from llama_index.vector_stores.qdrant import QdrantVectorStore
from qdrant_client import QdrantClient
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import Settings
# Ensure you have your OpenAI API key set as an environment variable
# os.environ["OPENAI_API_KEY"] = "sk-..."
# Fallback for API key or local Qdrant for quick demo without remote setup
if os.environ.get("OPENAI_API_KEY") is None or os.environ.get("OPENAI_API_KEY") == "":
print("Warning: OPENAI_API_KEY not set. Using a dummy key for example purposes. This will fail if you try to use OpenAI models.")
os.environ["OPENAI_API_KEY"] = os.environ.get("OPENAI_API_KEY", "sk-dummy-key")
# Initialize Qdrant client (local in-memory for quick start, or connect to a server)
# For persistent storage, use QdrantClient(path="./qdrant_data") or connect to a running Qdrant instance
client = QdrantClient(location=":memory:") # In-memory Qdrant instance
# Create a QdrantVectorStore instance
vector_store = QdrantVectorStore(client=client, collection_name="my_documents")
# Configure LlamaIndex settings (important for v0.10+)
Settings.embed_model = OpenAIEmbedding()
# Create a dummy document
documents = [
Document(text="LlamaIndex is a data framework for LLM applications."),
Document(text="Qdrant is a vector similarity search engine."),
Document(text="Combining LlamaIndex with Qdrant enables powerful RAG systems."),
]
# Build the VectorStoreIndex
index = VectorStoreIndex.from_documents(documents, vector_store=vector_store)
# Query the index
query_engine = index.as_query_engine()
response = query_engine.query("What is LlamaIndex?")
print(f"Response: {response}")
response = query_engine.query("What is Qdrant used for?")
print(f"Response: {response}")
Debug
Known issues
breakingLlamaIndex v0.10.0 introduced a major refactor, splitting core components and integrations into separate packages. The `ServiceContext` abstraction was deprecated. This means imports and configuration patterns have changed significantly.fixMigrate `ServiceContext` usage to direct configuration via `Settings` or by passing components directly to index/query engine constructors. Update imports from `llama_index.<component>` to `from llama_index.core import <Component>` or `from llama_index.<integration_type>.<integration_name> import <Component>`.
affects: >=0.10.0 of llama-index core, and all associated integration packages like this one.
breakingFuture versions of `qdrant-client` (e.g., 1.16.0 as of a past issue) introduced breaking API changes (e.g., removal of `AsyncQdrantClient.search` method, Pydantic validation issues for local clients) that can cause `AttributeError` or validation failures.fixIf encountering errors, try constraining your `qdrant-client` version to one known to be compatible (e.g., `qdrant-client<1.16.0` if using an older `llama-index` setup) or upgrade `llama-index-vector-stores-qdrant` to a version that explicitly supports the newer `qdrant-client` API.
affects: May affect `llama-index-vector-stores-qdrant` 0.10.0 when used with `qdrant-client` versions that introduced these breaking changes (e.g., `qdrant-client>=1.16.0`). Compatibility updates have been made in later `llama-index` versions.
gotchaThe very first retrieval query from a LlamaIndex index backed by Qdrant can be significantly slower (e.g., >10 seconds) than subsequent queries. This is due to Qdrant's internal index initialization and connection setup overhead.fixTo 'warm up' the system and avoid a slow first user-facing query, perform a dummy query shortly after the `VectorStoreIndex` is initialized but before serving user requests.
affects: All versions
gotchaFor hybrid search functionality (combining sparse and dense vectors) with Qdrant, additional dependencies like `fastembed` (for local sparse embedding generation) or `transformers` might be required.fixInstall necessary packages: `pip install fastembed` (for CPU-friendly local embeddings) or `pip install "transformers[torch]"` if using HuggingFace models for sparse embeddings.
affects: All versions using hybrid search
Upgrade
Version history
0.10.1latest on PyPI · released May 4, 2026
Audit
Dependencies
qdrant-clientrequiredRequired for interacting with the Qdrant vector database.
fastembedoptionalOptional, but recommended for local sparse vector generation and efficient local embeddings, especially with hybrid search enabled.
llama-index-corerequiredThe core LlamaIndex library, which defines the `VectorStore` interface and other fundamental abstractions.