Usage
Qdrant
Insert a PDF into a Qdrant collection, query it with an agent, and delete content by name or metadata.
Code
from agno.agent import Agent
from agno.db.postgres import PostgresDb
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.qdrant import Qdrant
COLLECTION_NAME = "thai-recipes"
vector_db = Qdrant(collection=COLLECTION_NAME, url="http://localhost:6333")
contents_db = PostgresDb(
db_url="postgresql+psycopg://ai:ai@localhost:5532/ai",
knowledge_table="knowledge_contents",
)
knowledge = Knowledge(
name="My Qdrant Vector Knowledge Base",
description="This is a knowledge base that uses a Qdrant Vector DB",
vector_db=vector_db,
contents_db=contents_db,
)
knowledge.insert(
name="Recipes",
url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",
metadata={"doc_type": "recipe_book"},
)
agent = Agent(knowledge=knowledge)
agent.print_response("List down the ingredients to make Massaman Gai", markdown=True)
vector_db.delete_by_name("Recipes")
vector_db.delete_by_metadata({"doc_type": "recipe_book"})Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U qdrant-client sqlalchemy psycopg pypdf openai agnoRun Qdrant
docker run -d --name qdrant -p 6333:6333 qdrant/qdrant:latestRun PgVector
docker run -d \
-e POSTGRES_DB=ai \
-e POSTGRES_USER=ai \
-e POSTGRES_PASSWORD=ai \
-e PGDATA=/var/lib/postgresql \
-v pgvolume:/var/lib/postgresql \
-p 5532:5432 \
--name pgvector \
agnohq/pgvector:18Set environment variables
export OPENAI_API_KEY=xxxRun Agent
python qdrant_db.py