Usage
Weaviate
Insert a PDF, search it with an agent, and delete Weaviate records by name or metadata.
Code
from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.search import SearchType
from agno.vectordb.weaviate import Distance, VectorIndex, Weaviate
vector_db = Weaviate(
collection="vectors",
search_type=SearchType.vector,
vector_index=VectorIndex.HNSW,
distance=Distance.COSINE,
local=False, # Set to True if using Weaviate locally
)
# Create Knowledge Instance with Weaviate
knowledge = Knowledge(
name="Basic SDK Knowledge Base",
description="Agno 2.0 Knowledge Implementation with Weaviate",
vector_db=vector_db,
)
knowledge.insert(
name="Recipes",
url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",
metadata={"doc_type": "recipe_book"},
skip_if_exists=True,
)
# Create and use the agent
agent = Agent(knowledge=knowledge)
agent.print_response("List down the ingredients to make Massaman Gai", markdown=True)
# Delete operations
vector_db.delete_by_name("Recipes")
# or
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 weaviate-client pypdf openai agnoSetup Weaviate
# 1. Create account at https://console.weaviate.cloud/
# 2. Create a cluster and copy the "REST endpoint" and "Admin" API Key
# 3. Set environment variables:
export WCD_URL="your-cluster-url"
export WCD_API_KEY="your-api-key"
# 4. Set local=False in the codeSet environment variables
export OPENAI_API_KEY=xxxRun Agent
python weaviate_db.py