Agent with Knowledge
Query PDF knowledge stored in PgVector with a Vercel v0 agent.
Code
from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.models.vercel import V0
from agno.vectordb.pgvector import PgVector
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
knowledge = Knowledge(
vector_db=PgVector(table_name="recipes", db_url=db_url),
)
# Add content to the knowledge
knowledge.insert(
url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"
)
agent = Agent(model=V0(id="v0-1.0-md"), knowledge=knowledge)
agent.print_response("How to make Thai curry?", markdown=True)Vercel retired the v0 Model API endpoint (https://api.v0.dev/v1/) that this integration targets, in favor of the Platform API. Requests made with V0 will fail until Agno updates this integration. See Vercel's community announcement.
PgVector defaults to OpenAIEmbedder for embeddings, so this example also needs OPENAI_API_KEY.
Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateSet your API keys
export V0_API_KEY=xxx
export OPENAI_API_KEY=xxxInstall dependencies
uv pip install -U sqlalchemy psycopg pgvector pypdf openai agnoRun PgVector
docker run -d \
-e POSTGRES_DB=ai \
-e POSTGRES_USER=ai \
-e POSTGRES_PASSWORD=ai \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v pgvolume:/var/lib/postgresql/data \
-p 5532:5432 \
--name pgvector \
agnohq/pgvector:18Run Agent
Save the code above as knowledge.py, then run:
python knowledge.py