PgVector Hybrid Search
Code
1from kern.agent import Agent2from kern.knowledge.knowledge import Knowledge3from kern.models.openai import OpenAIResponses4from kern.vectordb.pgvector import PgVector, SearchType56db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"78knowledge = Knowledge(9 name="My PG Vector Knowledge Base",10 description="This is a knowledge base that uses a PG Vector DB",11 vector_db=PgVector(12 table_name="vectors", db_url=db_url, search_type=SearchType.hybrid13 ),14)1516knowledge.insert(17 name="Recipes",18 url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",19 metadata={"doc_type": "recipe_book"},20)2122agent = Agent(23 model=OpenAIResponses(id="gpt-5.2"),24 knowledge=knowledge,25 search_knowledge=True,26 read_chat_history=True,27 markdown=True,28)29agent.print_response(30 "How do I make chicken and galangal in coconut milk soup", stream=True31)32agent.print_response("What was my last question?", stream=True)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_hybrid_search.py