PgVector Async

Code

1import asyncio
2
3from kern.agent import Agent
4from kern.knowledge.knowledge import Knowledge
5from kern.vectordb.pgvector import PgVector
6
7db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
8
9vector_db = PgVector(table_name="recipes", db_url=db_url)
10
11knowledge_base = Knowledge(
12 vector_db=vector_db,
13)
14
15agent = Agent(knowledge=knowledge_base)
16
17if __name__ == "__main__":
18
19 asyncio.run(
20 knowledge_base.ainsert(url="https://kern.ndx.rocks/introduction/agents.md")
21 )
22
23 asyncio.run(
24 agent.aprint_response("What is the purpose of an Kern Agent?", markdown=True)
25 )

Usage

Set up your virtual environment

1uv venv --python 3.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Install dependencies

1uv pip install -U psycopg2-binary pgvector pypdf openai kern-ai

Run PgVector on Docker

Create a file resources.py with the following contents:

1from kern.docker.app.postgres import PgVectorDb
2from kern.docker.resources import DockerResources
3
4# -*- PgVector running on port 5432:5432
5vector_db = PgVectorDb(
6 pg_user="ai",
7 pg_password="ai",
8 pg_database="ai",
9 debug_mode=True,
10)
11
12# -*- DockerResources
13dev_docker_resources = DockerResources(apps=[vector_db])

Start resources using:

1ag start resources.py
1ag start resources.py

Press Enter to confirm and verify container status on the docker dashboard.

Set environment variables

1export OPENAI_API_KEY=xxx

Run Agent

1python cookbook/08_knowledge/vector_db/pgvector/async_pg_vector.py