> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Qdrant Vector Database

> Use Qdrant as a vector database for your Knowledge Base.

## Setup

```shell theme={null}
uv pip install -U qdrant-client typer rich pypdf openai agno
```

Follow the instructions in the [Qdrant Setup Guide](https://qdrant.tech/documentation/guides/installation/) to install Qdrant locally. Get API keys from the [Qdrant API Keys](https://qdrant.tech/documentation/cloud/authentication/) guide.

The example uses OpenAI for embeddings and the agent model, so set your API key along with your Qdrant connection details:

```shell theme={null}
export QDRANT_URL=http://localhost:6333
export QDRANT_API_KEY=xxx # only required for Qdrant Cloud
export OPENAI_API_KEY=xxx
```

## Example

```python agent_with_knowledge.py theme={null}
import os
import typer
from rich.prompt import Prompt

from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.qdrant import Qdrant

api_key = os.getenv("QDRANT_API_KEY")
qdrant_url = os.getenv("QDRANT_URL")
collection_name = "thai-recipe-index"

vector_db = Qdrant(
    collection=collection_name,
    url=qdrant_url,
    api_key=api_key,
)

knowledge_base = Knowledge(
    vector_db=vector_db,
)

def qdrant_agent(user: str = "user"):
    agent = Agent(
        knowledge=knowledge_base,
        debug_mode=True,
    )

    while True:
        message = Prompt.ask(f"[bold] :sunglasses: {user} [/bold]")
        if message in ("exit", "bye"):
            break
        agent.print_response(message)

if __name__ == "__main__":
    knowledge_base.insert(
        url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"
    )

    typer.run(qdrant_agent)
```

> **Async Support ⚡**
>
> Qdrant also supports asynchronous operations with `ainsert()` and `aprint_response()`.
>
> ```python async_qdrant_db.py theme={null}
> import asyncio
>
> from agno.agent import Agent
> from agno.knowledge.knowledge import Knowledge
> from agno.vectordb.qdrant import Qdrant
>
> COLLECTION_NAME = "thai-recipes"
>
> # Initialize Qdrant with local instance
> vector_db = Qdrant(
>     collection=COLLECTION_NAME,
>     url="http://localhost:6333"
> )
>
> # Create knowledge base
> knowledge_base = Knowledge(
>     vector_db=vector_db,
> )
>
> agent = Agent(knowledge=knowledge_base)
>
> if __name__ == "__main__":
>     # Load knowledge base asynchronously
>     asyncio.run(knowledge_base.ainsert(
>             url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"
>         )
>     )
>
>     # Create and use the agent asynchronously
>     asyncio.run(agent.aprint_response("How to make Tom Kha Gai", markdown=True))
> ```
>
> > [!TIP]
> >
> > Using `ainsert()` and `aprint_response()` with asyncio provides non-blocking operations, making your application more responsive under load.

## Qdrant Params

<Snippet file="vectordb_qdrant_params.mdx" />


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.