PgVector
Code
1from kern.agent import Agent2from kern.knowledge.knowledge import Knowledge3from kern.vectordb.pgvector import PgVector45db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"67vector_db = PgVector(table_name="vectors", db_url=db_url)89knowledge = Knowledge(10 name="My PG Vector Knowledge Base",11 description="This is a knowledge base that uses a PG Vector DB",12 vector_db=vector_db,13)14knowledge.insert(15 name="Recipes",16 url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",17 metadata={"doc_type": "recipe_book"},18)1920agent = Agent(21 knowledge=knowledge,22 search_knowledge=True,23 read_chat_history=True,24)2526agent.print_response("How do I make pad thai?", markdown=True)2728vector_db.delete_by_name("Recipes")2930vector_db.delete_by_metadata({"doc_type": "recipe_book"})Usage
Set up your virtual environment
1uv venv --python 3.122source .venv/bin/activate1uv venv --python 3.122.venv\Scripts\activateInstall dependencies
1uv pip install -U psycopg2-binary pgvector pypdf openai kern-aiRun PgVector on Docker
Create a file resources.py with the following contents:
1from kern.docker.app.postgres import PgVectorDb2from kern.docker.resources import DockerResources34# -*- PgVector running on port 5432:54325vector_db = PgVectorDb(6 pg_user="ai",7 pg_password="ai",8 pg_database="ai",9 debug_mode=True,10)1112# -*- DockerResources13dev_docker_resources = DockerResources(apps=[vector_db])Start resources using:
1ag start resources.py1ag start resources.pyPress Enter to confirm and verify container status on the docker dashboard.
Set environment variables
1export OPENAI_API_KEY=xxxRun Agent
1python cookbook/08_knowledge/vector_db/pgvector/pgvector_db.py