Documentation Index
Fetch the complete documentation index at: https://agno-v2-shaloo-ai-support-link.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Setup
Follow the instructions in the Qdrant Setup Guide to install Qdrant locally. Here is a guide to get API keys: Qdrant API Keys.
Example
import os
import typer
from typing import Optional
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, enabling concurrency and leading to better performance.
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))
Using aload() and aprint_response() with asyncio provides non-blocking operations, making your application more responsive under load.
Qdrant Params
| Name | Type | Default | Description |
|---|
collection | str | - | Name of the Qdrant collection |
embedder | Embedder | OpenAIEmbedder() | Embedder for embedding the document contents |
distance | Distance | Distance.cosine | Distance metric for similarity search |
location | Optional[str] | None | Location of the Qdrant database |
url | Optional[str] | None | URL of the Qdrant server |
port | Optional[int] | 6333 | Port number for the Qdrant server |
grpc_port | int | 6334 | gRPC port number for the Qdrant server |
prefer_grpc | bool | False | Whether to prefer gRPC over HTTP |
https | Optional[bool] | None | Whether to use HTTPS |
api_key | Optional[str] | None | API key for authentication |
prefix | Optional[str] | None | Prefix for the Qdrant API |
timeout | Optional[float] | None | Timeout for Qdrant operations |
host | Optional[str] | None | Host address for the Qdrant server |
path | Optional[str] | None | Path to the Qdrant database |